From 0e3fc228cc5ec089849b6bcabb3c927875aa760c Mon Sep 17 00:00:00 2001 From: Brendan Lee Date: Tue, 28 Nov 2017 12:13:14 -0800 Subject: [PATCH 1/2] Updated lib for 0.7.0 release --- Samples/DataSources/datasources.html | 4 +- Samples/Filtering/filtering.html | 2 +- Samples/Parameters/parameters.html | 2 +- Samples/Settings/settings.html | 2 +- .../tableau-extensions-0.6.1.js | 0 lib/tableau-extensions-0.7.0.js | 24229 ++++++++++++++++ 6 files changed, 24234 insertions(+), 5 deletions(-) rename lib/{ => previous}/tableau-extensions-0.6.1.js (100%) create mode 100644 lib/tableau-extensions-0.7.0.js diff --git a/Samples/DataSources/datasources.html b/Samples/DataSources/datasources.html index efd3bfba..837fa47f 100644 --- a/Samples/DataSources/datasources.html +++ b/Samples/DataSources/datasources.html @@ -15,7 +15,7 @@ - + @@ -67,7 +67,7 @@ Type - + Fields diff --git a/Samples/Filtering/filtering.html b/Samples/Filtering/filtering.html index 1e960820..3d523fbc 100644 --- a/Samples/Filtering/filtering.html +++ b/Samples/Filtering/filtering.html @@ -15,7 +15,7 @@ - + diff --git a/Samples/Parameters/parameters.html b/Samples/Parameters/parameters.html index d34cb08d..d6d9fb14 100644 --- a/Samples/Parameters/parameters.html +++ b/Samples/Parameters/parameters.html @@ -15,7 +15,7 @@ - + diff --git a/Samples/Settings/settings.html b/Samples/Settings/settings.html index b0d0f18a..a50c07cf 100644 --- a/Samples/Settings/settings.html +++ b/Samples/Settings/settings.html @@ -14,7 +14,7 @@ - + diff --git a/lib/tableau-extensions-0.6.1.js b/lib/previous/tableau-extensions-0.6.1.js similarity index 100% rename from lib/tableau-extensions-0.6.1.js rename to lib/previous/tableau-extensions-0.6.1.js diff --git a/lib/tableau-extensions-0.7.0.js b/lib/tableau-extensions-0.7.0.js new file mode 100644 index 00000000..18210722 --- /dev/null +++ b/lib/tableau-extensions-0.7.0.js @@ -0,0 +1,24229 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["Main"] = factory(); + else + root["Main"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/dist/"; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var tableau = __webpack_require__(1); + var FrelardDesktopBootstrap_1 = __webpack_require__(76); + // This Main function will be executed when this module is loaded. Attempt to do our + // bootstrapping with qt and log any errors we encounter + FrelardDesktopBootstrap_1.doBootstrap().catch(function (e) { + console.log('Desktop bootstrapping failed: ' + e); + }); + window.tableau = tableau; + + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + // Due to the way we configured webpack, we should be exporting things which will be under + // a global variable called "tableau". Export everything we want to be visible under tableau + // from this file. + var ExtensionsImpl_1 = __webpack_require__(2); + var Extensions_1 = __webpack_require__(74); + var api_shared_1 = __webpack_require__(9); + api_shared_1.VersionNumber.SetVersionNumber(("0.7.0")); + var extensionImpl = new ExtensionsImpl_1.ExtensionsImpl(); + exports.extensions = new Extensions_1.Extensions(extensionImpl); + // Export Enums + // These show up under the tableau object. I.e. tableau.ExtensionContext.Server + var api_external_contract_1 = __webpack_require__(75); + exports.ExtensionContext = api_external_contract_1.ExtensionContext; + exports.ExtensionMode = api_external_contract_1.ExtensionMode; + exports.AnalyticsObjectType = api_external_contract_1.AnalyticsObjectType; + exports.ColumnType = api_external_contract_1.ColumnType; + exports.DashboardObjectType = api_external_contract_1.DashboardObjectType; + exports.DataType = api_external_contract_1.DataType; + exports.DateRangeType = api_external_contract_1.DateRangeType; + exports.DialogEventType = api_external_contract_1.DialogEventType; + exports.EncodingType = api_external_contract_1.EncodingType; + exports.ErrorCodes = api_external_contract_1.ErrorCodes; + exports.FieldAggregationType = api_external_contract_1.FieldAggregationType; + exports.FieldRoleType = api_external_contract_1.FieldRoleType; + exports.FilterDomainType = api_external_contract_1.FilterDomainType; + exports.FilterType = api_external_contract_1.FilterType; + exports.FilterUpdateType = api_external_contract_1.FilterUpdateType; + exports.FilterNullOption = api_external_contract_1.FilterNullOption; + exports.MarkType = api_external_contract_1.MarkType; + exports.ParameterValueType = api_external_contract_1.ParameterValueType; + exports.PeriodType = api_external_contract_1.PeriodType; + exports.QuickTableCalcType = api_external_contract_1.QuickTableCalcType; + exports.SelectionUpdateType = api_external_contract_1.SelectionUpdateType; + exports.SheetType = api_external_contract_1.SheetType; + exports.SortDirection = api_external_contract_1.SortDirection; + exports.TableauEventType = api_external_contract_1.TableauEventType; + exports.TrendLineModelType = api_external_contract_1.TrendLineModelType; + + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(3); + var api_shared_1 = __webpack_require__(9); + var api_utils_1 = __webpack_require__(66); + var DashboardContent_1 = __webpack_require__(67); + var Environment_1 = __webpack_require__(68); + var Settings_1 = __webpack_require__(69); + var RegisterAllExtensionsServices_1 = __webpack_require__(70); + var SettingsImpl_1 = __webpack_require__(73); + var ExtensionsImpl = (function () { + function ExtensionsImpl() { + } + ExtensionsImpl.prototype.initializeAsync = function () { + var _this = this; + if (!this._initializationPromise) { + this._initializationPromise = new Promise(function (resolve, reject) { + // First thing we want to do is check to see if there is a desktop dispatcher already registered for us + if (api_internal_contract_1.InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise()) { + // Running in desktop, use this promise + var desktopDispatcherPromise = api_internal_contract_1.InternalApiDispatcherHolder.getDesktopDispatcherPromise(); + desktopDispatcherPromise.then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); }); + } + else { + // We must be running in server, so we should try to kick of the server dispatcher bootstrapping + api_shared_1.doCrossFrameBootstrap(window, api_shared_1.VersionNumber.Instance).then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); }); + } + }); + } + return this._initializationPromise; + }; + ExtensionsImpl.prototype.onDispatcherReceived = function (dispatcher) { + var _this = this; + dispatcher.setVersionNumber(api_shared_1.VersionNumber.Instance); + // Call to register all the services which will use the newly initialized dispatcher + api_shared_1.registerAllSharedServices(dispatcher); + RegisterAllExtensionsServices_1.registerAllExtensionsServices(dispatcher); + // Get the initialization service and initialize this extension + var initializationService = api_shared_1.ApiServiceRegistry.instance.getService("InitializationService" /* InitializationService */); + return initializationService.initializeDashboardExtensionsAsync().then(function (result) { + if (!result.extensionInstance.locator.dashboardPath) { + throw api_utils_1.TableauException.isUndefined(['DashboardPath']); + } + _this.dashboardContent = _this.initializeDashboardContent(result.extensionDashboardInfo, result.extensionInstance.locator.dashboardPath); + _this.environment = new Environment_1.Environment(result.extensionEnvironment); + _this.settings = _this.initializeSettings(result.extensionSettingsInfo); + }); + }; + ExtensionsImpl.prototype.initializeDashboardContent = function (info, sheetPath) { + var dashboardImpl = new api_shared_1.DashboardImpl(info, sheetPath); + var dashboard = new api_shared_1.Dashboard(dashboardImpl); + return new DashboardContent_1.DashboardContent(dashboard); + }; + ExtensionsImpl.prototype.initializeSettings = function (settingsInfo) { + var settingsImpl = new SettingsImpl_1.SettingsImpl(settingsInfo); + return new Settings_1.Settings(settingsImpl); + }; + return ExtensionsImpl; + }()); + exports.ExtensionsImpl = ExtensionsImpl; + + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(4)); + __export(__webpack_require__(5)); + __export(__webpack_require__(6)); + __export(__webpack_require__(7)); + __export(__webpack_require__(8)); + + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ExtensionContext; + (function (ExtensionContext) { + ExtensionContext["Desktop"] = "desktop"; + ExtensionContext["Server"] = "server"; + ExtensionContext["Unknown"] = "unknown"; + })(ExtensionContext = exports.ExtensionContext || (exports.ExtensionContext = {})); + var ExtensionMode; + (function (ExtensionMode) { + ExtensionMode["Authoring"] = "authoring"; + ExtensionMode["Viewing"] = "viewing"; + ExtensionMode["Unknown"] = "unknown"; + })(ExtensionMode = exports.ExtensionMode || (exports.ExtensionMode = {})); + var ColumnType; + (function (ColumnType) { + ColumnType["Discrete"] = "discrete"; + ColumnType["Continuous"] = "continuous"; + })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); + var DashboardObjectType; + (function (DashboardObjectType) { + DashboardObjectType["Blank"] = "blank"; + DashboardObjectType["Worksheet"] = "worksheet"; + DashboardObjectType["QuickFilter"] = "quick-filter"; + DashboardObjectType["ParameterControl"] = "parameter-control"; + DashboardObjectType["PageFilter"] = "page-filter"; + DashboardObjectType["Legend"] = "legend"; + DashboardObjectType["Title"] = "title"; + DashboardObjectType["Text"] = "text"; + DashboardObjectType["Image"] = "image"; + DashboardObjectType["WebPage"] = "web-page"; + DashboardObjectType["Extension"] = "extension"; + })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); + var DataType; + (function (DataType) { + DataType["String"] = "string"; + DataType["Int"] = "int"; + DataType["Float"] = "float"; + DataType["Bool"] = "bool"; + DataType["Date"] = "date"; + DataType["DateTime"] = "date-time"; + DataType["Spatial"] = "spatial"; + })(DataType = exports.DataType || (exports.DataType = {})); + var EncodedDataType; + (function (EncodedDataType) { + EncodedDataType["Number"] = "number"; + EncodedDataType["String"] = "string"; + EncodedDataType["Date"] = "date"; + EncodedDataType["Boolean"] = "boolean"; + })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); + var ErrorCode; + (function (ErrorCode) { + ErrorCode["ServerError"] = "server-error"; + ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; + ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; + ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; + })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); + var FieldAggregationType; + (function (FieldAggregationType) { + FieldAggregationType["Sum"] = "sum"; + FieldAggregationType["Avg"] = "avg"; + FieldAggregationType["Min"] = "min"; + FieldAggregationType["Max"] = "max"; + FieldAggregationType["Stdev"] = "stdev"; + FieldAggregationType["Stdevp"] = "stdevp"; + FieldAggregationType["Var"] = "var"; + FieldAggregationType["Varp"] = "varp"; + FieldAggregationType["Count"] = "count"; + FieldAggregationType["Countd"] = "countd"; + FieldAggregationType["Median"] = "median"; + FieldAggregationType["Attr"] = "attr"; + FieldAggregationType["None"] = "none"; + FieldAggregationType["Year"] = "year"; + FieldAggregationType["Qtr"] = "qtr"; + FieldAggregationType["Month"] = "month"; + FieldAggregationType["Day"] = "day"; + FieldAggregationType["Hour"] = "hour"; + FieldAggregationType["Minute"] = "minute"; + FieldAggregationType["Second"] = "second"; + FieldAggregationType["Week"] = "week"; + FieldAggregationType["Weekday"] = "weekday"; + FieldAggregationType["MonthYear"] = "month-year"; + FieldAggregationType["Mdy"] = "mdy"; + FieldAggregationType["End"] = "end"; + FieldAggregationType["TruncYear"] = "trunc-year"; + FieldAggregationType["TruncQtr"] = "trunc-qtr"; + FieldAggregationType["TruncMonth"] = "trunc-month"; + FieldAggregationType["TruncWeek"] = "trunc-week"; + FieldAggregationType["TruncDay"] = "trunc-day"; + FieldAggregationType["TruncHour"] = "trunc-hour"; + FieldAggregationType["TruncMinute"] = "trunc-minute"; + FieldAggregationType["TruncSecond"] = "trunc-second"; + FieldAggregationType["Quart1"] = "quart1"; + FieldAggregationType["Quart3"] = "quart3"; + FieldAggregationType["Skewness"] = "skewness"; + FieldAggregationType["Kurtosis"] = "kurtosis"; + FieldAggregationType["InOut"] = "in-out"; + FieldAggregationType["User"] = "user"; + })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); + var FieldRoleType; + (function (FieldRoleType) { + FieldRoleType["Dimension"] = "dimension"; + FieldRoleType["Measure"] = "measure"; + FieldRoleType["Unknown"] = "unknown"; + })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); + /** + * The different update types for applying filter. + */ + var FilterUpdateType; + (function (FilterUpdateType) { + FilterUpdateType["Add"] = "add"; + FilterUpdateType["All"] = "all"; + FilterUpdateType["Replace"] = "replace"; + FilterUpdateType["Remove"] = "remove"; + })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); + var SheetType; + (function (SheetType) { + SheetType["Dashboard"] = "dashboard"; + SheetType["Story"] = "story"; + SheetType["Worksheet"] = "worksheet"; + })(SheetType = exports.SheetType || (exports.SheetType = {})); + var DomainRestrictionType; + (function (DomainRestrictionType) { + DomainRestrictionType["All"] = "all"; + DomainRestrictionType["List"] = "list"; + DomainRestrictionType["Range"] = "range"; + })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); + var DateStepPeriod; + (function (DateStepPeriod) { + DateStepPeriod["Years"] = "years"; + DateStepPeriod["Quarters"] = "quarters"; + DateStepPeriod["Months"] = "months"; + DateStepPeriod["Weeks"] = "weeks"; + DateStepPeriod["Days"] = "days"; + DateStepPeriod["Hours"] = "hours"; + DateStepPeriod["Minutes"] = "minutes"; + DateStepPeriod["Seconds"] = "seconds"; + })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); + /** + * The option for specifying which values to include for filtering. + */ + var FilterNullOption; + (function (FilterNullOption) { + FilterNullOption["NullValues"] = "nullvalues"; + FilterNullOption["NonNullValues"] = "nonnullvalues"; + FilterNullOption["AllValues"] = "allvalues"; + })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); + /** + * The type of filter domain + */ + var FilterDomainType; + (function (FilterDomainType) { + FilterDomainType["Relevant"] = "relevant"; + FilterDomainType["Database"] = "database"; + })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); + /** + * Internal enum for specifying the selection type for select marks api. + */ + var SelectionUpdateType; + (function (SelectionUpdateType) { + SelectionUpdateType["Replace"] = "select-replace"; + SelectionUpdateType["Add"] = "select-add"; + SelectionUpdateType["Remove"] = "select-remove"; + })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); + /** + * Internal enum for specifying the included values type for range selection. + */ + var QuantitativeIncludedValues; + (function (QuantitativeIncludedValues) { + QuantitativeIncludedValues["IncludeNull"] = "include-null"; + QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null"; + QuantitativeIncludedValues["IncludeAll"] = "include-all"; + })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {})); + /** + * Type of mark for a given marks card in a viz. + */ + var MarkType; + (function (MarkType) { + MarkType["Bar"] = "bar"; + MarkType["Line"] = "line"; + MarkType["Area"] = "area"; + MarkType["Square"] = "square"; + MarkType["Circle"] = "circle"; + MarkType["Shape"] = "shape"; + MarkType["Text"] = "text"; + MarkType["Map"] = "map"; + MarkType["Pie"] = "pie"; + MarkType["GanttBar"] = "gantt-bar"; + MarkType["Polygon"] = "polygon"; + })(MarkType = exports.MarkType || (exports.MarkType = {})); + /** + * Internal enum for specifying the type of filter + */ + var FilterType; + (function (FilterType) { + FilterType["Categorical"] = "categorical"; + FilterType["Range"] = "range"; + FilterType["RelativeDate"] = "relativeDate"; + FilterType["Hierarchical"] = "hierarchical"; + })(FilterType = exports.FilterType || (exports.FilterType = {})); + /** + * Internal enum for specifying the DateRangeType of a relative date filter + */ + var DateRangeType; + (function (DateRangeType) { + /** + * Refers to the last day, week, month, etc. of the date period. + */ + DateRangeType["Last"] = "last"; + /** + * Refers to the last N days, weeks, months, etc. of the date period. + */ + DateRangeType["LastN"] = "lastN"; + /** + * Refers to the next day, week, month, etc. of the date period. + */ + DateRangeType["Next"] = "next"; + /** + * Refers to the next N days, weeks, months, etc. of the date period. + */ + DateRangeType["NextN"] = "nextN"; + /** + * Refers to the current day, week, month, etc. of the date period. + */ + DateRangeType["Current"] = "current"; + /** + * Refers to everything up to and including the current day, week, month, etc. of the date period. + */ + DateRangeType["ToDate"] = "toDate"; + })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); + + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var InternalApiDispatcherHolder; + (function (InternalApiDispatcherHolder) { + function getDesktopDispatcherPromise() { + return window.__tableauDesktopDispatcher; + } + InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; + function hasDesktopApiDispatcherPromise() { + return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); + } + InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; + function setDesktopDispatcherPromise(dispatcher) { + window.__tableauDesktopDispatcher = dispatcher; + } + InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; + })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); + + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var NotificationId; + (function (NotificationId) { + NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; + NotificationId["ParameterChanged"] = "parameter-changed"; + NotificationId["FilterChanged"] = "filter-changed"; + })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); + + +/***/ }, +/* 7 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ParameterId; + (function (ParameterId) { + ParameterId["ExtensionLocator"] = "extension-locator"; + ParameterId["ExtensionBootstrapInfo"] = "extension-bootstrap-info"; + ParameterId["ExtensionSettingsInfo"] = "extension-settings-info"; + ParameterId["VisualId"] = "visual-id"; + ParameterId["SheetPath"] = "sheet-path"; + ParameterId["IgnoreAliases"] = "ignore-aliases"; + ParameterId["IgnoreSelection"] = "ignore-selection"; + ParameterId["IncludeAllColumns"] = "include-all-columns"; + ParameterId["MaxRows"] = "max-rows"; + ParameterId["UnderlyingDataTable"] = "underlying-data-table"; + ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; + ParameterId["DataSourceDataTable"] = "data-source-data-table"; + ParameterId["SettingsValues"] = "settings-values"; + ParameterId["SelectedData"] = "selected-data"; + ParameterId["HighlightedData"] = "highlighted-data"; + // Filter Params + ParameterId["FieldName"] = "field-name"; + ParameterId["FilterValues"] = "filter-values"; + ParameterId["FilterUpdateType"] = "filter-update-type"; + ParameterId["IsExcludeMode"] = "is-exclude"; + ParameterId["FilterRangeMin"] = "filter-range-min"; + ParameterId["FilterRangeMax"] = "filter-range-max"; + ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; + ParameterId["WorksheetFilters"] = "worksheet-filters"; + ParameterId["FieldId"] = "field-id"; + ParameterId["DomainType"] = "domain-type"; + ParameterId["CategoricalDomain"] = "categorical-domain"; + ParameterId["QuantitativeDomain"] = "quantitative-dmain"; + ParameterId["WorksheetName"] = "worksheet-name"; + ParameterId["DashboardName"] = "dashboard"; + ParameterId["ParameterInfo"] = "parameter-info"; + ParameterId["ParameterInfos"] = "parameter-infos"; + ParameterId["ParameterCaption"] = "paremeter-caption"; + ParameterId["ParameterFieldName"] = "parameter-field-name"; + ParameterId["ParameterValue"] = "parameter-value"; + ParameterId["Selection"] = "selection"; + ParameterId["SelectionUpdateType"] = "selectionUpdateType"; + ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; + ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; + ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; + ParameterId["DataSourceId"] = "data-source-id"; + ParameterId["DataSchema"] = "data-schema"; + ParameterId["DataSourceName"] = "data-source-name"; + ParameterId["ColumnsToInclude"] = "columns-to-include"; + ParameterId["JoinDescription"] = "join-description"; + ParameterId["ConnectionDescriptionSummaries"] = "connection-description-summaries"; + })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); + + +/***/ }, +/* 8 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // Declare this key type and export the NotificationId to make this behave like a string enum + var VerbId; + (function (VerbId) { + VerbId["ApplyCategoricalFilter"] = "categorical-filter"; + VerbId["ApplyRangeFilter"] = "range-filter"; + VerbId["ClearFilter"] = "clear-filter"; + VerbId["InitializeExtension"] = "initialize-extension"; + VerbId["GetDataSummaryData"] = "get-summary-data"; + VerbId["GetUnderlyingData"] = "get-underlying-data"; + VerbId["GetDataSourceData"] = "get-datasource-data"; + VerbId["SaveExtensionSettings"] = "save-extension-settings"; + VerbId["GetSelectedMarks"] = "get-selected-marks"; + VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; + VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; + VerbId["FindParameter"] = "find-parameter"; + VerbId["ChangeParameterValue"] = "change-parameter-value"; + VerbId["ClearSelectedMarks"] = "clear-selected-marks"; + VerbId["SelectByValue"] = "select-by-value"; + VerbId["GetDataSources"] = "get-data-sources"; + VerbId["RefreshDataSource"] = "refresh-data-source"; + VerbId["GetFilters"] = "get-filters"; + VerbId["GetCategoricalDomain"] = "get-categorical-domain"; + VerbId["GetRangeDomain"] = "get-range-domain"; + VerbId["GetJoinDescription"] = "get-join-description"; + VerbId["GetConnectionDescriptionSummaries"] = "get-connection-description-summaries"; + })(VerbId = exports.VerbId || (exports.VerbId = {})); + + +/***/ }, +/* 9 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + var Dashboard_1 = __webpack_require__(10); + exports.Dashboard = Dashboard_1.Dashboard; + var VersionNumber_1 = __webpack_require__(17); + exports.VersionNumber = VersionNumber_1.VersionNumber; + var DashboardImpl_1 = __webpack_require__(18); + exports.DashboardImpl = DashboardImpl_1.DashboardImpl; + var InternalToExternalEnumMappings_1 = __webpack_require__(23); + exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings; + __export(__webpack_require__(44)); + __export(__webpack_require__(28)); + __export(__webpack_require__(58)); + + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Sheet_1 = __webpack_require__(11); + var Dashboard = (function (_super) { + __extends(Dashboard, _super); + function Dashboard(_dashboardImpl) { + var _this = _super.call(this, _dashboardImpl) || this; + _this._dashboardImpl = _dashboardImpl; + _dashboardImpl.initializeWithPublicInterfaces(_this); + return _this; + } + Object.defineProperty(Dashboard.prototype, "worksheets", { + get: function () { + return this._dashboardImpl.worksheets; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Dashboard.prototype, "objects", { + get: function () { + return this._dashboardImpl.objects; + }, + enumerable: true, + configurable: true + }); + return Dashboard; + }(Sheet_1.Sheet)); + exports.Dashboard = Dashboard; + + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var EventListenerManager_1 = __webpack_require__(12); + var Sheet = (function (_super) { + __extends(Sheet, _super); + function Sheet(_sheetImpl) { + var _this = _super.call(this) || this; + _this._sheetImpl = _sheetImpl; + return _this; + } + Object.defineProperty(Sheet.prototype, "name", { + get: function () { + return this._sheetImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Sheet.prototype, "sheetType", { + get: function () { + return this._sheetImpl.sheetType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Sheet.prototype, "size", { + get: function () { + return this._sheetImpl.size; + }, + enumerable: true, + configurable: true + }); + Sheet.prototype.findParameterAsync = function (parameterName) { + return this._sheetImpl.findParameterAsync(parameterName, this); + }; + Sheet.prototype.getParametersAsync = function () { + return this._sheetImpl.getParametersAsync(this); + }; + return Sheet; + }(EventListenerManager_1.EventListenerManager)); + exports.Sheet = Sheet; + + +/***/ }, +/* 12 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(13); + /** + * Class designed to register and unregister handlers from a user. Only those events + * which are added via AddNewEventType will be supported by this instance + */ + var EventListenerManager = (function () { + function EventListenerManager() { + this._eventListenerManagers = {}; + } + EventListenerManager.prototype.addEventListener = function (eventType, handler) { + if (!this._eventListenerManagers.hasOwnProperty(eventType)) { + throw api_utils_1.TableauException.error(EventListenerManager.UNSUPPORTED_EVENT, [eventType]); + } + return this._eventListenerManagers[eventType].addEventListener(handler); + }; + EventListenerManager.prototype.removeEventListener = function (eventType, handler) { + if (!this._eventListenerManagers.hasOwnProperty(eventType)) { + throw api_utils_1.TableauException.error(EventListenerManager.UNSUPPORTED_EVENT, [eventType]); + } + return this._eventListenerManagers[eventType].removeEventListener(handler); + }; + EventListenerManager.prototype.addNewEventType = function (eventManager) { + this._eventListenerManagers[eventManager.eventType] = eventManager; + }; + EventListenerManager.UNSUPPORTED_EVENT = 'Unsupported event type : %1'; + return EventListenerManager; + }()); + exports.EventListenerManager = EventListenerManager; + + +/***/ }, +/* 13 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var EnumConverter_1 = __webpack_require__(14); + exports.EnumConverter = EnumConverter_1.EnumConverter; + var Param_1 = __webpack_require__(16); + exports.Param = Param_1.Param; + var TableauException_1 = __webpack_require__(15); + exports.TableauException = TableauException_1.TableauException; + + +/***/ }, +/* 14 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauException_1 = __webpack_require__(15); + /** + * This class converts from a source enum value to destination enum + * value given a mapping from source to destination when constructed. + */ + var EnumConverter = (function () { + function EnumConverter(_mappings, _defaultVal) { + this._mappings = _mappings; + this._defaultVal = _defaultVal; + } + EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { + if (this._mappings.hasOwnProperty(enumVal)) { + return this._mappings[enumVal]; + } + if (this._defaultVal !== undefined && !throwIfMissing) { + return this._defaultVal; + } + throw TableauException_1.TableauException.error(EnumConverter.MAPPING_NOT_FOUND, [enumVal]); + }; + EnumConverter.MAPPING_NOT_FOUND = 'Mapping not found for %1'; + return EnumConverter; + }()); + exports.EnumConverter = EnumConverter; + + +/***/ }, +/* 15 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauException = (function () { + function TableauException() { + } + TableauException.apiNotImplemented = function (params) { + var message = TableauException.format(TableauException.API_NOT_IMPLEMENTED, params); + return new Error(message); + }; + TableauException.isUndefined = function (params) { + var message = TableauException.format(TableauException.UNDEFINED, params); + return new Error(message); + }; + TableauException.isNull = function (params) { + var message = TableauException.format(TableauException.IS_NULL, params); + return new Error(message); + }; + TableauException.invalidParamValue = function (params) { + var message = TableauException.format(TableauException.INVALID_PARAMETER_VALUE, params); + return new Error(message); + }; + TableauException.invalidParamType = function (params) { + var message = TableauException.format(TableauException.INVALID_PARAMETER_TYPE, params); + return new Error(message); + }; + TableauException.missingParameter = function (params) { + var message = TableauException.format(TableauException.MISSING_PARAMETER, params); + return new Error(message); + }; + TableauException.invalid = function (params) { + var message = TableauException.format(TableauException.INVALID, params); + return new Error(message); + }; + TableauException.internalError = function (params) { + var message = TableauException.format(TableauException.INTERNAL_ERROR, params); + return new Error(message); + }; + TableauException.error = function (message, params) { + var result; + if (params) { + result = TableauException.format(message, params); + } + else { + result = message; + } + return new Error(result); + }; + TableauException.format = function (message, params) { + for (var i = 0; i < params.length; i++) { + var match = '%' + (i + 1); + message = message.replace(new RegExp(match, 'g'), params[i]); + } + message = message.replace(new RegExp('%[0-9]+', 'g'), ''); + message = message.trim(); + return message; + }; + TableauException.API_NOT_IMPLEMENTED = '%1 API not yet implemented.'; + TableauException.UNDEFINED = '%1 is undefined.'; + TableauException.INVALID_PARAMETER_VALUE = 'Invalid value for parameter: %1. %2'; + TableauException.INVALID_PARAMETER_TYPE = 'Invalid type for parameter: %1. %2'; + TableauException.MISSING_PARAMETER = 'Missing Parameter: %1.'; + TableauException.UNKNOWN_ERROR = 'Unknown error.'; + TableauException.INTERNAL_ERROR = 'Internal error: %1.'; + TableauException.INVALID = 'Invalid: %1. %2'; + TableauException.IS_NULL = '%1 is null.'; + return TableauException; + }()); + exports.TableauException = TableauException; + + +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauException_1 = __webpack_require__(15); + var Param = (function () { + function Param() { + } + /** + * Verifies that an incoming parameter is 'truthy' and throws + * an error if it's not. This will throw an error if the value + * is null, undefined, NaN, the empty string, 0, or false. + * + * @param argumentValue value to verify + * @param argumentName name of argument to verify + */ + /*tslint:disable-next-line */ + Param.verifyValue = function (argumentValue, argumentName) { + if (!argumentValue) { + throw TableauException_1.TableauException.invalidParamValue([argumentName]); + } + }; + /** + * Verifies that a string is valid. Throws an error if the string is + * null, undefined, or NaN. + * + * @param argumentValue value to verify + * @param argumentName name of argument to verify + */ + Param.verifyString = function (argumentValue, argumentName) { + if (argumentValue === null || argumentValue === undefined) { + throw TableauException_1.TableauException.invalidParamValue([argumentName]); + } + }; + /** + * Verifies the value is part of the Enum + * + * String enums are {string : string} dictionaries which are not reverse mappable + * This is an ugly workaround + * @param value value to verify + * @param enumType enum to verify against + */ + /* tslint:disable:no-any */ + Param.isValidEnumValue = function (value, enumType) { + var isValid = false; + Object.keys(enumType).forEach(function (enumKey) { + if (enumType[enumKey] === value.toString()) { + isValid = true; + } + }); + return isValid; + }; + /* tslint:enable:no-any */ + /** + * serializes the date into the format that the server expects. + * @param date the date to serialize + */ + Param.serializeDateForPlatform = function (date) { + var year = date.getUTCFullYear(); + var month = date.getUTCMonth() + 1; + var day = date.getUTCDate(); + var hh = date.getUTCHours(); + var mm = date.getUTCMinutes(); + var sec = date.getUTCSeconds(); + return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; + }; + Param.serializeBooleanForPlatform = function (bool) { + return bool ? 'true' : 'false'; + }; + Param.serializeNumberForPlatform = function (num) { + return num.toString(10); + }; + /** + * Verifies the params min and max for applying range filter + * @param min range min + * @param max range max + */ + /* tslint:disable:no-any */ + Param.verifyRangeParamType = function (min, max) { + /* tslint:enable:no-any */ + if (!min && !max) { + throw TableauException_1.TableauException.invalidParamValue(['Range parameters', 'At least one of min or max is required.']); + } + if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { + throw TableauException_1.TableauException.invalidParamType(['Range parameters', 'Only Date and number are allowed for parameter min.']); + } + if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { + throw TableauException_1.TableauException.invalidParamType(['Range parameters', 'Only Date and number are allowed for parameter max.']); + } + if (typeof (min) !== typeof (max)) { + throw TableauException_1.TableauException.invalidParamType(['Range parameters', 'Parameters min and max should be of the same type.']); + } + }; + /** + * Verifies the input is a number + */ + /* tslint:disable:no-any */ + Param.isTypeNumber = function (input) { + return typeof (input) === 'number' || input instanceof Number; + }; + /* tslint:enable:no-any */ + /** + * Verifies the input is a Date + */ + /* tslint:disable:no-any */ + Param.isTypeDate = function (input) { + return input instanceof Date; + }; + /* tslint:enable:no-any */ + /* tslint:disable-next-line:no-any */ + Param.isTypeString = function (input) { + return typeof (input) === 'string' || input instanceof String; + }; + /* tslint:disable-next-line:no-any */ + Param.isTypeBool = function (input) { + return typeof (input) === 'boolean' || input instanceof Boolean; + }; + /* tslint:disable-next-line:no-any */ + Param.serializeParamterValue = function (value) { + if (Param.isTypeNumber(value)) { + return Param.serializeNumberForPlatform(value); + } + else if (Param.isTypeDate(value)) { + return Param.serializeDateForPlatform(value); + } + else if (Param.isTypeBool(value)) { + return Param.serializeBooleanForPlatform(value); + } + else if (Param.isTypeString(value)) { + return value; + } + else { + throw TableauException_1.TableauException.invalidParamValue(['value']); + } + }; + return Param; + }()); + exports.Param = Param; + + +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(13); + /** + * Represents the current version of the extensions library + */ + var VersionNumber = (function () { + // private constructor so everyone uses the singleton instance + function VersionNumber(versionString) { + var parts = versionString.split('.').map(function (p) { return parseInt(p, 10); }); + if (parts.length !== 3) { + throw api_utils_1.TableauException.error(VersionNumber.INVALID_VERSION_NUMBER, [versionString]); + } + this.major = parts[0]; + this.minor = parts[1]; + this.fix = parts[2]; + } + Object.defineProperty(VersionNumber, "Instance", { + /** + * Gets the singleton instance of the version number. + */ + get: function () { + return VersionNumber._instance; + }, + enumerable: true, + configurable: true + }); + VersionNumber.SetVersionNumber = function (numString) { + VersionNumber._instance = new VersionNumber(numString); + }; + Object.defineProperty(VersionNumber.prototype, "formattedValue", { + get: function () { + return this.major + "." + this.minor + "." + this.fix; + }, + enumerable: true, + configurable: true + }); + VersionNumber.INVALID_VERSION_NUMBER = 'Invalid version number: '; + return VersionNumber; + }()); + exports.VersionNumber = VersionNumber; + + +/***/ }, +/* 18 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var DashboardObject_1 = __webpack_require__(22); + var InternalToExternalEnumMappings_1 = __webpack_require__(23); + var Point_1 = __webpack_require__(24); + var Size_1 = __webpack_require__(25); + var Worksheet_1 = __webpack_require__(26); + var SheetImpl_1 = __webpack_require__(27); + var SheetInfoImpl_1 = __webpack_require__(29); + var WorksheetImpl_1 = __webpack_require__(30); + var DashboardImpl = (function (_super) { + __extends(DashboardImpl, _super); + function DashboardImpl(_info, _sheetPath) { + var _this = _super.call(this, new SheetInfoImpl_1.SheetInfoImpl(_info.name, Contract.SheetType.Dashboard, new Size_1.Size(_info.size.h, _info.size.w))) || this; + _this._info = _info; + _this._sheetPath = _sheetPath; + return _this; + } + Object.defineProperty(DashboardImpl.prototype, "worksheets", { + get: function () { + return this._worksheets; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardImpl.prototype, "objects", { + get: function () { + return this._objects; + }, + enumerable: true, + configurable: true + }); + DashboardImpl.prototype.initializeWithPublicInterfaces = function (dashboard) { + this._worksheets = new Array(); + this._objects = new Array(); + // Process all the zones which are contained in this dashboard + for (var _i = 0, _a = this._info.zones; _i < _a.length; _i++) { + var zone = _a[_i]; + var worksheet = undefined; + var zoneSize = new Size_1.Size(zone.height, zone.width); + if (zone.zoneType === api_internal_contract_1.DashboardObjectType.Worksheet) { + var sheetInfo = new SheetInfoImpl_1.SheetInfoImpl(zone.name, Contract.SheetType.Worksheet, zoneSize); + var vizId = { + worksheet: zone.name, + dashboard: this._info.name, + storyboard: this._sheetPath.storyboard, + flipboardZoneID: this._sheetPath.flipboardZoneID, + storyPointID: this._sheetPath.storyPointID + }; + var worksheetImpl = new WorksheetImpl_1.WorksheetImpl(sheetInfo, vizId, dashboard); + worksheet = new Worksheet_1.Worksheet(worksheetImpl); + this._worksheets.push(worksheet); + } + var zonePoint = new Point_1.Point(zone.x, zone.y); + var dashboardObject = new DashboardObject_1.DashboardObject(dashboard, InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dashboardObjectType.convert(zone.zoneType), zonePoint, zoneSize, worksheet); + this._objects.push(dashboardObject); + } + }; + return DashboardImpl; + }(SheetImpl_1.SheetImpl)); + exports.DashboardImpl = DashboardImpl; + + +/***/ }, +/* 19 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(20)); + + +/***/ }, +/* 20 */ +/***/ function(module, exports) { + + "use strict"; + // All enum values made available to Extensions developers. + // Enums should be kept in alphabetical order. + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * The context in which the Extensions is currently running. + */ + var ExtensionContext; + (function (ExtensionContext) { + ExtensionContext["Desktop"] = "desktop"; + ExtensionContext["Server"] = "server"; + })(ExtensionContext = exports.ExtensionContext || (exports.ExtensionContext = {})); + /** + * The mode in which the Extensions is currently running. + */ + var ExtensionMode; + (function (ExtensionMode) { + ExtensionMode["Authoring"] = "authoring"; + ExtensionMode["Viewing"] = "viewing"; + })(ExtensionMode = exports.ExtensionMode || (exports.ExtensionMode = {})); + var AnalyticsObjectType; + (function (AnalyticsObjectType) { + AnalyticsObjectType["Cluster"] = "cluster"; + AnalyticsObjectType["Forecast"] = "forecast"; + AnalyticsObjectType["TrendLine"] = "trend-line"; + })(AnalyticsObjectType = exports.AnalyticsObjectType || (exports.AnalyticsObjectType = {})); + var ColumnType; + (function (ColumnType) { + ColumnType["Discrete"] = "discrete"; + ColumnType["Continuous"] = "continuous"; + })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); + /** + * What the object represents in a dashboard. + */ + var DashboardObjectType; + (function (DashboardObjectType) { + DashboardObjectType["Blank"] = "blank"; + DashboardObjectType["Worksheet"] = "worksheet"; + DashboardObjectType["QuickFilter"] = "quick-filter"; + DashboardObjectType["ParameterControl"] = "parameter-control"; + DashboardObjectType["PageFilter"] = "page-filter"; + DashboardObjectType["Legend"] = "legend"; + DashboardObjectType["Title"] = "title"; + DashboardObjectType["Text"] = "text"; + DashboardObjectType["Image"] = "image"; + DashboardObjectType["WebPage"] = "web-page"; + DashboardObjectType["Extension"] = "extension"; + })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); + /** + * The different types of data a value can have + */ + var DataType; + (function (DataType) { + DataType["String"] = "string"; + DataType["Int"] = "int"; + DataType["Float"] = "float"; + DataType["Bool"] = "bool"; + DataType["Date"] = "date"; + DataType["DateTime"] = "date-time"; + DataType["Spatial"] = "spatial"; + })(DataType = exports.DataType || (exports.DataType = {})); + /** + * Valid date ranges for a relative date filter. + */ + var DateRangeType; + (function (DateRangeType) { + DateRangeType["Last"] = "last"; + DateRangeType["LastN"] = "last-n"; + DateRangeType["Next"] = "next"; + DateRangeType["NextN"] = "next-n"; + DateRangeType["Current"] = "current"; + DateRangeType["ToDate"] = "to-date"; + })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); + /** + * Types of dialog event for event listening between a parent Extensions and a popup dialog. + */ + var DialogEventType; + (function (DialogEventType) { + DialogEventType["DialogMessage"] = "dialog-message"; + DialogEventType["DialogEvent"] = "dialog-event"; + })(DialogEventType = exports.DialogEventType || (exports.DialogEventType = {})); + var EncodingType; + (function (EncodingType) { + EncodingType["Column"] = "column"; + EncodingType["Row"] = "row"; + EncodingType["Page"] = "page"; + EncodingType["Filter"] = "filter"; + EncodingType["MarksType"] = "marks-type"; + EncodingType["MeasureValues"] = "measure-values"; + EncodingType["Color"] = "color"; + EncodingType["Size"] = "size"; + EncodingType["Label"] = "label"; + EncodingType["Detail"] = "detail"; + EncodingType["Tooltip"] = "tooltip"; + EncodingType["Shape"] = "shape"; + EncodingType["Path"] = "path"; + EncodingType["Angle"] = "angle"; + })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); + /** + * All error codes used by the Extensions API. + */ + var ErrorCodes; + (function (ErrorCodes) { + /** + * Only one dialog can be opened at time with the UI namespace functionality. + */ + ErrorCodes["DialogAlreadyOpen"] = "dialog-already-open"; + /** + * The open dialog was closed by the user. + */ + ErrorCodes["DialogClosedByUser"] = "dialog-closed-by-user"; + /** + * An error occurred while attempting to perform a filter operation. + */ + ErrorCodes["FilterCannotBePerformed"] = "filter-cannot-be-performed"; + /** + * An error occurred within the Tableau Extensions API. Contact Tableau Support. + */ + ErrorCodes["InternalError"] = "internal-error"; + /** + * An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales". + */ + ErrorCodes["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; + /** + * A dialog must first launch to, and send messages from, the same domain as the parent Extensions. + */ + ErrorCodes["InvalidDomainDialog"] = "invalid-dialog-domain"; + /** + * An invalid date was specified in a method that required a date parameter. + */ + ErrorCodes["InvalidDateParameter"] = "invalid-date-parameter"; + /** + * A filter operation was attempted on a field that does not exist in the data source. + */ + ErrorCodes["InvalidFilterFieldName"] = "invalid-filter-field-name"; + /** + * A filter operation was attempted using a value that is the wrong data type or format. + */ + ErrorCodes["InvalidFilterFieldValue"] = "invalid-filter-field-value"; + /** + * A parameter is not the correct data type or format. The name of the parameter is specified in the Error.message field. + */ + ErrorCodes["InvalidParameter"] = "invalid-parameter"; + /** + * An invalid date value was specified in a Sheet.selectMarksAsync() call for a date field. + */ + ErrorCodes["InvalidSelectionDate"] = "invalid-selection-date"; + /** + * A field was specified in a Sheet.selectMarksAsync() call that does not exist in the data source. + */ + ErrorCodes["InvalidSelectionFieldName"] = "invalid-selection-field-name"; + /** + * An invalid value was specified in a Sheet.selectMarksAsync() call. + */ + ErrorCodes["InvalidSelectionValue"] = "invalid-selection-value"; + /** + * A required parameter was not specified, null, or an empty string/array. + */ + ErrorCodes["NullOrEmptyParameter"] = "null-or-empty-parameter"; + /** + * An unknown event name was specified in the call to Viz.addEventListeneror Viz.removeEventListener. + */ + ErrorCodes["UnsupportedEventName"] = "unsupported-event-name"; + /** + * A method was used for a type of datasource that doesn't support that method (see getActiveTablesAsync for an example) + */ + ErrorCodes["UnsupportedMethodForDataSourceType"] = "unsupported-method-for-data-source-type"; + })(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); + /** + * Type of aggregation on a field. + */ + var FieldAggregationType; + (function (FieldAggregationType) { + FieldAggregationType["Sum"] = "sum"; + FieldAggregationType["Avg"] = "avg"; + FieldAggregationType["Min"] = "min"; + FieldAggregationType["Max"] = "max"; + FieldAggregationType["Stdev"] = "stdev"; + FieldAggregationType["Stdevp"] = "stdevp"; + FieldAggregationType["Var"] = "var"; + FieldAggregationType["Varp"] = "varp"; + FieldAggregationType["Count"] = "count"; + FieldAggregationType["Countd"] = "countd"; + FieldAggregationType["Median"] = "median"; + FieldAggregationType["Attr"] = "attr"; + FieldAggregationType["None"] = "none"; + FieldAggregationType["Year"] = "year"; + FieldAggregationType["Qtr"] = "qtr"; + FieldAggregationType["Month"] = "month"; + FieldAggregationType["Day"] = "day"; + FieldAggregationType["Hour"] = "hour"; + FieldAggregationType["Minute"] = "minute"; + FieldAggregationType["Second"] = "second"; + FieldAggregationType["Week"] = "week"; + FieldAggregationType["Weekday"] = "weekday"; + FieldAggregationType["MonthYear"] = "month-year"; + FieldAggregationType["Mdy"] = "mdy"; + FieldAggregationType["End"] = "end"; + FieldAggregationType["TruncYear"] = "trunc-year"; + FieldAggregationType["TruncQtr"] = "trunc-qtr"; + FieldAggregationType["TruncMonth"] = "trunc-month"; + FieldAggregationType["TruncWeek"] = "trunc-week"; + FieldAggregationType["TruncDay"] = "trunc-day"; + FieldAggregationType["TruncHour"] = "trunc-hour"; + FieldAggregationType["TruncMinute"] = "trunc-minute"; + FieldAggregationType["TruncSecond"] = "trunc-second"; + FieldAggregationType["Quart1"] = "quart1"; + FieldAggregationType["Quart3"] = "quart3"; + FieldAggregationType["Skewness"] = "skewness"; + FieldAggregationType["Kurtosis"] = "kurtosis"; + FieldAggregationType["InOut"] = "in-out"; + FieldAggregationType["User"] = "user"; + })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); + /** + * Role of a field. + */ + var FieldRoleType; + (function (FieldRoleType) { + FieldRoleType["Dimension"] = "dimension"; + FieldRoleType["Measure"] = "measure"; + FieldRoleType["Unknown"] = "unknown"; + })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); + /** + * An enumeration of the valid types of filters that can be applied. + */ + var FilterType; + (function (FilterType) { + FilterType["Categorical"] = "categorical"; + FilterType["Range"] = "range"; + FilterType["Hierarchical"] = "hierarchical"; + FilterType["RelativeDate"] = "relative-date"; + })(FilterType = exports.FilterType || (exports.FilterType = {})); + /** + * The different update types for applying filter + */ + var FilterUpdateType; + (function (FilterUpdateType) { + FilterUpdateType["Add"] = "add"; + FilterUpdateType["All"] = "all"; + FilterUpdateType["Replace"] = "replace"; + FilterUpdateType["Remove"] = "remove"; + })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); + /** + * The domain type for a filter + */ + var FilterDomainType; + (function (FilterDomainType) { + /** + * The domain values that are relevant to the specified filter + * i.e. the domain is restricted by a previous filter + */ + FilterDomainType["Relevant"] = "relevant"; + /** + * list of all possible domain values from database + */ + FilterDomainType["Database"] = "database"; + })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); + /** + * The option for specifying which values to include for filtering + * Indicates what to do with null values for a given filter or mark selection call. + */ + var FilterNullOption; + (function (FilterNullOption) { + FilterNullOption["NullValues"] = "null-values"; + FilterNullOption["NonNullValues"] = "non-null-values"; + FilterNullOption["AllValues"] = "all-values"; + })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); + /** + * Type of mark for a given marks card in a viz. + */ + var MarkType; + (function (MarkType) { + MarkType["Bar"] = "bar"; + MarkType["Line"] = "line"; + MarkType["Area"] = "area"; + MarkType["Square"] = "square"; + MarkType["Circle"] = "circle"; + MarkType["Shape"] = "shape"; + MarkType["Text"] = "text"; + MarkType["Map"] = "map"; + MarkType["Pie"] = "pie"; + MarkType["GanttBar"] = "gantt-bar"; + MarkType["Polygon"] = "polygon"; + })(MarkType = exports.MarkType || (exports.MarkType = {})); + /** + * An enumeration describing the different types of allowable values. + * This is used for restricting the domain of a parameter + */ + var ParameterValueType; + (function (ParameterValueType) { + ParameterValueType["All"] = "all"; + ParameterValueType["List"] = "list"; + ParameterValueType["Range"] = "range"; + })(ParameterValueType = exports.ParameterValueType || (exports.ParameterValueType = {})); + /** + * Date period used in filters and in parameters. + */ + var PeriodType; + (function (PeriodType) { + PeriodType["Years"] = "years"; + PeriodType["Quarters"] = "quarters"; + PeriodType["Months"] = "months"; + PeriodType["Weeks"] = "weeks"; + PeriodType["Days"] = "days"; + PeriodType["Hours"] = "hours"; + PeriodType["Minutes"] = "minutes"; + PeriodType["Seconds"] = "seconds"; + })(PeriodType = exports.PeriodType || (exports.PeriodType = {})); + var QuickTableCalcType; + (function (QuickTableCalcType) { + QuickTableCalcType["RunningTotal"] = "running-total"; + QuickTableCalcType["Difference"] = "difference"; + QuickTableCalcType["PercentDifference"] = "percent-difference"; + QuickTableCalcType["PercentOfTotal"] = "percent-of-total"; + QuickTableCalcType["Rank"] = "rank"; + QuickTableCalcType["Percentile"] = "percentile"; + QuickTableCalcType["MovingAverage"] = "moving-average"; + QuickTableCalcType["YTDTotal"] = "ytd-total"; + QuickTableCalcType["CompoundGrowthRate"] = "compound-growth-rate"; + QuickTableCalcType["YearOverYearGrowth"] = "year-over-year-growth"; + QuickTableCalcType["YTDGrowth"] = "ytd-growth"; + QuickTableCalcType["Undefined"] = "undefined"; + })(QuickTableCalcType = exports.QuickTableCalcType || (exports.QuickTableCalcType = {})); + /** + * Enum for specifying the selection type for select marks api. + */ + var SelectionUpdateType; + (function (SelectionUpdateType) { + SelectionUpdateType["Replace"] = "select-replace"; + SelectionUpdateType["Add"] = "select-add"; + SelectionUpdateType["Remove"] = "select-remove"; + })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); + /** + * The type of sheet a Sheet object represents + */ + var SheetType; + (function (SheetType) { + SheetType["Dashboard"] = "dashboard"; + SheetType["Story"] = "story"; + SheetType["Worksheet"] = "worksheet"; + })(SheetType = exports.SheetType || (exports.SheetType = {})); + var SortDirection; + (function (SortDirection) { + SortDirection["Increasing"] = "increasing"; + SortDirection["Decreasing"] = "decreasing"; + })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); + /** + * Represents a certain type of event which can be listened for + */ + var TableauEventType; + (function (TableauEventType) { + /** Raised when any filter has changed state.*/ + TableauEventType["FilterChanged"] = "filter-changed"; + /** The selected marks on a visualization has changed */ + TableauEventType["MarkSelectionChanged"] = "mark-selection-changed"; + /** A parameter has had its value modified */ + TableauEventType["ParameterChanged"] = "parameter-changed"; + })(TableauEventType = exports.TableauEventType || (exports.TableauEventType = {})); + var TrendLineModelType; + (function (TrendLineModelType) { + TrendLineModelType["Linear"] = "linear"; + TrendLineModelType["Logarithmic"] = "logarithmic"; + TrendLineModelType["Exponential"] = "exponential"; + TrendLineModelType["Polynomial"] = "polynomial"; + })(TrendLineModelType = exports.TrendLineModelType || (exports.TrendLineModelType = {})); + + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(4)); + __export(__webpack_require__(5)); + __export(__webpack_require__(6)); + __export(__webpack_require__(7)); + __export(__webpack_require__(8)); + + +/***/ }, +/* 22 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the dashboard objects - the zones in a dashboard. + * This does not follow the Impl pattern as it is just a property bag. + */ + var DashboardObject = (function () { + function DashboardObject(_dashboard, _type, _position, _size, _worksheet) { + this._dashboard = _dashboard; + this._type = _type; + this._position = _position; + this._size = _size; + this._worksheet = _worksheet; + } + Object.defineProperty(DashboardObject.prototype, "dashboard", { + get: function () { + return this._dashboard; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "type", { + get: function () { + return this._type; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "position", { + get: function () { + return this._position; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "size", { + get: function () { + return this._size; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "worksheet", { + get: function () { + return this._worksheet; + }, + enumerable: true, + configurable: true + }); + return DashboardObject; + }()); + exports.DashboardObject = DashboardObject; + + +/***/ }, +/* 23 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_external_contract_1 = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var api_utils_1 = __webpack_require__(13); + /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ + /** + * Maps enums used by the internal-api-contract to the enums used + * in the external-api-contract, which developers code against. + */ + var InternalToExternalEnumMappings = (function () { + function InternalToExternalEnumMappings() { + } + InternalToExternalEnumMappings.extensionContext = new api_utils_1.EnumConverter((_a = {}, + _a[api_internal_contract_1.ExtensionContext.Desktop] = api_external_contract_1.ExtensionContext.Desktop, + _a[api_internal_contract_1.ExtensionContext.Server] = api_external_contract_1.ExtensionContext.Server, + _a)); + InternalToExternalEnumMappings.extensionMode = new api_utils_1.EnumConverter((_b = {}, + _b[api_internal_contract_1.ExtensionMode.Authoring] = api_external_contract_1.ExtensionMode.Authoring, + _b[api_internal_contract_1.ExtensionMode.Viewing] = api_external_contract_1.ExtensionMode.Viewing, + _b)); + InternalToExternalEnumMappings.columnType = new api_utils_1.EnumConverter((_c = {}, + _c[api_internal_contract_1.ColumnType.Continuous] = api_external_contract_1.ColumnType.Continuous, + _c[api_internal_contract_1.ColumnType.Discrete] = api_external_contract_1.ColumnType.Discrete, + _c)); + InternalToExternalEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_d = {}, + _d[api_internal_contract_1.FieldAggregationType.Attr] = api_external_contract_1.FieldAggregationType.Attr, + _d[api_internal_contract_1.FieldAggregationType.Avg] = api_external_contract_1.FieldAggregationType.Avg, + _d[api_internal_contract_1.FieldAggregationType.Count] = api_external_contract_1.FieldAggregationType.Count, + _d[api_internal_contract_1.FieldAggregationType.Countd] = api_external_contract_1.FieldAggregationType.Countd, + _d[api_internal_contract_1.FieldAggregationType.Day] = api_external_contract_1.FieldAggregationType.Day, + _d[api_internal_contract_1.FieldAggregationType.End] = api_external_contract_1.FieldAggregationType.End, + _d[api_internal_contract_1.FieldAggregationType.Hour] = api_external_contract_1.FieldAggregationType.Hour, + _d[api_internal_contract_1.FieldAggregationType.InOut] = api_external_contract_1.FieldAggregationType.InOut, + _d[api_internal_contract_1.FieldAggregationType.Kurtosis] = api_external_contract_1.FieldAggregationType.Kurtosis, + _d[api_internal_contract_1.FieldAggregationType.Max] = api_external_contract_1.FieldAggregationType.Max, + _d[api_internal_contract_1.FieldAggregationType.Mdy] = api_external_contract_1.FieldAggregationType.Mdy, + _d[api_internal_contract_1.FieldAggregationType.Median] = api_external_contract_1.FieldAggregationType.Median, + _d[api_internal_contract_1.FieldAggregationType.Min] = api_external_contract_1.FieldAggregationType.Min, + _d[api_internal_contract_1.FieldAggregationType.Minute] = api_external_contract_1.FieldAggregationType.Minute, + _d[api_internal_contract_1.FieldAggregationType.MonthYear] = api_external_contract_1.FieldAggregationType.MonthYear, + _d[api_internal_contract_1.FieldAggregationType.None] = api_external_contract_1.FieldAggregationType.None, + _d[api_internal_contract_1.FieldAggregationType.Qtr] = api_external_contract_1.FieldAggregationType.Qtr, + _d[api_internal_contract_1.FieldAggregationType.Quart1] = api_external_contract_1.FieldAggregationType.Quart1, + _d[api_internal_contract_1.FieldAggregationType.Quart3] = api_external_contract_1.FieldAggregationType.Quart3, + _d[api_internal_contract_1.FieldAggregationType.Second] = api_external_contract_1.FieldAggregationType.Second, + _d[api_internal_contract_1.FieldAggregationType.Skewness] = api_external_contract_1.FieldAggregationType.Skewness, + _d[api_internal_contract_1.FieldAggregationType.Stdev] = api_external_contract_1.FieldAggregationType.Stdev, + _d[api_internal_contract_1.FieldAggregationType.Stdevp] = api_external_contract_1.FieldAggregationType.Stdevp, + _d[api_internal_contract_1.FieldAggregationType.Sum] = api_external_contract_1.FieldAggregationType.Sum, + _d[api_internal_contract_1.FieldAggregationType.TruncDay] = api_external_contract_1.FieldAggregationType.TruncDay, + _d[api_internal_contract_1.FieldAggregationType.TruncHour] = api_external_contract_1.FieldAggregationType.TruncHour, + _d[api_internal_contract_1.FieldAggregationType.TruncMinute] = api_external_contract_1.FieldAggregationType.TruncMinute, + _d[api_internal_contract_1.FieldAggregationType.TruncMonth] = api_external_contract_1.FieldAggregationType.TruncMonth, + _d[api_internal_contract_1.FieldAggregationType.TruncQtr] = api_external_contract_1.FieldAggregationType.TruncQtr, + _d[api_internal_contract_1.FieldAggregationType.TruncSecond] = api_external_contract_1.FieldAggregationType.TruncSecond, + _d[api_internal_contract_1.FieldAggregationType.TruncWeek] = api_external_contract_1.FieldAggregationType.TruncWeek, + _d[api_internal_contract_1.FieldAggregationType.TruncYear] = api_external_contract_1.FieldAggregationType.TruncYear, + _d[api_internal_contract_1.FieldAggregationType.User] = api_external_contract_1.FieldAggregationType.User, + _d[api_internal_contract_1.FieldAggregationType.Var] = api_external_contract_1.FieldAggregationType.Var, + _d[api_internal_contract_1.FieldAggregationType.Varp] = api_external_contract_1.FieldAggregationType.Varp, + _d[api_internal_contract_1.FieldAggregationType.Week] = api_external_contract_1.FieldAggregationType.Week, + _d[api_internal_contract_1.FieldAggregationType.Weekday] = api_external_contract_1.FieldAggregationType.Weekday, + _d[api_internal_contract_1.FieldAggregationType.Year] = api_external_contract_1.FieldAggregationType.Year, + _d)); + InternalToExternalEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_e = {}, + _e[api_internal_contract_1.FieldRoleType.Dimension] = api_external_contract_1.FieldRoleType.Dimension, + _e[api_internal_contract_1.FieldRoleType.Measure] = api_external_contract_1.FieldRoleType.Measure, + _e[api_internal_contract_1.FieldRoleType.Unknown] = api_external_contract_1.FieldRoleType.Unknown, + _e)); + InternalToExternalEnumMappings.sheetType = new api_utils_1.EnumConverter((_f = {}, + _f[api_internal_contract_1.SheetType.Dashboard] = api_external_contract_1.SheetType.Dashboard, + _f[api_internal_contract_1.SheetType.Story] = api_external_contract_1.SheetType.Story, + _f[api_internal_contract_1.SheetType.Worksheet] = api_external_contract_1.SheetType.Worksheet, + _f)); + InternalToExternalEnumMappings.dashboardObjectType = new api_utils_1.EnumConverter((_g = {}, + _g[api_internal_contract_1.DashboardObjectType.Extension] = api_external_contract_1.DashboardObjectType.Extension, + _g[api_internal_contract_1.DashboardObjectType.Blank] = api_external_contract_1.DashboardObjectType.Blank, + _g[api_internal_contract_1.DashboardObjectType.Image] = api_external_contract_1.DashboardObjectType.Image, + _g[api_internal_contract_1.DashboardObjectType.Legend] = api_external_contract_1.DashboardObjectType.Legend, + _g[api_internal_contract_1.DashboardObjectType.PageFilter] = api_external_contract_1.DashboardObjectType.PageFilter, + _g[api_internal_contract_1.DashboardObjectType.ParameterControl] = api_external_contract_1.DashboardObjectType.ParameterControl, + _g[api_internal_contract_1.DashboardObjectType.QuickFilter] = api_external_contract_1.DashboardObjectType.QuickFilter, + _g[api_internal_contract_1.DashboardObjectType.Text] = api_external_contract_1.DashboardObjectType.Text, + _g[api_internal_contract_1.DashboardObjectType.Title] = api_external_contract_1.DashboardObjectType.Title, + _g[api_internal_contract_1.DashboardObjectType.WebPage] = api_external_contract_1.DashboardObjectType.WebPage, + _g[api_internal_contract_1.DashboardObjectType.Worksheet] = api_external_contract_1.DashboardObjectType.Worksheet, + _g)); + InternalToExternalEnumMappings.dataType = new api_utils_1.EnumConverter((_h = {}, + _h[api_internal_contract_1.DataType.Bool] = api_external_contract_1.DataType.Bool, + _h[api_internal_contract_1.DataType.Date] = api_external_contract_1.DataType.Date, + _h[api_internal_contract_1.DataType.DateTime] = api_external_contract_1.DataType.DateTime, + _h[api_internal_contract_1.DataType.Float] = api_external_contract_1.DataType.Float, + _h[api_internal_contract_1.DataType.Int] = api_external_contract_1.DataType.Int, + _h[api_internal_contract_1.DataType.String] = api_external_contract_1.DataType.String, + _h)); + InternalToExternalEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_j = {}, + _j[api_internal_contract_1.FilterUpdateType.Add] = api_external_contract_1.FilterUpdateType.Add, + _j[api_internal_contract_1.FilterUpdateType.All] = api_external_contract_1.FilterUpdateType.All, + _j[api_internal_contract_1.FilterUpdateType.Remove] = api_external_contract_1.FilterUpdateType.Remove, + _j[api_internal_contract_1.FilterUpdateType.Replace] = api_external_contract_1.FilterUpdateType.Replace, + _j)); + InternalToExternalEnumMappings.allowableValues = new api_utils_1.EnumConverter((_k = {}, + _k[api_internal_contract_1.DomainRestrictionType.All] = api_external_contract_1.ParameterValueType.All, + _k[api_internal_contract_1.DomainRestrictionType.List] = api_external_contract_1.ParameterValueType.List, + _k[api_internal_contract_1.DomainRestrictionType.Range] = api_external_contract_1.ParameterValueType.Range, + _k)); + InternalToExternalEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_l = {}, + _l[api_internal_contract_1.DateStepPeriod.Years] = api_external_contract_1.PeriodType.Years, + _l[api_internal_contract_1.DateStepPeriod.Quarters] = api_external_contract_1.PeriodType.Quarters, + _l[api_internal_contract_1.DateStepPeriod.Months] = api_external_contract_1.PeriodType.Months, + _l[api_internal_contract_1.DateStepPeriod.Weeks] = api_external_contract_1.PeriodType.Weeks, + _l[api_internal_contract_1.DateStepPeriod.Days] = api_external_contract_1.PeriodType.Days, + _l[api_internal_contract_1.DateStepPeriod.Hours] = api_external_contract_1.PeriodType.Hours, + _l[api_internal_contract_1.DateStepPeriod.Minutes] = api_external_contract_1.PeriodType.Minutes, + _l[api_internal_contract_1.DateStepPeriod.Seconds] = api_external_contract_1.PeriodType.Seconds, + _l)); + InternalToExternalEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_m = {}, + _m[api_internal_contract_1.DateRangeType.Current] = api_external_contract_1.DateRangeType.Current, + _m[api_internal_contract_1.DateRangeType.Last] = api_external_contract_1.DateRangeType.Last, + _m[api_internal_contract_1.DateRangeType.LastN] = api_external_contract_1.DateRangeType.LastN, + _m[api_internal_contract_1.DateRangeType.Next] = api_external_contract_1.DateRangeType.Next, + _m[api_internal_contract_1.DateRangeType.NextN] = api_external_contract_1.DateRangeType.NextN, + _m[api_internal_contract_1.DateRangeType.ToDate] = api_external_contract_1.DateRangeType.ToDate, + _m)); + InternalToExternalEnumMappings.filterType = new api_utils_1.EnumConverter((_o = {}, + _o[api_internal_contract_1.FilterType.Categorical] = api_external_contract_1.FilterType.Categorical, + _o[api_internal_contract_1.FilterType.Range] = api_external_contract_1.FilterType.Range, + _o[api_internal_contract_1.FilterType.RelativeDate] = api_external_contract_1.FilterType.RelativeDate, + _o[api_internal_contract_1.FilterType.Hierarchical] = api_external_contract_1.FilterType.Hierarchical, + _o)); + return InternalToExternalEnumMappings; + }()); + exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; + /* tslint:enable:typedef */ + + +/***/ }, +/* 24 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Point = (function () { + function Point(_x, _y) { + this._x = _x; + this._y = _y; + } + Object.defineProperty(Point.prototype, "x", { + get: function () { + return this._x; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Point.prototype, "y", { + get: function () { + return this._y; + }, + enumerable: true, + configurable: true + }); + return Point; + }()); + exports.Point = Point; + + +/***/ }, +/* 25 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Size = (function () { + function Size(_height, _width) { + this._height = _height; + this._width = _width; + } + Object.defineProperty(Size.prototype, "height", { + get: function () { + return this._height; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Size.prototype, "width", { + get: function () { + return this._width; + }, + enumerable: true, + configurable: true + }); + return Size; + }()); + exports.Size = Size; + + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(13); + var Sheet_1 = __webpack_require__(11); + var Worksheet = (function (_super) { + __extends(Worksheet, _super); + function Worksheet(_worksheetImpl) { + var _this = _super.call(this, _worksheetImpl) || this; + _this._worksheetImpl = _worksheetImpl; + // Call to initialize events and then call down to the event listener manager to handle things + _this._worksheetImpl.initializeEvents(_this).forEach(function (e) { return _this.addNewEventType(e); }); + return _this; + } + Object.defineProperty(Worksheet.prototype, "parentDashboard", { + get: function () { + return this._worksheetImpl.parentDashboard; + }, + enumerable: true, + configurable: true + }); + Worksheet.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { + return this._worksheetImpl.applyFilterAsync(fieldName, values, updateType, options); + }; + Worksheet.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { + return this._worksheetImpl.applyRangeFilterAsync(fieldName, filterOptions); + }; + Worksheet.prototype.clearFilterAsync = function (fieldName) { + return this._worksheetImpl.clearFilterAsync(fieldName); + }; + Worksheet.prototype.getAnalyticObjectsAsync = function () { + throw api_utils_1.TableauException.apiNotImplemented(['getAnalyticObjectsAsync']); + }; + Worksheet.prototype.getDataSourcesAsync = function () { + return this._worksheetImpl.getDataSourcesAsync(); + }; + Worksheet.prototype.getEncodingsAsync = function () { + throw api_utils_1.TableauException.apiNotImplemented(['getEncodingsAsync']); + }; + Worksheet.prototype.getFiltersAsync = function () { + return this._worksheetImpl.getFiltersAsync(); + }; + Worksheet.prototype.getSelectedMarksAsync = function () { + return this._worksheetImpl.getSelectedMarksAsync(); + }; + Worksheet.prototype.getHighlightedMarksAsync = function () { + return this._worksheetImpl.getHighlightedMarksAsync(); + }; + Worksheet.prototype.getSummaryDataAsync = function (options) { + return this._worksheetImpl.getSummaryDataAsync(options); + }; + Worksheet.prototype.getUnderlyingDataAsync = function (options) { + return this._worksheetImpl.getUnderlyingDataAsync(options); + }; + Worksheet.prototype.clearSelectedMarksAsync = function () { + return this._worksheetImpl.clearSelectedMarksAsync(); + }; + Worksheet.prototype.selectMarksByIDAsync = function (marksInfo, updateType) { + return this._worksheetImpl.selectMarksByIdAsync(marksInfo, updateType); + }; + Worksheet.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { + return this._worksheetImpl.selectMarksByValueAsync(selections, selectionUpdateType); + }; + Worksheet.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { + return this._worksheetImpl.selectMarksByIdAsync(selections, selectionUpdateType); + }; + return Worksheet; + }(Sheet_1.Sheet)); + exports.Worksheet = Worksheet; + + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ServiceRegistry_1 = __webpack_require__(28); + var SheetImpl = (function () { + function SheetImpl(_sheetInfoImpl) { + this._sheetInfoImpl = _sheetInfoImpl; + } + Object.defineProperty(SheetImpl.prototype, "name", { + get: function () { + return this._sheetInfoImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetImpl.prototype, "sheetType", { + get: function () { + return this._sheetInfoImpl.sheetType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetImpl.prototype, "sheetPath", { + get: function () { + return this._sheetInfoImpl.sheetPath; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetImpl.prototype, "size", { + get: function () { + return this._sheetInfoImpl.sheetSize; + }, + enumerable: true, + configurable: true + }); + SheetImpl.prototype.findParameterAsync = function (parameterName, sheet) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return service.findParameterByNameAsync(parameterName, sheet); + }; + SheetImpl.prototype.getParametersAsync = function (sheet) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return service.getParametersForSheetAsync(this.sheetPath, sheet); + }; + return SheetImpl; + }()); + exports.SheetImpl = SheetImpl; + + +/***/ }, +/* 28 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(13); + var ServiceRegistryImpl = (function () { + function ServiceRegistryImpl() { + this._services = {}; + } + ServiceRegistryImpl.prototype.registerService = function (service) { + this._services[service.serviceName] = service; + }; + ServiceRegistryImpl.prototype.getService = function (serviceName) { + if (!this._services.hasOwnProperty(serviceName)) { + throw api_utils_1.TableauException.error(ServiceRegistryImpl.SERVICE_NOT_REGISTERED, [serviceName]); + } + return this._services[serviceName]; + }; + ServiceRegistryImpl.SERVICE_NOT_REGISTERED = 'No Service %1 is registered'; + return ServiceRegistryImpl; + }()); + /** + * static class used for getting access to the single instance + * of the ApiServiceRegistry + */ + var ApiServiceRegistry = (function () { + // Private to avoid anyone constructing this + function ApiServiceRegistry() { + } + Object.defineProperty(ApiServiceRegistry, "instance", { + /** + * Gets the singleton instance of the ServiceRegistry + */ + get: function () { + if (!window.__tableauApiServiceRegistry) { + ApiServiceRegistry.setInstance(new ServiceRegistryImpl()); + } + if (!window.__tableauApiServiceRegistry) { + throw api_utils_1.TableauException.error(ApiServiceRegistry.SERVICE_REGISTRY_FAILED); + } + return window.__tableauApiServiceRegistry; + }, + enumerable: true, + configurable: true + }); + /** + * Helper method to override the registry instance. Can be used by unit tests + * + * @param {ServiceRegistry} serviceRegistry The new registry + */ + ApiServiceRegistry.setInstance = function (serviceRegistry) { + window.__tableauApiServiceRegistry = serviceRegistry; + }; + ApiServiceRegistry.SERVICE_REGISTRY_FAILED = 'Assigning service registry failed'; + return ApiServiceRegistry; + }()); + exports.ApiServiceRegistry = ApiServiceRegistry; + + +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_external_contract_1 = __webpack_require__(19); + var SheetInfoImpl = (function () { + function SheetInfoImpl(_name, _sheetType, _sheetSize) { + this._name = _name; + this._sheetType = _sheetType; + this._sheetSize = _sheetSize; + } + Object.defineProperty(SheetInfoImpl.prototype, "name", { + get: function () { + return this._name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetInfoImpl.prototype, "sheetSize", { + get: function () { + return this._sheetSize; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetInfoImpl.prototype, "sheetType", { + get: function () { + return this._sheetType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetInfoImpl.prototype, "sheetPath", { + get: function () { + return { + sheetName: this.name, + isDashboard: this.sheetType === api_external_contract_1.SheetType.Dashboard + // TODO - Stories + }; + }, + enumerable: true, + configurable: true + }); + return SheetInfoImpl; + }()); + exports.SheetInfoImpl = SheetInfoImpl; + + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var DataSource_1 = __webpack_require__(31); + var DataSourceImpl_1 = __webpack_require__(32); + var SheetImpl_1 = __webpack_require__(27); + var SingleEventManagerImpl_1 = __webpack_require__(37); + var FilterChangedEvent_1 = __webpack_require__(38); + var MarksSelectedEvent_1 = __webpack_require__(42); + var GetDataService_1 = __webpack_require__(43); + var ServiceRegistry_1 = __webpack_require__(28); + var visualIdsAreEqual = function (a, b) { + return a && b && + a.worksheet === b.worksheet && + a.dashboard === b.dashboard && + a.storyboard === b.storyboard && + a.storyPointID === b.storyPointID && + a.flipboardZoneID === b.flipboardZoneID; + }; + var WorksheetImpl = (function (_super) { + __extends(WorksheetImpl, _super); + function WorksheetImpl(sheetInfoImpl, _visualId, _parentDashboard) { + var _this = _super.call(this, sheetInfoImpl) || this; + _this._visualId = _visualId; + _this._parentDashboard = _parentDashboard; + return _this; + } + Object.defineProperty(WorksheetImpl.prototype, "parentDashboard", { + get: function () { + return this._parentDashboard; + }, + enumerable: true, + configurable: true + }); + /** + * Helper method which goes through and registers each event type this impl knows about + * with the NotificationService. It returns an array of SingleEventManager objects which + * can then be passed to an EventListenerManager to handle user registration / unregistration. + * + * @param {Worksheet} worksheet The worksheet object which will be included with the event notifications + * @returns {Array} Collection of event managers to pass to an EventListenerManager + */ + WorksheetImpl.prototype.initializeEvents = function (worksheet) { + var _this = this; + var results = new Array(); + var notificationService; + try { + notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); + } + catch (e) { + // If we don't have this service registered, just return + return results; + } + // Initialize all of the event managers we'll need (one for each event type) + var marksEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.MarkSelectionChanged); + notificationService.registerHandler(api_internal_contract_1.NotificationId.SelectedMarksChanged, function (model) { + var visualId = model; + return visualIdsAreEqual(visualId, _this.visualId); + }, function (viz) { + marksEvent.triggerEvent(function () { return new MarksSelectedEvent_1.MarksSelectedEvent(worksheet); }); + }); + var filterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.FilterChanged); + notificationService.registerHandler(api_internal_contract_1.NotificationId.FilterChanged, function (model) { + var filterEventResponse = model; + return _this.visualId.worksheet === filterEventResponse.visualId.worksheet; + }, function (event) { + filterEvent.triggerEvent(function () { return new FilterChangedEvent_1.FilterChangedEvent(worksheet, event.fieldName); }); + }); + results.push(marksEvent); + results.push(filterEvent); + // TODO - other event types + return results; + }; + Object.defineProperty(WorksheetImpl.prototype, "visualId", { + get: function () { + return this._visualId; + }, + enumerable: true, + configurable: true + }); + WorksheetImpl.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.applyFilterAsync(this.visualId, fieldName, values, updateType, options); + }; + WorksheetImpl.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.applyRangeFilterAsync(this.visualId, fieldName, filterOptions); + }; + WorksheetImpl.prototype.clearFilterAsync = function (fieldName) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.clearFilterAsync(this.visualId, fieldName); + }; + WorksheetImpl.prototype.getDataSourcesAsync = function () { + var _this = this; + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); + return service.getDataSourcesAsync().then(function (result) { + var dataSchema = result; + var worksheetDataSourceInfo = dataSchema.worksheetDataSchemaMap[_this.name]; + var dataSources = []; + // First, add the primary datasource. By convention, it comes first in the returned array. + var primaryId = worksheetDataSourceInfo.primaryDataSource; + dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[primaryId])); + // Then, loop through any secondary data sources and add them. + for (var _i = 0, _a = worksheetDataSourceInfo.referencedDataSourceList; _i < _a.length; _i++) { + var secondaryId = _a[_i]; + if (secondaryId !== primaryId) { + dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[secondaryId])); + } + } + return dataSources; + }); + }; + WorksheetImpl.prototype.getFiltersAsync = function () { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.getFiltersAsync(this.visualId); + }; + WorksheetImpl.prototype.getSelectedMarksAsync = function () { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + return service.getSelectedMarksAsync(this.visualId); + }; + WorksheetImpl.prototype.getHighlightedMarksAsync = function () { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + return service.getHighlightedMarksAsync(this.visualId); + }; + WorksheetImpl.prototype.getSummaryDataAsync = function (options) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + options = options || {}; + return service.getUnderlyingDataAsync(this.visualId, GetDataService_1.GetDataType.Summary, !!options.ignoreAliases, !!options.ignoreSelection, true, 0); + }; + WorksheetImpl.prototype.getUnderlyingDataAsync = function (options) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + options = options || {}; + return service.getUnderlyingDataAsync(this.visualId, GetDataService_1.GetDataType.Underlying, !!options.ignoreAliases, !!options.ignoreSelection, !!options.includeAllColumns, options.maxRows || 0); + }; + WorksheetImpl.prototype.clearSelectedMarksAsync = function () { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); + return service.clearSelectedMarksAsync(this.visualId); + }; + WorksheetImpl.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); + return service.selectMarksByValueAsync(this.visualId, selections, selectionUpdateType); + }; + WorksheetImpl.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); + return service.selectMarksByIdAsync(this.visualId, selections, selectionUpdateType); + }; + WorksheetImpl.prototype.createDataSourceFromInfo = function (dataSourceInfo) { + var dataSourceImpl = new DataSourceImpl_1.DataSourceImpl(dataSourceInfo); + var dataSource = new DataSource_1.DataSource(dataSourceImpl); + dataSourceImpl.initializeWithPublicInterfaces(dataSource); + return dataSource; + }; + return WorksheetImpl; + }(SheetImpl_1.SheetImpl)); + exports.WorksheetImpl = WorksheetImpl; + + +/***/ }, +/* 31 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var DataSource = (function () { + function DataSource(_dataSourceImpl) { + this._dataSourceImpl = _dataSourceImpl; + } + Object.defineProperty(DataSource.prototype, "name", { + get: function () { + return this._dataSourceImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "id", { + get: function () { + return this._dataSourceImpl.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "fields", { + get: function () { + return this._dataSourceImpl.fields; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "extractUpdateTime", { + get: function () { + return this._dataSourceImpl.extractUpdateTime; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "isExtract", { + get: function () { + return this._dataSourceImpl.isExtract; + }, + enumerable: true, + configurable: true + }); + DataSource.prototype.refreshAsync = function () { + return this._dataSourceImpl.refreshAsync(); + }; + DataSource.prototype.getActiveTablesAsync = function () { + return this._dataSourceImpl.getActiveTablesAsync(); + }; + DataSource.prototype.getConnectionSummariesAsync = function () { + return this._dataSourceImpl.getConnectionSummariesAsync(); + }; + DataSource.prototype.getUnderlyingDataAsync = function (options) { + return this._dataSourceImpl.getUnderlyingDataAsync(options); + }; + return DataSource; + }()); + exports.DataSource = DataSource; + + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var FieldImpl_1 = __webpack_require__(33); + var ConnectionSummary_1 = __webpack_require__(34); + var Field_1 = __webpack_require__(35); + var TableSummary_1 = __webpack_require__(36); + var ServiceRegistry_1 = __webpack_require__(28); + var DataSourceImpl = (function () { + function DataSourceImpl(_dataSourceInfo) { + var _this = this; + this._dataSourceInfo = _dataSourceInfo; + this._fields = _dataSourceInfo.fields.map(function (fieldModel) { + var fieldImpl = new FieldImpl_1.FieldImpl(fieldModel, _this); + return new Field_1.Field(fieldImpl); + }); + } + Object.defineProperty(DataSourceImpl.prototype, "name", { + get: function () { + return this._dataSourceInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "id", { + get: function () { + return this._dataSourceInfo.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "extractUpdateTime", { + get: function () { + return this._dataSourceInfo.extractUpdateTime; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "fields", { + get: function () { + return this._fields; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "isExtract", { + get: function () { + return this._dataSourceInfo.isExtract; + }, + enumerable: true, + configurable: true + }); + DataSourceImpl.prototype.refreshAsync = function () { + var dataSourceService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); + return dataSourceService.refreshAsync(this._dataSourceInfo.id); + }; + DataSourceImpl.prototype.getConnectionSummariesAsync = function () { + var dataSourceService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); + return dataSourceService.getConnectionSummariesAsync(this._dataSourceInfo.id).then(function (summaries) { + return summaries.map(function (summary) { return new ConnectionSummary_1.ConnectionSummary(summary); }); + }); + }; + DataSourceImpl.prototype.getActiveTablesAsync = function () { + var dataSourceService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); + return dataSourceService.getActiveTablesAsync(this._dataSourceInfo.id).then(function (tableInfos) { + return tableInfos.map(function (tableInfo) { return new TableSummary_1.TableSummary(tableInfo); }); + }); + }; + DataSourceImpl.prototype.getUnderlyingDataAsync = function (options) { + var defaultOptions = { + ignoreAliases: false, + maxRows: 10000, + columnsToInclude: [], + }; + options = options || {}; + var getDataService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + return getDataService.getDataSourceDataAsync(this.id, !!options.ignoreAliases, options.maxRows || defaultOptions.maxRows, options.columnsToInclude || defaultOptions.columnsToInclude); + }; + DataSourceImpl.prototype.initializeWithPublicInterfaces = function (dataSource) { + this._fields = this._dataSourceInfo.fields.map(function (fieldModel) { + var fieldImpl = new FieldImpl_1.FieldImpl(fieldModel, dataSource); + return new Field_1.Field(fieldImpl); + }); + }; + return DataSourceImpl; + }()); + exports.DataSourceImpl = DataSourceImpl; + + +/***/ }, +/* 33 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var InternalToExternalEnumMappings_1 = __webpack_require__(23); + var FieldImpl = (function () { + function FieldImpl(_fieldInfo, _parentDataSource) { + this._fieldInfo = _fieldInfo; + this._parentDataSource = _parentDataSource; + } + Object.defineProperty(FieldImpl.prototype, "name", { + get: function () { + return this._fieldInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "id", { + get: function () { + return this._fieldInfo.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "description", { + get: function () { + return this._fieldInfo.description; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "aggregation", { + get: function () { + return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.fieldAggregationType.convert(this._fieldInfo.aggregation); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "dataSource", { + get: function () { + return this._parentDataSource; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "role", { + get: function () { + return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.fieldRoleType.convert(this._fieldInfo.role); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isHidden", { + get: function () { + return this._fieldInfo.isHidden; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isGenerated", { + get: function () { + return this._fieldInfo.isGenerated; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isCalculatedField", { + get: function () { + return this._fieldInfo.isCalculatedField; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isCombinedField", { + get: function () { + return this._fieldInfo.isCombinedField; + }, + enumerable: true, + configurable: true + }); + FieldImpl.prototype.getCalculatedFieldAsync = function () { + throw new Error('Field getCalculatedFieldAsync method not yet implemented.'); + }; + return FieldImpl; + }()); + exports.FieldImpl = FieldImpl; + + +/***/ }, +/* 34 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of a connection summary. + * This does not follow the Impl pattern as it is just a property bag. + */ + var ConnectionSummary = (function () { + function ConnectionSummary(_connectionInfo) { + this._connectionInfo = _connectionInfo; + } + Object.defineProperty(ConnectionSummary.prototype, "name", { + get: function () { + return this._connectionInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ConnectionSummary.prototype, "id", { + get: function () { + return this._connectionInfo.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ConnectionSummary.prototype, "serverURI", { + get: function () { + return this._connectionInfo.serverURI; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ConnectionSummary.prototype, "type", { + get: function () { + return this._connectionInfo.type; + }, + enumerable: true, + configurable: true + }); + return ConnectionSummary; + }()); + exports.ConnectionSummary = ConnectionSummary; + + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(13); + var Field = (function () { + function Field(_fieldImpl) { + this._fieldImpl = _fieldImpl; + } + Object.defineProperty(Field.prototype, "name", { + get: function () { + return this._fieldImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "id", { + get: function () { + return this._fieldImpl.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "description", { + get: function () { + return this._fieldImpl.description; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "aggregation", { + get: function () { + return this._fieldImpl.aggregation; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "dataSource", { + get: function () { + return this._fieldImpl.dataSource; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "role", { + get: function () { + return this._fieldImpl.role; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isHidden", { + get: function () { + return this._fieldImpl.isHidden; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isGenerated", { + get: function () { + return this._fieldImpl.isGenerated; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isCalculatedField", { + get: function () { + return this._fieldImpl.isCalculatedField; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "columnType", { + get: function () { + throw api_utils_1.TableauException.apiNotImplemented(['Field.columnType']); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isCombinedField", { + get: function () { + return this._fieldImpl.isCombinedField; + }, + enumerable: true, + configurable: true + }); + Field.prototype.getCalculatedFieldAsync = function () { + return this._fieldImpl.getCalculatedFieldAsync(); + }; + return Field; + }()); + exports.Field = Field; + + +/***/ }, +/* 36 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of a table summary. + * This does not follow the Impl pattern as it is just a property bag. + */ + var TableSummary = (function () { + function TableSummary(_tableInfo) { + this._tableInfo = _tableInfo; + } + Object.defineProperty(TableSummary.prototype, "name", { + get: function () { + return this._tableInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TableSummary.prototype, "id", { + get: function () { + return this._tableInfo.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TableSummary.prototype, "connectionId", { + get: function () { + return this._tableInfo.connectionId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(TableSummary.prototype, "customSQL", { + get: function () { + return this._tableInfo.customSQL; + }, + enumerable: true, + configurable: true + }); + return TableSummary; + }()); + exports.TableSummary = TableSummary; + + +/***/ }, +/* 37 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * This class implements the SingleEventManager interface for a single type of Tableau event + * + * @template TEventType The Tableau event type this class specializes + */ + var SingleEventManagerImpl = (function () { + function SingleEventManagerImpl(eventType) { + this._eventType = eventType; + this._handlers = []; + } + Object.defineProperty(SingleEventManagerImpl.prototype, "eventType", { + get: function () { + return this._eventType; + }, + enumerable: true, + configurable: true + }); + SingleEventManagerImpl.prototype.addEventListener = function (handler) { + var _this = this; + this._handlers.push(handler); + return function () { return _this.removeEventListener(handler); }; + }; + SingleEventManagerImpl.prototype.removeEventListener = function (handler) { + var beforeCount = this._handlers.length; + this._handlers = this._handlers.filter(function (h) { return h !== handler; }); + return beforeCount > this._handlers.length; + }; + SingleEventManagerImpl.prototype.triggerEvent = function (eventGenerator) { + for (var _i = 0, _a = this._handlers; _i < _a.length; _i++) { + var handler = _a[_i]; + try { + var eventModel = eventGenerator(); + handler(eventModel); + } + catch (e) { + // Since this handler could be outside our control, just catch anything it throws and continue on + continue; + } + } + }; + return SingleEventManagerImpl; + }()); + exports.SingleEventManagerImpl = SingleEventManagerImpl; + + +/***/ }, +/* 38 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_utils_1 = __webpack_require__(13); + var TableauWorksheetEvent_1 = __webpack_require__(39); + var FilterChangedEvent = (function (_super) { + __extends(FilterChangedEvent, _super); + function FilterChangedEvent(worksheet, _fieldName) { + var _this = _super.call(this, Contract.TableauEventType.FilterChanged, worksheet) || this; + _this._fieldName = _fieldName; + return _this; + } + Object.defineProperty(FilterChangedEvent.prototype, "fieldName", { + get: function () { + return this._fieldName; + }, + enumerable: true, + configurable: true + }); + FilterChangedEvent.prototype.getFilterAsync = function () { + var _this = this; + return this._worksheet.getFiltersAsync().then(function (filters) { + // TODO: Filtering of the filters should eventually be done platform side. + var eventedFilter = filters.find(function (filter) { return (filter.fieldName === _this._fieldName); }); + if (!eventedFilter) { + // We shouldn't hit this unless the filter was removed from the worksheet + // after the event was raised. + throw api_utils_1.TableauException.internalError(['Filter no longer found in worksheet.']); + } + return eventedFilter; + }); + }; + return FilterChangedEvent; + }(TableauWorksheetEvent_1.TableauWorksheetEvent)); + exports.FilterChangedEvent = FilterChangedEvent; + + +/***/ }, +/* 39 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauSheetEvent_1 = __webpack_require__(40); + var TableauWorksheetEvent = (function (_super) { + __extends(TableauWorksheetEvent, _super); + function TableauWorksheetEvent(type, _worksheet) { + var _this = _super.call(this, type, _worksheet) || this; + _this._worksheet = _worksheet; + return _this; + } + Object.defineProperty(TableauWorksheetEvent.prototype, "worksheet", { + get: function () { + return this._worksheet; + }, + enumerable: true, + configurable: true + }); + return TableauWorksheetEvent; + }(TableauSheetEvent_1.TableauSheetEvent)); + exports.TableauWorksheetEvent = TableauWorksheetEvent; + + +/***/ }, +/* 40 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauEvent_1 = __webpack_require__(41); + var TableauSheetEvent = (function (_super) { + __extends(TableauSheetEvent, _super); + function TableauSheetEvent(type, sheet) { + var _this = _super.call(this, type) || this; + _this._sheet = sheet; + return _this; + } + Object.defineProperty(TableauSheetEvent.prototype, "sheet", { + get: function () { + return this._sheet; + }, + enumerable: true, + configurable: true + }); + return TableauSheetEvent; + }(TableauEvent_1.TableauEvent)); + exports.TableauSheetEvent = TableauSheetEvent; + + +/***/ }, +/* 41 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauEvent = (function () { + function TableauEvent(type) { + this._type = type; + } + Object.defineProperty(TableauEvent.prototype, "type", { + get: function () { + return this._type; + }, + enumerable: true, + configurable: true + }); + return TableauEvent; + }()); + exports.TableauEvent = TableauEvent; + + +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var TableauWorksheetEvent_1 = __webpack_require__(39); + var MarksSelectedEvent = (function (_super) { + __extends(MarksSelectedEvent, _super); + function MarksSelectedEvent(worksheet) { + return _super.call(this, Contract.TableauEventType.MarkSelectionChanged, worksheet) || this; + } + MarksSelectedEvent.prototype.getMarksAsync = function () { + return this.worksheet.getSelectedMarksAsync(); + }; + return MarksSelectedEvent; + }(TableauWorksheetEvent_1.TableauWorksheetEvent)); + exports.MarksSelectedEvent = MarksSelectedEvent; + + +/***/ }, +/* 43 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Defines which type of getData call to make. + */ + var GetDataType; + (function (GetDataType) { + GetDataType["Summary"] = "summary"; + GetDataType["Underlying"] = "underlying"; + })(GetDataType = exports.GetDataType || (exports.GetDataType = {})); + + +/***/ }, +/* 44 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var DataSourceServiceImpl_1 = __webpack_require__(45); + var FilterServiceImpl_1 = __webpack_require__(46); + var GetDataServiceImpl_1 = __webpack_require__(50); + var NotificationServiceImpl_1 = __webpack_require__(51); + var ParametersServiceImpl_1 = __webpack_require__(52); + var SelectionServiceImpl_1 = __webpack_require__(56); + var ServiceRegistry_1 = __webpack_require__(28); + function registerAllSharedServices(dispatcher) { + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new DataSourceServiceImpl_1.DataSourceServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new GetDataServiceImpl_1.GetDataServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new FilterServiceImpl_1.FilterServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new NotificationServiceImpl_1.NotificationServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new ParametersServiceImpl_1.ParametersServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new SelectionServiceImpl_1.SelectionServiceImpl(dispatcher)); + } + exports.registerAllSharedServices = registerAllSharedServices; + + +/***/ }, +/* 45 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_external_contract_1 = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var api_utils_1 = __webpack_require__(13); + var DataSourceServiceImpl = (function () { + function DataSourceServiceImpl(_dispatcher) { + this._dispatcher = _dispatcher; + } + Object.defineProperty(DataSourceServiceImpl.prototype, "serviceName", { + get: function () { + return "data-source-service" /* DataSourceService */; + }, + enumerable: true, + configurable: true + }); + DataSourceServiceImpl.prototype.refreshAsync = function (dataSourceId) { + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.RefreshDataSource, parameters).then(function (response) { + return; + }); + var _a; + }; + DataSourceServiceImpl.prototype.getActiveTablesAsync = function (dataSourceId) { + var joinParameters = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a); + // Get the description of the tables used by this connection + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetJoinDescription, joinParameters).then(function (joinResponse) { + var joinDescription = joinResponse.result; + // getActiveTables is unsupported for cubes and GA. We do not have a connection type property + // available from the platform (intentionally, to reduce code churn as new connections are added). + // Instead,just check if any tables are returned. This array will be empty for any non-table based datasource. + if (joinDescription.tables.length === 0) { + throw api_utils_1.TableauException.error('getActiveTablesAsync is unsupported for DataSource.', [api_external_contract_1.ErrorCodes.UnsupportedMethodForDataSourceType]); + } + return joinDescription.tables; + }); + var _a; + }; + DataSourceServiceImpl.prototype.getDataSourcesAsync = function () { + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSources, {}).then(function (response) { + var dataSchema = response.result; + return dataSchema; + }); + }; + DataSourceServiceImpl.prototype.getConnectionSummariesAsync = function (dataSourceId) { + var params = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a); + // Get the description of the tables used by this connection + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetConnectionDescriptionSummaries, params).then(function (response) { + var descriptionSummaries = response.result; + return descriptionSummaries; + }); + var _a; + }; + return DataSourceServiceImpl; + }()); + exports.DataSourceServiceImpl = DataSourceServiceImpl; + + +/***/ }, +/* 46 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var api_utils_1 = __webpack_require__(13); + var ExternalToInternalEnumMappings_1 = __webpack_require__(47); + var InternalToExternalEnumMappings_1 = __webpack_require__(23); + var FilterModels_1 = __webpack_require__(48); + var GetDataModels_1 = __webpack_require__(49); + var FilterServiceImpl = (function () { + function FilterServiceImpl(dispatcher) { + this._dispatcher = dispatcher; + } + Object.defineProperty(FilterServiceImpl.prototype, "serviceName", { + get: function () { + return "filter-service" /* Filter */; + }, + enumerable: true, + configurable: true + }); + FilterServiceImpl.prototype.applyFilterAsync = function (visualId, fieldName, values, updateType, filterOptions) { + if (!api_utils_1.Param.isValidEnumValue(updateType, Contract.FilterUpdateType)) { + throw api_utils_1.TableauException.invalidParamValue(['FilterUpdateType']); + } + var verb = api_internal_contract_1.VerbId.ApplyCategoricalFilter; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; + parameters[api_internal_contract_1.ParameterId.FilterValues] = values; + parameters[api_internal_contract_1.ParameterId.FilterUpdateType] = updateType; + parameters[api_internal_contract_1.ParameterId.IsExcludeMode] = + (filterOptions === undefined || filterOptions.isExcludeMode === undefined) ? false : filterOptions.isExcludeMode; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var error = response.result; + if (!(error.errorCode === null || error.errorCode === undefined)) { + // TODO: come back and implement error handling logic + throw api_utils_1.TableauException.error(FilterServiceImpl.FILTER_ERROR, [error.errorCode]); + } + return fieldName; + }); + }; + FilterServiceImpl.prototype.applyRangeFilterAsync = function (visualId, fieldName, filterOptions) { + if (!filterOptions) { + throw api_utils_1.TableauException.missingParameter(['RangeFilterOptions']); + } + api_utils_1.Param.verifyRangeParamType(filterOptions.min, filterOptions.max); + var verb = api_internal_contract_1.VerbId.ApplyRangeFilter; + var parameters = {}; + if (filterOptions.min) { + var min = void 0; + if (filterOptions.min instanceof Date) { + min = api_utils_1.Param.serializeDateForPlatform(filterOptions.min); + } + else { + min = filterOptions.min; + } + parameters[api_internal_contract_1.ParameterId.FilterRangeMin] = min; + } + if (filterOptions.max) { + var max = void 0; + if (filterOptions.max instanceof Date) { + max = api_utils_1.Param.serializeDateForPlatform(filterOptions.max); + } + else { + max = filterOptions.max; + } + parameters[api_internal_contract_1.ParameterId.FilterRangeMax] = max; + } + if (filterOptions.nullOption) { + if (!api_utils_1.Param.isValidEnumValue(filterOptions.nullOption, Contract.FilterNullOption)) { + throw api_utils_1.TableauException.invalidParamValue(['NullOption']); + } + parameters[api_internal_contract_1.ParameterId.FilterRangeNullOption] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.nullOptions.convert(filterOptions.nullOption); + } + parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + return this._dispatcher.execute(verb, parameters).then(function (response) { + return fieldName; + }); + }; + FilterServiceImpl.prototype.clearFilterAsync = function (visualId, fieldName) { + var verb = api_internal_contract_1.VerbId.ClearFilter; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; + return this._dispatcher.execute(verb, parameters).then(function (resposne) { + return fieldName; + }); + }; + FilterServiceImpl.prototype.getFiltersAsync = function (visualId) { + var _this = this; + var verb = api_internal_contract_1.VerbId.GetFilters; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var filters = response.result; + return _this.convertDomainFilters(filters); + }); + }; + FilterServiceImpl.prototype.getCategoricalDomainAsync = function (worksheetName, fieldId, domainType) { + var _this = this; + if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) { + throw new Error('Invalid value for parameter FilterDomainType'); + } + var verb = api_internal_contract_1.VerbId.GetCategoricalDomain; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = { + worksheet: worksheetName + }; + parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId; + parameters[api_internal_contract_1.ParameterId.DomainType] = domainType; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var domain = response.result; + return _this.convertCategoricalDomain(domain, domainType); + }); + }; + FilterServiceImpl.prototype.getRangeDomainAsync = function (worksheetName, fieldId, domainType) { + var _this = this; + if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) { + throw new Error('Invalid value for parameter FilterDomainType'); + } + var verb = api_internal_contract_1.VerbId.GetRangeDomain; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = { + worksheet: worksheetName + }; + parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId; + parameters[api_internal_contract_1.ParameterId.DomainType] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.filterDomainType.convert(domainType); + return this._dispatcher.execute(verb, parameters).then(function (response) { + var domain = response.result; + return _this.convertRangeDomain(domain, domainType); + }); + }; + // Helper Methods + FilterServiceImpl.prototype.convertDomainFilters = function (domainFilters) { + var _this = this; + var filters = []; + domainFilters.forEach(function (domainFilter) { + switch (domainFilter.filterType) { + case api_internal_contract_1.FilterType.Categorical: { + var filter = domainFilter; + if (filter) { + filters.push(_this.convertCategoricalFilter(filter)); + } + else { + throw new Error('Invalid Categorical Filter'); + } + break; + } + case api_internal_contract_1.FilterType.Range: { + var filter = domainFilter; + if (filter) { + filters.push(_this.convertRangeFilter(filter)); + } + else { + throw new Error('Invalid Range Filter'); + } + break; + } + case api_internal_contract_1.FilterType.RelativeDate: { + var filter = domainFilter; + if (filter) { + filters.push(_this.convertRelativeDateFilter(filter)); + } + else { + throw new Error('Invalid Relative Date Filter'); + } + break; + } + default: { + break; + } + } + }); + return filters; + }; + FilterServiceImpl.prototype.convertCategoricalFilter = function (domainFilter) { + var appliedValues = domainFilter.values.map(function (dv) { + return new GetDataModels_1.DataValue(dv.value, dv.formattedValue); + }); + return new FilterModels_1.CategoricalFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Categorical, appliedValues, domainFilter.isExclude); + }; + FilterServiceImpl.prototype.convertRangeFilter = function (domainFilter) { + var minValue = new GetDataModels_1.DataValue(domainFilter.min.value, domainFilter.min.formattedValue); + var maxValue = new GetDataModels_1.DataValue(domainFilter.max.value, domainFilter.max.formattedValue); + return new FilterModels_1.RangeFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Range, minValue, maxValue, domainFilter.includeNullValues); + }; + FilterServiceImpl.prototype.convertRelativeDateFilter = function (domainFilter) { + var anchorDateValue = new GetDataModels_1.DataValue(domainFilter.anchorDate.value, domainFilter.anchorDate.formattedValue); + return new FilterModels_1.RelativeDateFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.RelativeDate, anchorDateValue, InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(domainFilter.periodType), InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateRangeType.convert(domainFilter.rangeType), domainFilter.rangeN); + }; + FilterServiceImpl.prototype.convertCategoricalDomain = function (domain, domainType) { + var values = domain.values.map(function (domainDv) { + return new GetDataModels_1.DataValue(domainDv.value, domainDv.formattedValue); + }); + return new FilterModels_1.CategoricalDomain(values, domainType); + }; + FilterServiceImpl.prototype.convertRangeDomain = function (domain, domainType) { + var min = new GetDataModels_1.DataValue(domain.min.value, domain.min.formattedValue); + var max = new GetDataModels_1.DataValue(domain.max.value, domain.max.formattedValue); + return new FilterModels_1.RangeDomain(min, max, domainType); + }; + FilterServiceImpl.FILTER_ERROR = 'Error Applying Filter: %1'; + return FilterServiceImpl; + }()); + exports.FilterServiceImpl = FilterServiceImpl; + + +/***/ }, +/* 47 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_external_contract_1 = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var api_utils_1 = __webpack_require__(13); + /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ + /** + * Maps enums used by the external-api-contract to the enums used + * in the internal-api-contract, which developers code against. + */ + var ExternalToInternalEnumMappings = (function () { + function ExternalToInternalEnumMappings() { + } + ExternalToInternalEnumMappings.nullOptions = new api_utils_1.EnumConverter((_a = {}, + _a[api_external_contract_1.FilterNullOption.AllValues] = api_internal_contract_1.FilterNullOption.AllValues, + _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NonNullValues, + _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NullValues, + _a)); + ExternalToInternalEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_b = {}, + _b[api_external_contract_1.FilterDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant, + _b[api_external_contract_1.FilterDomainType.Database] = api_internal_contract_1.FilterDomainType.Database, + _b)); + return ExternalToInternalEnumMappings; + }()); + exports.ExternalToInternalEnumMappings = ExternalToInternalEnumMappings; + var _a, _b; + /* tslint:enable:typedef */ + + +/***/ }, +/* 48 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var ServiceRegistry_1 = __webpack_require__(28); + var Filter = (function () { + function Filter(_worksheetName, _fieldName, _filterType, _fieldId) { + this._worksheetName = _worksheetName; + this._fieldName = _fieldName; + this._filterType = _filterType; + this._fieldId = _fieldId; + } + Object.defineProperty(Filter.prototype, "worksheetName", { + get: function () { + return this._worksheetName; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Filter.prototype, "fieldName", { + get: function () { + return this._fieldName; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Filter.prototype, "fieldId", { + get: function () { + return this._fieldId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Filter.prototype, "filterType", { + get: function () { + return this._filterType; + }, + enumerable: true, + configurable: true + }); + Filter.prototype.getFieldAsync = function () { + throw new Error('Method not implemented'); + }; + return Filter; + }()); + exports.Filter = Filter; + var CategoricalFilter = (function (_super) { + __extends(CategoricalFilter, _super); + function CategoricalFilter(worksheetName, fieldName, fieldId, filterType, _appliedValues, _isExcludeMode) { + var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; + _this._appliedValues = _appliedValues; + _this._isExcludeMode = _isExcludeMode; + return _this; + } + Object.defineProperty(CategoricalFilter.prototype, "appliedValues", { + get: function () { + return this._appliedValues; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CategoricalFilter.prototype, "isExcludeMode", { + get: function () { + return this._isExcludeMode; + }, + enumerable: true, + configurable: true + }); + CategoricalFilter.prototype.getDomainAsync = function (domainType) { + if (!domainType) { + domainType = Contract.FilterDomainType.Relevant; + } + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.getCategoricalDomainAsync(this._worksheetName, this._fieldId, domainType); + }; + return CategoricalFilter; + }(Filter)); + exports.CategoricalFilter = CategoricalFilter; + var RangeFilter = (function (_super) { + __extends(RangeFilter, _super); + function RangeFilter(worksheetName, fieldName, fieldId, filterType, _min, _max, _includeNullValues) { + var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; + _this._min = _min; + _this._max = _max; + _this._includeNullValues = _includeNullValues; + return _this; + } + Object.defineProperty(RangeFilter.prototype, "minValue", { + get: function () { + return this._min; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeFilter.prototype, "maxValue", { + get: function () { + return this._max; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeFilter.prototype, "includeNullValues", { + get: function () { + return this._includeNullValues; + }, + enumerable: true, + configurable: true + }); + RangeFilter.prototype.getDomainAsync = function (domainType) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + if (!domainType) { + domainType = Contract.FilterDomainType.Relevant; + } + return service.getRangeDomainAsync(this._worksheetName, this._fieldId, domainType); + }; + return RangeFilter; + }(Filter)); + exports.RangeFilter = RangeFilter; + var RelativeDateFilter = (function (_super) { + __extends(RelativeDateFilter, _super); + function RelativeDateFilter(worksheetName, fieldName, fieldId, filterType, _anchorDate, _periodType, _rangeType, _rangeN) { + var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; + _this._anchorDate = _anchorDate; + _this._periodType = _periodType; + _this._rangeType = _rangeType; + _this._rangeN = _rangeN; + return _this; + } + Object.defineProperty(RelativeDateFilter.prototype, "anchorDate", { + get: function () { + return this._anchorDate; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RelativeDateFilter.prototype, "periodType", { + get: function () { + return this._periodType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RelativeDateFilter.prototype, "rangeType", { + get: function () { + return this._rangeType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RelativeDateFilter.prototype, "rangeN", { + get: function () { + return this._rangeN; + }, + enumerable: true, + configurable: true + }); + return RelativeDateFilter; + }(Filter)); + exports.RelativeDateFilter = RelativeDateFilter; + var CategoricalDomain = (function () { + function CategoricalDomain(_values, _domainType) { + this._values = _values; + this._domainType = _domainType; + } + Object.defineProperty(CategoricalDomain.prototype, "values", { + get: function () { + return this._values; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CategoricalDomain.prototype, "type", { + get: function () { + return this._domainType; + }, + enumerable: true, + configurable: true + }); + return CategoricalDomain; + }()); + exports.CategoricalDomain = CategoricalDomain; + var RangeDomain = (function () { + function RangeDomain(_min, _max, _domainType) { + this._min = _min; + this._max = _max; + this._domainType = _domainType; + } + Object.defineProperty(RangeDomain.prototype, "type", { + get: function () { + return this._domainType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeDomain.prototype, "min", { + get: function () { + return this._min; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeDomain.prototype, "max", { + get: function () { + return this._max; + }, + enumerable: true, + configurable: true + }); + return RangeDomain; + }()); + exports.RangeDomain = RangeDomain; + + +/***/ }, +/* 49 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var DataTable = (function () { + function DataTable(_data, _columns, _totalRowCount, _isSummaryData, _marksInfo) { + this._data = _data; + this._columns = _columns; + this._totalRowCount = _totalRowCount; + this._isSummaryData = _isSummaryData; + this._marksInfo = _marksInfo; + // TODO: get rid of this in redesign. + this._name = _isSummaryData ? 'Summary Data Table' : 'Underlying Data Table'; + } + Object.defineProperty(DataTable.prototype, "name", { + get: function () { + return this._name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "data", { + get: function () { + return this._data; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "columns", { + get: function () { + return this._columns; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "marksInfo", { + get: function () { + return this._marksInfo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "totalRowCount", { + get: function () { + return this._totalRowCount; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "isSummaryData", { + get: function () { + return this._isSummaryData; + }, + enumerable: true, + configurable: true + }); + return DataTable; + }()); + exports.DataTable = DataTable; + var MarkInfo = (function () { + function MarkInfo(_type, _color, _tupleId) { + this._type = _type; + this._color = _color; + this._tupleId = _tupleId; + } + Object.defineProperty(MarkInfo.prototype, "type", { + get: function () { + return this._type; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MarkInfo.prototype, "color", { + get: function () { + return this._color; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MarkInfo.prototype, "tupleId", { + get: function () { + return this._tupleId; + }, + enumerable: true, + configurable: true + }); + return MarkInfo; + }()); + exports.MarkInfo = MarkInfo; + var Column = (function () { + function Column(_fieldName, _dataType, // TODO: this shoudl be an enum type + _isReferenced, _index) { + this._fieldName = _fieldName; + this._dataType = _dataType; + this._isReferenced = _isReferenced; + this._index = _index; + } + Object.defineProperty(Column.prototype, "fieldName", { + get: function () { + return this._fieldName; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Column.prototype, "dataType", { + get: function () { + return this._dataType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Column.prototype, "isReferenced", { + get: function () { + return this._isReferenced; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Column.prototype, "index", { + get: function () { + return this._index; + }, + enumerable: true, + configurable: true + }); + return Column; + }()); + exports.Column = Column; + var DataValue = (function () { + /* tslint:disable:no-any */ + function DataValue(_value, _formattedValue) { + this._value = _value; + this._formattedValue = _formattedValue; + } + Object.defineProperty(DataValue.prototype, "value", { + get: function () { + return this._value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataValue.prototype, "formattedValue", { + get: function () { + return this._formattedValue; + }, + enumerable: true, + configurable: true + }); + return DataValue; + }()); + exports.DataValue = DataValue; + + +/***/ }, +/* 50 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var GetDataModels_1 = __webpack_require__(49); + var GetDataService_1 = __webpack_require__(43); + var GetDataServiceImpl = (function () { + function GetDataServiceImpl(dispatcher) { + this._dispatcher = dispatcher; + } + Object.defineProperty(GetDataServiceImpl.prototype, "serviceName", { + get: function () { + return "get-data-service" /* GetData */; + }, + enumerable: true, + configurable: true + }); + GetDataServiceImpl.prototype.getUnderlyingDataAsync = function (visualId, getType, ignoreAliases, ignoreSelection, includeAllColumns, maxRows) { + var _this = this; + // Create all of our parameters + var verb = getType === GetDataService_1.GetDataType.Summary ? api_internal_contract_1.VerbId.GetDataSummaryData : api_internal_contract_1.VerbId.GetUnderlyingData; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + parameters[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases; + parameters[api_internal_contract_1.ParameterId.IgnoreSelection] = ignoreSelection; + parameters[api_internal_contract_1.ParameterId.IncludeAllColumns] = includeAllColumns; + parameters[api_internal_contract_1.ParameterId.MaxRows] = maxRows; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var responseData = response.result; + return _this.processResultsTable(responseData.data, responseData.isSummary); + }); + }; + GetDataServiceImpl.prototype.getSelectedMarksAsync = function (visualId) { + var _this = this; + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetSelectedMarks, parameters).then(function (response) { + var responseData = response.result; + return { + data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) + }; + }); + var _a; + }; + GetDataServiceImpl.prototype.getHighlightedMarksAsync = function (visualId) { + var _this = this; + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetHighlightedMarks, parameters).then(function (response) { + var responseData = response.result; + return { + data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) + }; + }); + var _a; + }; + GetDataServiceImpl.prototype.getDataSourceDataAsync = function (dataSourceId, ignoreAliases, maxRows, columnsToInclude) { + var _this = this; + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, + _a[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases, + _a[api_internal_contract_1.ParameterId.MaxRows] = maxRows, + _a[api_internal_contract_1.ParameterId.ColumnsToInclude] = columnsToInclude, + _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSourceData, parameters).then(function (response) { + var responseData = response.result; + return _this.processResultsTable(responseData.data, false); + }); + var _a; + }; + GetDataServiceImpl.prototype.processResultsTable = function (responseData, isSummary) { + var headers = responseData.headers.map(function (h) { return new GetDataModels_1.Column(h.fieldCaption, Contract.DataType.String /*h.DataType*/, h.isReferenced, h.index); }); + // TODO This should be controlled by a flag indicating whether this api will respond marks info or not + var marks; + if (responseData.marks) { + marks = responseData.marks.map(function (h) { return new GetDataModels_1.MarkInfo(h.type, h.color, h.tupleId); }); + } + var table = responseData.dataTable.map(function (row) { + return row.map(function (cell) { + return new GetDataModels_1.DataValue(cell.value, cell.formattedValue); + }); + }); + if (marks) { + return new GetDataModels_1.DataTable(table, headers, table.length, isSummary, marks); + } + return new GetDataModels_1.DataTable(table, headers, table.length, isSummary); + }; + return GetDataServiceImpl; + }()); + exports.GetDataServiceImpl = GetDataServiceImpl; + + +/***/ }, +/* 51 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Registration = (function () { + function Registration(_filterFn, _callbackFn) { + this._filterFn = _filterFn; + this._callbackFn = _callbackFn; + // Nothing Here + } + Registration.prototype.onNotification = function (notificationModel) { + if (this._filterFn(notificationModel)) { + this._callbackFn(notificationModel); + } + }; + return Registration; + }()); + var NotificationServiceImpl = (function () { + function NotificationServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + this._handlers = {}; + this.dispatcher.registerNotificationHandler(this.onNotification.bind(this)); + } + Object.defineProperty(NotificationServiceImpl.prototype, "serviceName", { + get: function () { + return "notification-service" /* Notification */; + }, + enumerable: true, + configurable: true + }); + NotificationServiceImpl.prototype.registerHandler = function (id, filterFn, handler) { + var _this = this; + var handlers = this._handlers[id] || new Array(); + var registration = new Registration(filterFn, handler); + handlers.push(registration); + this._handlers[id] = handlers; + return function () { return _this.removeRegistration(id, registration); }; + }; + NotificationServiceImpl.prototype.hasHandlersForNotificationType = function (id) { + return this._handlers.hasOwnProperty(id); + }; + NotificationServiceImpl.prototype.onNotification = function (notification) { + if (!this.hasHandlersForNotificationType(notification.notificationId)) { + return; + } + // Go through and check for all the handlers of this particular notification + this._handlers[notification.notificationId].forEach(function (h) { return h.onNotification(notification.data); }); + }; + NotificationServiceImpl.prototype.removeRegistration = function (id, registration) { + if (!this.hasHandlersForNotificationType(id)) { + return; + } + this._handlers[id] = this._handlers[id].filter(function (reg) { return reg !== registration; }); + }; + return NotificationServiceImpl; + }()); + exports.NotificationServiceImpl = NotificationServiceImpl; + + +/***/ }, +/* 52 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(21); + var api_utils_1 = __webpack_require__(13); + var ParameterImpl_1 = __webpack_require__(53); + var Parameter_1 = __webpack_require__(55); + var ParametersServiceImpl = (function () { + function ParametersServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + } + Object.defineProperty(ParametersServiceImpl.prototype, "serviceName", { + get: function () { + return "parameters-service" /* Parameters */; + }, + enumerable: true, + configurable: true + }); + ParametersServiceImpl.prototype.getParametersForSheetAsync = function (sheetPath, sheet) { + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.SheetPath] = sheetPath, + _a); + return this.dispatcher.execute(api_internal_contract_1.VerbId.GetParametersForSheet, parameters).then(function (response) { + // TODO - Check for error + var result = response.result; + return result.map(function (parameterInfo) { + var impl = new ParameterImpl_1.ParameterImpl(parameterInfo); + return new Parameter_1.Parameter(impl, sheet); + }); + }); + var _a; + }; + ParametersServiceImpl.prototype.changeParameterValueAsync = function (fieldName, newValue) { + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName, + _a[api_internal_contract_1.ParameterId.ParameterValue] = newValue, + _a); + return this.dispatcher.execute(api_internal_contract_1.VerbId.ChangeParameterValue, parameters).then(function (response) { + var result = response.result; + return result; + }); + var _a; + }; + ParametersServiceImpl.prototype.findParameterByNameAsync = function (name, sheet) { + return this.findParameterAsync(sheet, name, undefined); + }; + ParametersServiceImpl.prototype.findParameterByGlobalFieldNameAsync = function (fieldName, sheet) { + return this.findParameterAsync(sheet, undefined, fieldName); + }; + ParametersServiceImpl.prototype.findParameterAsync = function (sheet, name, fieldName) { + var parameters = {}; + if (name !== undefined) { + parameters[api_internal_contract_1.ParameterId.ParameterCaption] = name; + } + else if (fieldName !== undefined) { + parameters[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName; + } + else { + throw api_utils_1.TableauException.missingParameter(['field name or caption']); + } + return this.dispatcher.execute(api_internal_contract_1.VerbId.FindParameter, parameters).then(function (response) { + var instanceOfParameterInfo = function (object) { + return 'fieldName' in object; + }; + // We need to check to see if we got a valid response back again + if (instanceOfParameterInfo(response.result)) { + var result = response.result; + var impl = new ParameterImpl_1.ParameterImpl(result); + return new Parameter_1.Parameter(impl, sheet); + } + else { + return undefined; + } + }); + }; + return ParametersServiceImpl; + }()); + exports.ParametersServiceImpl = ParametersServiceImpl; + + +/***/ }, +/* 53 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var api_utils_1 = __webpack_require__(13); + var InternalToExternalEnumMappings_1 = __webpack_require__(23); + var ParameterChangedEvent_1 = __webpack_require__(54); + var GetDataModels_1 = __webpack_require__(49); + var ServiceRegistry_1 = __webpack_require__(28); + var SingleEventManagerImpl_1 = __webpack_require__(37); + var ParameterImpl = (function () { + function ParameterImpl(parameterInfo) { + this.setParameterInfo(parameterInfo); + } + Object.defineProperty(ParameterImpl.prototype, "name", { + get: function () { + return this._parameterInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ParameterImpl.prototype, "currentValue", { + get: function () { + return new GetDataModels_1.DataValue(this._parameterInfo.currentValue.value, this._parameterInfo.currentValue.formattedValue); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ParameterImpl.prototype, "dataType", { + get: function () { + return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dataType.convert(this._parameterInfo.dataType); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ParameterImpl.prototype, "id", { + get: function () { + return this._globalFieldName; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ParameterImpl.prototype, "allowableValues", { + get: function () { + return this._allowableValues; + }, + enumerable: true, + configurable: true + }); + ParameterImpl.prototype.changeValueAsync = function (newValue) { + var _this = this; + var coercedValue = api_utils_1.Param.serializeParamterValue(newValue); + var parametersService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return parametersService.changeParameterValueAsync(this._globalFieldName, coercedValue).then(function (parameterInfo) { + _this.setParameterInfo(parameterInfo); + return _this.currentValue; + }); + }; + /** + * Helper method which goes through and registers each event type this impl knows about + * with the NotificationService. It returns an array of SingleEventManager objects which + * can then be passed to an EventListenerManager to handle user registration / unregistration. + * + * @param sheet The sheet object which will be included with the event notifications + * @returns {Array} Collection of event managers to pass to an EventListenerManager + */ + ParameterImpl.prototype.initializeEvents = function (sheet) { + var _this = this; + var results = new Array(); + var notificationService; + try { + notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); + } + catch (e) { + // If we don't have this service registered, just return + return results; + } + // Initialize all of the event managers we'll need (one for each event type) + var parameterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.ParameterChanged); + notificationService.registerHandler(api_internal_contract_1.NotificationId.ParameterChanged, function (model) { + var fieldName = model; + return fieldName === _this._globalFieldName; + }, function (fieldName) { + parameterEvent.triggerEvent(function () { return new ParameterChangedEvent_1.ParameterChangedEvent(fieldName, sheet); }); + }); + results.push(parameterEvent); + return results; + }; + ParameterImpl.prototype.setParameterInfo = function (parameterInfo) { + this._parameterInfo = parameterInfo; + this._globalFieldName = parameterInfo.fieldName; + var type = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.allowableValues.convert(parameterInfo.allowableValuesType); + var listValues; + var minValue; + var maxValue; + var stepSize; + var dateStepPeriod; + if (type === Contract.ParameterValueType.List) { + var values = parameterInfo.allowableValues || []; + listValues = values.map(function (val) { return new GetDataModels_1.DataValue(val.value, val.formattedValue); }); + } + else if (type === Contract.ParameterValueType.Range) { + minValue = parameterInfo.minValue && new GetDataModels_1.DataValue(parameterInfo.minValue.value, parameterInfo.minValue.formattedValue); + maxValue = parameterInfo.maxValue && new GetDataModels_1.DataValue(parameterInfo.maxValue.value, parameterInfo.maxValue.formattedValue); + stepSize = parameterInfo.stepSize; + dateStepPeriod = parameterInfo.dateStepPeriod && + InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(parameterInfo.dateStepPeriod); + } + this._allowableValues = { + type: type, + allowableValues: listValues, + minValue: minValue, + maxValue: maxValue, + stepSize: stepSize, + dateStepPeriod: dateStepPeriod + }; + }; + return ParameterImpl; + }()); + exports.ParameterImpl = ParameterImpl; + + +/***/ }, +/* 54 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_utils_1 = __webpack_require__(13); + var ServiceRegistry_1 = __webpack_require__(28); + var TableauSheetEvent_1 = __webpack_require__(40); + var ParameterChangedEvent = (function (_super) { + __extends(ParameterChangedEvent, _super); + function ParameterChangedEvent(_globalFieldName, sheet) { + var _this = _super.call(this, Contract.TableauEventType.ParameterChanged, sheet) || this; + _this._globalFieldName = _globalFieldName; + return _this; + } + ParameterChangedEvent.prototype.getParameterAsync = function () { + // Call down to our service to get the parameter back via its field name + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return service.findParameterByGlobalFieldNameAsync(this._globalFieldName, this.sheet).then(function (parameter) { + if (parameter === undefined) { + throw api_utils_1.TableauException.error(ParameterChangedEvent.PARAM_NOT_FOUND); + } + return parameter; + }); + }; + ParameterChangedEvent.PARAM_NOT_FOUND = 'Unable to find parameter'; + return ParameterChangedEvent; + }(TableauSheetEvent_1.TableauSheetEvent)); + exports.ParameterChangedEvent = ParameterChangedEvent; + + +/***/ }, +/* 55 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var EventListenerManager_1 = __webpack_require__(12); + /** + * Implementation of the Parameter contract. Calls down to the impl + * class for almost all of the work it does. + */ + var Parameter = (function (_super) { + __extends(Parameter, _super); + function Parameter(parameterImpl, sheet) { + var _this = _super.call(this) || this; + _this.parameterImpl = parameterImpl; + // Initialize our event handling for this class + _this.parameterImpl.initializeEvents(sheet).forEach(function (e) { return _this.addNewEventType(e); }); + return _this; + } + Object.defineProperty(Parameter.prototype, "name", { + get: function () { + return this.parameterImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Parameter.prototype, "currentValue", { + get: function () { + return this.parameterImpl.currentValue; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Parameter.prototype, "dataType", { + get: function () { + return this.parameterImpl.dataType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Parameter.prototype, "allowableValues", { + get: function () { + return this.parameterImpl.allowableValues; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Parameter.prototype, "id", { + get: function () { + return this.parameterImpl.id; + }, + enumerable: true, + configurable: true + }); + Parameter.prototype.changeValueAsync = function (newValue) { + return this.parameterImpl.changeValueAsync(newValue); + }; + return Parameter; + }(EventListenerManager_1.EventListenerManager)); + exports.Parameter = Parameter; + + +/***/ }, +/* 56 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(19); + var api_internal_contract_1 = __webpack_require__(21); + var api_utils_1 = __webpack_require__(13); + var SelectionModels_1 = __webpack_require__(57); + var SelectionServiceImpl = (function () { + function SelectionServiceImpl(dispatcher) { + this._dispatcher = dispatcher; + } + Object.defineProperty(SelectionServiceImpl.prototype, "serviceName", { + get: function () { + return "selection-service" /* Selection */; + }, + enumerable: true, + configurable: true + }); + /** + * Method to clear all the selected marks for the given worksheet. + * + * @param visualId + */ + SelectionServiceImpl.prototype.clearSelectedMarksAsync = function (visualId) { + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.ClearSelectedMarks, parameters).then(function (response) { + return; // Expecting an empty model and hence the void response. + }); + var _a; + }; + /** + * Method to select marks for the given worksheet. + * + * @param visualId + * @param selectionCriteria + * @param selectionUpdateType + */ + SelectionServiceImpl.prototype.selectMarksByValueAsync = function (visualId, selectionCriterias, selectionUpdateType) { + if (selectionCriterias.length === 0) { + throw api_utils_1.TableauException.invalid(['Selection criteria', 'Selections missing.']); + } + var selectionType = this.validateSelectionUpdateType(selectionUpdateType); + var selectionCriteriaType = this.validateSelectionCriteria(selectionCriterias[0]); + var selectionModelContainer = this.parseSelectionMarks(selectionCriterias, selectionCriteriaType); + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.VisualId] = visualId, + _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, + _a); + switch (selectionCriteriaType) { + case SelectionCriteriaType.HierarchicalType: { + parameters[api_internal_contract_1.ParameterId.HierValSelectionModels] = selectionModelContainer.hierModelArr; + break; + } + case SelectionCriteriaType.RangeType: { + parameters[api_internal_contract_1.ParameterId.QuantRangeSelectionModels] = selectionModelContainer.quantModelArr; + break; + } + case SelectionCriteriaType.DimensionType: { + parameters[api_internal_contract_1.ParameterId.DimValSelectionModels] = selectionModelContainer.dimModelArr; + break; + } + default: + break; + } + return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { + // Expecting an empty model and hence the void response. + return; + // TODO Investigate the error response with multiple output params and throw error accordingly. + }); + var _a; + }; + /** + * Method to select marks for the given worksheet. + * + * @param visualId + * @param MarkInfo + * @param selectionUpdateType + */ + SelectionServiceImpl.prototype.selectMarksByIdAsync = function (visualId, marks, selectionUpdateType) { + if (marks.length === 0) { + throw api_utils_1.TableauException.invalid(['Selection', 'Marks info missing.']); + } + var selectionType = this.validateSelectionUpdateType(selectionUpdateType); + var selectionModelContainer = this.parseSelectionIds(marks); + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.VisualId] = visualId, + _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, + _a[api_internal_contract_1.ParameterId.Selection] = selectionModelContainer.selection, + _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { + // Expecting an empty model and hence the void response. + return; + // TODO Investigate the error response with multiple output params and throw error accordingly. + }); + var _a; + }; + /** + * Method to prepare the pres models for selection by MarksInfo + * @param marks + */ + SelectionServiceImpl.prototype.parseSelectionIds = function (marks) { + var ids = []; + var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); + for (var i = 0; i < marks.length; i++) { + var tupleId = marks[i].tupleId; + if (tupleId !== undefined && tupleId !== null) { + ids.push(tupleId.toString()); // collect the tuple ids + } + else { + throw api_utils_1.TableauException.invalid(['tupleId']); + } + } + if (ids.length !== 0) { + var tupleSelectionModel = new SelectionModels_1.TupleSelectionModel(); + tupleSelectionModel.selectionType = 'tuples'; + tupleSelectionModel.objectIds = ids; + selectionModelContainer.selection = tupleSelectionModel; + } + return selectionModelContainer; + }; + /** + * Method to prepare the pres models for selection by values. + * + * Supports 3 types for selection: + * 1) hierarchical value based selection + * 2) range value based selection + * 3) Dimension value based selection + * + * @param marks + * @param hierModelArr + * @param dimModelArr + * @param quantModelArr + * @param selection + */ + SelectionServiceImpl.prototype.parseSelectionMarks = function (selectionCriterias, selectionType) { + var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); + var mixedSelectionsError = false; + for (var i = 0; i < selectionCriterias.length; i++) { + var st = selectionCriterias[i]; + if (st.fieldName && (st.value !== undefined && st.value !== null)) { + var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); + var rangeOption = st.value; + if (catRegex.test(st.fieldName)) { + if (selectionType === SelectionCriteriaType.HierarchicalType) { + var hierModel = this.addToParamsList(st.fieldName, st.value); + selectionModelContainer.hierModelArr.push(hierModel); + } + else { + mixedSelectionsError = true; + break; + } + } + else if (rangeOption.min !== undefined + && rangeOption.max !== undefined) { + if (selectionType === SelectionCriteriaType.RangeType) { + var quantModel = this.addToRangeParamsList(st.fieldName, rangeOption); + selectionModelContainer.quantModelArr.push(quantModel); + } + else { + mixedSelectionsError = true; + break; + } + } + else { + if (selectionType === SelectionCriteriaType.DimensionType) { + var dimModel = this.addToParamsList(st.fieldName, st.value); + selectionModelContainer.dimModelArr.push(dimModel); + } + else { + mixedSelectionsError = true; + break; + } + } + } + } + if (mixedSelectionsError) { + throw api_utils_1.TableauException.invalid(['Selection Criteria', 'Different types of selection criterias provided.']); + } + return selectionModelContainer; + }; + /** + * + * @param selectionCriterias Validate and determine the selection criterias type. + */ + SelectionServiceImpl.prototype.validateSelectionCriteria = function (selectionCriteria) { + var selectionType; + // Determine the type of selection, this command is by looking at the first selection + var crit = selectionCriteria; + var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); + var rangeOption = crit.value; + if (crit.fieldName && (crit.value !== undefined && crit.value !== null)) { + if (catRegex.test(crit.fieldName)) { + selectionType = SelectionCriteriaType.HierarchicalType; + } + else if (rangeOption.min !== undefined + && rangeOption.max !== undefined) { + selectionType = SelectionCriteriaType.RangeType; + } + else { + selectionType = SelectionCriteriaType.DimensionType; + } + } + else { + throw api_utils_1.TableauException.invalid(['Selection', 'Criteria format.']); + } + return selectionType; + }; + /** + * Method to transform the key value pair into value based pres model object. + * + * @param valueSelectionModel + * @param fieldName + * @param value + */ + SelectionServiceImpl.prototype.addToParamsList = function (fieldName, value) { + var valueSelectionModel = new SelectionModels_1.ValueSelectionModel(); + var markValues = []; + if (value instanceof Array) { + var valueArr = value; + for (var i = 0; i < valueArr.length; i++) { + markValues.push(valueArr[i].toString()); + } + } + else { + markValues.push(value.toString()); + } + valueSelectionModel.qualifiedFieldCaption = fieldName; + valueSelectionModel.selectValues = markValues; + return valueSelectionModel; + }; + /** + * Method to transform the key value pair into range based selection pres model. + * + * TODO: Need to handle the parsing of date type values. + * + * @param valueSelectionModel + * @param fieldName + * @param value + */ + SelectionServiceImpl.prototype.addToRangeParamsList = function (fieldName, value) { + var rangeSelectionModel = new SelectionModels_1.RangeSelectionModel(); + rangeSelectionModel.qualifiedFieldCaption = fieldName; + if (value.max !== undefined && value.max !== null) { + rangeSelectionModel.maxValue = value.max.toString(); + } + if (value.min !== undefined && value.min !== null) { + rangeSelectionModel.minValue = value.min.toString(); + } + rangeSelectionModel.included = this.validateNullOptionType(value.nullOption); + return rangeSelectionModel; + }; + /** + * Method to validate the selection update type. + * + * @param selectionUpdateType + */ + SelectionServiceImpl.prototype.validateSelectionUpdateType = function (selectionUpdateType) { + if (selectionUpdateType === Contract.SelectionUpdateType.Replace) { + return api_internal_contract_1.SelectionUpdateType.Replace; + } + else if (selectionUpdateType === Contract.SelectionUpdateType.Add) { + return api_internal_contract_1.SelectionUpdateType.Add; + } + else if (selectionUpdateType === Contract.SelectionUpdateType.Remove) { + return api_internal_contract_1.SelectionUpdateType.Remove; + } + return api_internal_contract_1.SelectionUpdateType.Replace; + }; + /** + * Method to validate the include type for range selection. + * + * @param nullOption + */ + SelectionServiceImpl.prototype.validateNullOptionType = function (nullOption) { + if (nullOption) { + if (nullOption === Contract.FilterNullOption.NullValues) { + return api_internal_contract_1.QuantitativeIncludedValues.IncludeNull; + } + else if (nullOption === Contract.FilterNullOption.NonNullValues) { + return api_internal_contract_1.QuantitativeIncludedValues.IncludeNonNull; + } + else if (nullOption === Contract.FilterNullOption.AllValues) { + return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; + } + } + return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; + }; + return SelectionServiceImpl; + }()); + exports.SelectionServiceImpl = SelectionServiceImpl; + /** + * Enum for the different selection criteria types. + */ + var SelectionCriteriaType; + (function (SelectionCriteriaType) { + SelectionCriteriaType[SelectionCriteriaType["HierarchicalType"] = 1] = "HierarchicalType"; + SelectionCriteriaType[SelectionCriteriaType["RangeType"] = 2] = "RangeType"; + SelectionCriteriaType[SelectionCriteriaType["DimensionType"] = 3] = "DimensionType"; + SelectionCriteriaType[SelectionCriteriaType["TuplesType"] = 4] = "TuplesType"; + })(SelectionCriteriaType || (SelectionCriteriaType = {})); + + +/***/ }, +/* 57 */ +/***/ function(module, exports) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Selection Model. + */ + var SelectionModel = (function () { + function SelectionModel() { + } + return SelectionModel; + }()); + exports.SelectionModel = SelectionModel; + /** + * Value based selection model. Meant for hierarchical, range and categorical selections. + */ + var ValueSelectionModel = (function (_super) { + __extends(ValueSelectionModel, _super); + function ValueSelectionModel() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.selectValues = []; + return _this; + } + return ValueSelectionModel; + }(SelectionModel)); + exports.ValueSelectionModel = ValueSelectionModel; + /** + * Hierarchical value selection model + */ + var HierarchicalSelectionModel = (function (_super) { + __extends(HierarchicalSelectionModel, _super); + function HierarchicalSelectionModel() { + return _super !== null && _super.apply(this, arguments) || this; + } + return HierarchicalSelectionModel; + }(ValueSelectionModel)); + exports.HierarchicalSelectionModel = HierarchicalSelectionModel; + /** + * Range based value selection model + */ + var RangeSelectionModel = (function (_super) { + __extends(RangeSelectionModel, _super); + function RangeSelectionModel() { + return _super !== null && _super.apply(this, arguments) || this; + } + return RangeSelectionModel; + }(SelectionModel)); + exports.RangeSelectionModel = RangeSelectionModel; + /** + * Dimension value selection model + */ + var DimensionSelectionModel = (function (_super) { + __extends(DimensionSelectionModel, _super); + function DimensionSelectionModel() { + return _super !== null && _super.apply(this, arguments) || this; + } + return DimensionSelectionModel; + }(ValueSelectionModel)); + exports.DimensionSelectionModel = DimensionSelectionModel; + /** + * Tuple based selection model + */ + var TupleSelectionModel = (function () { + function TupleSelectionModel() { + this.objectIds = []; + } + return TupleSelectionModel; + }()); + exports.TupleSelectionModel = TupleSelectionModel; + /** + * Container class to populate all the selection models when parsing input + */ + var SelectionModelsContainer = (function () { + function SelectionModelsContainer() { + this.hierModelArr = []; + this.dimModelArr = []; + this.quantModelArr = []; + } + return SelectionModelsContainer; + }()); + exports.SelectionModelsContainer = SelectionModelsContainer; + + +/***/ }, +/* 58 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_messaging_1 = __webpack_require__(59); + var CrossFrameDispatcher_1 = __webpack_require__(65); + // Checks to see if we are running in an iframe currently: https://stackoverflow.com/a/326076/8821153 + function inIframe(thisWindow) { + try { + return thisWindow.self !== thisWindow.parent; + } + catch (e) { + return true; + } + } + /** + * Attempts to bootstrap the extension with a cross-frame parent where Tableau is running + * + * @param thisWindow The window which we are running in (injected for unit testing purposes) + * @param versionNumber The version number of our API to include in the initialization message + * @returns A promise which is doing the actual bootstrapping + */ + function doCrossFrameBootstrap(thisWindow, versionNumber) { + return new Promise(function (resolve, reject) { + // Check to make sure we're in an iframe and have a parent to communicate with + if (!inIframe(thisWindow)) { + reject('This extension is not running inside an iframe or desktop. Initialization failed.'); + } + // Create the messenger which will do he communication between this window and our parent + // Since we don't know where we are running yet, we have to make this initial origin '*'. Once + // we have successfully initialized our extension, we will limit where we send messages + var messenger = new api_messaging_1.CrossFrameMessenger(thisWindow, thisWindow.parent, '*'); + // Prepare to send an initialization message to the parent frame + var initializationMessage = messenger.prepareInitializationMessage(versionNumber, api_messaging_1.VERSION); + // When we receive a response back from the parent, we check to make sure the guids match and then we know + // that the parent is aware of us and we can start communicating + messenger.setCommandResponseMessageHandler(function (msg) { + // Verify we are getting a response from our initialize message + if (msg.commandGuid === initializationMessage.messageGuid) { + var dispatcher = new CrossFrameDispatcher_1.CrossFrameDispatcher(messenger); + resolve(dispatcher); + } + }); + // Now that our handlers are ready, start listening and send our initialization message + messenger.startListening(); + initializationMessage.send(); + }); + } + exports.doCrossFrameBootstrap = doCrossFrameBootstrap; + + +/***/ }, +/* 59 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(60)); + __export(__webpack_require__(63)); + // Export the version number of messaging for consumers to use. + // Be very careful making any updates to this contract which break version compatibility. + exports.VERSION = { + major: 1, + minor: 0, + fix: 0 + }; + + +/***/ }, +/* 60 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var guid_1 = __webpack_require__(61); + var CrossFramePreparedMessage_1 = __webpack_require__(62); + var MessageTypes_1 = __webpack_require__(63); + var MessageTypeChecks_1 = __webpack_require__(64); + /** + * The CrossFrameMessenger is the primary export from the api-messaging module. An instance of + * this class can be instantiated on both sides of a frame boundary to facilitate communication + * in both directions between the frames. This class implements both the dispatcher and the listener + * portions, but doesn't require callers to care about both. + */ + var CrossFrameMessenger = (function () { + /** + * Creates an instance of CrossFrameMessenger. If you would like to use the CrossFrameMessenger as a MessageListener, + * be sure to call StartListening and register message handlers. + * @param thisWindow The window object which the CrossFrameMessenger lives. An onMessage listener will be added here. + * @param [otherWindow] Optional otherWindow which messages will be posted to. + * If defined, incoming messages must originate from otherWindow to be passed on + * @param [otherWindowOrigin] The target origin which otherWindow must have in order to receive dispatched messages. + * This value will be sent as the targetOrigin of a postMessage + * (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) + */ + function CrossFrameMessenger(thisWindow, otherWindow, otherWindowOrigin) { + this.thisWindow = thisWindow; + this.otherWindow = otherWindow; + this.otherWindowOrigin = otherWindowOrigin; + // Make sure to call StartListening + } + ///// MessageListener Implementation + CrossFrameMessenger.prototype.startListening = function () { + var _this = this; + // Check if we already are listening, if not, hook up a message listener + if (!this.unregisterFunction) { + var boundHandler_1 = this.onMessageReceived.bind(this); + this.thisWindow.addEventListener('message', boundHandler_1, true); + this.unregisterFunction = function () { return _this.thisWindow.removeEventListener('message', boundHandler_1, true); }; + } + }; + CrossFrameMessenger.prototype.stopListening = function () { + // Stop listening if we have started listening + if (this.unregisterFunction) { + this.unregisterFunction(); + this.unregisterFunction = undefined; + } + }; + CrossFrameMessenger.prototype.setInitializeMessageHandler = function (handler) { + this.initializeMessageHandler = handler; + }; + CrossFrameMessenger.prototype.setCommandResponseMessageHandler = function (handler) { + this.commandResponseMessageHandler = handler; + }; + CrossFrameMessenger.prototype.setCommandMessageHandler = function (handler) { + this.commandMessageHandler = handler; + }; + CrossFrameMessenger.prototype.setNotificationMessageHandler = function (handler) { + this.notificationMessageHandler = handler; + }; + ///// MessageDispatcher Implementation + CrossFrameMessenger.prototype.prepareInitializationMessage = function (apiVersion, crossFrameVersion) { + var message = { + msgGuid: guid_1.Guid.create().formattedValue, + msgType: MessageTypes_1.MessageType.Initialize, + crossFrameVersion: crossFrameVersion, + apiVersion: apiVersion + }; + return this.prepareMessage(message); + }; + CrossFrameMessenger.prototype.prepareCommandMessage = function (verbId, parameters) { + var message = { + msgGuid: guid_1.Guid.create().formattedValue, + msgType: MessageTypes_1.MessageType.Command, + verbId: verbId, + parameters: parameters + }; + return this.prepareMessage(message); + }; + CrossFrameMessenger.prototype.prepareCommandResponseMessage = function (commandGuid, data, error) { + var message = { + msgGuid: guid_1.Guid.create().formattedValue, + msgType: MessageTypes_1.MessageType.CommandResponse, + commandGuid: commandGuid, + data: data, + error: error + }; + return this.prepareMessage(message); + }; + CrossFrameMessenger.prototype.prepareNotificationMessage = function (notificationId, data) { + var message = { + msgGuid: guid_1.Guid.create().formattedValue, + msgType: MessageTypes_1.MessageType.Notification, + notificationId: notificationId, + data: data + }; + return this.prepareMessage(message); + }; + /** + * Prepares a pending message for sending and returns the prepared message + * + * @param msg The message to be sent to this.otherWindow + * @returns The prepared message + */ + CrossFrameMessenger.prototype.prepareMessage = function (msg) { + if (!this.otherWindow || !this.otherWindowOrigin) { + throw 'Other window not initialized, cannot dispatch messages'; + } + var preparedMessage = new CrossFramePreparedMessage_1.CrossFramePreparedMessage(msg, this.otherWindow, this.otherWindowOrigin); + return preparedMessage; + }; + /** + * Called when a message is received. Does some validation of the message, and then + * calls an appropriate message handler if one is defined + * + * @param event The incoming MessageEvent + */ + CrossFrameMessenger.prototype.onMessageReceived = function (event) { + // If we have an otherWindow defined, make sure the message is coming from there + if (this.otherWindow && event.source !== this.otherWindow) { + return; + } + // Do some validation on event.data to make sure that we have received a real message + if (!event.data) { + return; + } + var message = event.data; + if (!MessageTypeChecks_1.isMessage(message)) { + return; + } + // Check the declared message type, validate the message, and call an appropriate hander if one exists + switch (message.msgType) { + case MessageTypes_1.MessageType.Initialize: { + if (!MessageTypeChecks_1.isInitMessage(message) || !this.initializeMessageHandler) { + return; + } + this.initializeMessageHandler(message, event.source); + break; + } + case MessageTypes_1.MessageType.CommandResponse: { + if (!MessageTypeChecks_1.isCommandResponseMessage(message) || !this.commandResponseMessageHandler) { + return; + } + this.commandResponseMessageHandler(message, event.source); + break; + } + case MessageTypes_1.MessageType.Command: { + if (!MessageTypeChecks_1.isCommandMessage(message) || !this.commandMessageHandler) { + return; + } + this.commandMessageHandler(message, event.source); + break; + } + case MessageTypes_1.MessageType.Notification: { + if (!MessageTypeChecks_1.isNotificationMessage(message) || !this.notificationMessageHandler) { + return; + } + this.notificationMessageHandler(message, event.source); + break; + } + default: + } + }; + return CrossFrameMessenger; + }()); + exports.CrossFrameMessenger = CrossFrameMessenger; + + +/***/ }, +/* 61 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var guidRegex = /^[a-f0-9]{8}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[a-f0-9]{4}-?[a-f0-9]{12}$/i; + var emptyGuidValue = '00000000-0000-0000-0000-000000000000'; + /** + * This is where the magic happens. Generates the specified number of GUID quads using a random number. + * @param count The number of quads to generate. + */ + function generateQuad(count) { + if (count === void 0) { count = 1; } + var out = ''; + for (var i = 0; i < count; i++) { + // tslint:disable-next-line:no-bitwise + out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); + } + return out; + } + /** + * Represents a Globally Unique Identifier (GUID). This is not meant to be cryptographically secure. + */ + var Guid = (function () { + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructor + function Guid(value) { + this.value = value.toLowerCase(); + } + Object.defineProperty(Guid.prototype, "formattedValue", { + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Properties + /** + * Read-only formatted value of the GUID. + */ + get: function () { + return this.value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Guid.prototype, "isEmpty", { + /** + * Returns a value indicating whether this GUID is empty (equal to Guid.EMPTY). + */ + get: function () { + return this.value === emptyGuidValue; + }, + enumerable: true, + configurable: true + }); + ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Methods + /** + * Returns a value indicating whether the value is a valid GUID. + * @param value Either a Guid instance or a string + */ + Guid.isGuid = function (value) { + return (value instanceof Guid) || guidRegex.test(value); + }; + /** + * Creates a new GUID. + */ + Guid.create = function () { + return new Guid([generateQuad(2), generateQuad(), generateQuad(), generateQuad(), generateQuad(3)].join('-')); + }; + /** + * Parses an existing GUID string. Throws a TypeError if the value is not a valid GUID. + * @param value the existing GUID string to parse + */ + Guid.parse = function (value) { + if (!Guid.isGuid(value)) { + throw new TypeError("Value is not a valid GUID: '" + value + "'"); + } + return new Guid(value); + }; + /** + * Returns the formatted GUID. + */ + Guid.prototype.toString = function () { + return this.value; + }; + /** + * Returns a value indicating whether another GUID is equal to this GUID. + * @param other Either another Guid instance or a formatted GUID string. + */ + Guid.prototype.equals = function (other) { + var otherGuid = (other instanceof Guid) ? other : Guid.parse(other); + return this.formattedValue === otherGuid.formattedValue; + }; + /** + * Represents a placeholder GUID or a value to represent a non-GUID. + * Returns '00000000-0000-0000-0000-000000000000'. + */ + Guid.EMPTY = new Guid(emptyGuidValue); + return Guid; + }()); + exports.Guid = Guid; + + +/***/ }, +/* 62 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the PreparedMessage interface used to post messages between + * two frames using window.postMessage + */ + var CrossFramePreparedMessage = (function () { + /** + * Creates an instance of CrossFramePreparedMessage. + * @param _message The message to be sent + * @param _target The target window where the message will be sent + * @param _origin The targetOrigin where this message can be received + */ + function CrossFramePreparedMessage(_message, _target, _origin) { + this._message = _message; + this._target = _target; + this._origin = _origin; + } + Object.defineProperty(CrossFramePreparedMessage.prototype, "messageGuid", { + get: function () { return this._message.msgGuid; }, + enumerable: true, + configurable: true + }); + CrossFramePreparedMessage.prototype.send = function () { + this._target.postMessage(this._message, this._origin); + return this; + }; + return CrossFramePreparedMessage; + }()); + exports.CrossFramePreparedMessage = CrossFramePreparedMessage; + + +/***/ }, +/* 63 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Enum defining the 4 different types of messages we have defined + */ + var MessageType; + (function (MessageType) { + MessageType["Initialize"] = "initialize"; + MessageType["Notification"] = "notification"; + MessageType["Command"] = "command"; + MessageType["CommandResponse"] = "command-response"; + })(MessageType = exports.MessageType || (exports.MessageType = {})); + + +/***/ }, +/* 64 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var guid_1 = __webpack_require__(61); + var MessageTypes_1 = __webpack_require__(63); + /* tslint:disable no-any */ + function isMessage(data) { + if (!data) { + return false; + } + var message = data; + if (!message || !message.msgGuid || !message.msgType) { + return false; + } + if (!guid_1.Guid.isGuid(message.msgGuid)) { + return false; + } + if (typeof message.msgType !== 'string') { + return false; + } + var messageTypes = [MessageTypes_1.MessageType.Command, MessageTypes_1.MessageType.CommandResponse, MessageTypes_1.MessageType.Initialize, MessageTypes_1.MessageType.Notification]; + if (messageTypes.indexOf(message.msgType) < 0) { + return false; + } + return true; + } + exports.isMessage = isMessage; + function isVersion(versionNumber) { + if (!versionNumber) { + return false; + } + var v = versionNumber; + if (typeof v !== 'object') { + return false; + } + if (typeof v.fix !== 'number' || typeof v.minor !== 'number' || typeof v.major !== 'number') { + return false; + } + return true; + } + exports.isVersion = isVersion; + function isInitMessage(message) { + if (!isMessage(message)) { + return false; + } + var initMessage = message; + if (initMessage.msgType !== MessageTypes_1.MessageType.Initialize) { + return false; + } + if (!initMessage.apiVersion || !isVersion(initMessage.apiVersion)) { + return false; + } + if (!initMessage.crossFrameVersion || !isVersion(initMessage.crossFrameVersion)) { + return false; + } + return true; + } + exports.isInitMessage = isInitMessage; + function isCommandResponseMessage(message) { + if (!isMessage(message)) { + return false; + } + var crMessage = message; + if (crMessage.msgType !== MessageTypes_1.MessageType.CommandResponse) { + return false; + } + if (!guid_1.Guid.isGuid(crMessage.commandGuid)) { + return false; + } + if (!crMessage.data && !crMessage.error) { + return false; + } + return true; + } + exports.isCommandResponseMessage = isCommandResponseMessage; + function isCommandMessage(message) { + if (!isMessage(message)) { + return false; + } + var commandMessage = message; + if (commandMessage.msgType !== MessageTypes_1.MessageType.Command) { + return false; + } + if (!commandMessage.parameters || typeof commandMessage.parameters !== 'object') { + return false; + } + if (!commandMessage.verbId || typeof commandMessage.verbId !== 'string') { + return false; + } + return true; + } + exports.isCommandMessage = isCommandMessage; + function isNotificationMessage(message) { + if (!isMessage(message)) { + return false; + } + var notificationMessage = message; + if (notificationMessage.msgType !== MessageTypes_1.MessageType.Notification) { + return false; + } + if (!notificationMessage.data || typeof notificationMessage.data !== 'object') { + return false; + } + if (!notificationMessage.notificationId || typeof notificationMessage.notificationId !== 'string') { + return false; + } + return true; + } + exports.isNotificationMessage = isNotificationMessage; + + +/***/ }, +/* 65 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * This is an implementation of the InternalApiDispatcher interface which functions by passing messages + * across a frame boundary. This is usually between the code where our javscript library has been included + * by a 3rd party dev and another frame where Tableau server has content. + */ + var CrossFrameDispatcher = (function () { + /** + * Creates an instance of CrossFrameDispatcher which will use the given messenger to communicate + * @param _messenger an instantiated and listening messenger object + */ + function CrossFrameDispatcher(_messenger) { + this._messenger = _messenger; + // Collection of pending promises which are waiting to be resolved. When we receive a response back from the other frame, + // these promises can be either resolved or rejected + this._pendingPromises = {}; + // The collection of notification handlers which have been registered with this dispatcher + this._notificationHandlers = []; + if (!this._messenger) { + throw 'Missing messenger object'; + } + // Set up our message handlers. We only care about incoming notifications and command responses + this._messenger.setCommandResponseMessageHandler(this.onCommandResponse.bind(this)); + this._messenger.setNotificationMessageHandler(this.onNotification.bind(this)); + } + ////// Start InternalApiDispatcher implementation + CrossFrameDispatcher.prototype.setVersionNumber = function (versionNumber) { + this._versionNumber = versionNumber; + }; + CrossFrameDispatcher.prototype.execute = function (verb, parameters) { + var _this = this; + // To execute a verb, we first prepare a command message and then define a promise. + var preparedMessage = this._messenger.prepareCommandMessage(verb, parameters); + var promise = new Promise(function (resolve, reject) { + // Save off the pending promise by the messageGuid we are about to send. When a response is + // received, we'll be able to resolve this promise with the result + _this._pendingPromises[preparedMessage.messageGuid] = { resolve: resolve, reject: reject }; + }); + // Actually send the message and return the promise + preparedMessage.send(); + return promise; + }; + CrossFrameDispatcher.prototype.registerNotificationHandler = function (handler) { + this._notificationHandlers.push(handler); + }; + CrossFrameDispatcher.prototype.unregisterNotificationHandler = function (handler) { + this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; }); + }; + ////// End InternalApiDispatcher implementation + CrossFrameDispatcher.prototype.onCommandResponse = function (response) { + // We got a command response, look through the pending promises and resolve + if (Object.keys(this._pendingPromises).indexOf(response.commandGuid) < 0) { + return; // We don't have any reference to this command, just return + } + var pendingPromise = this._pendingPromises[response.commandGuid]; + // If we have an error defined, reject the promise + if (response.error) { + pendingPromise.reject(response.error); + } + // If we have data defined, resolve the promise + if (response.data) { + pendingPromise.resolve({ result: response.data }); + } + // Clean up our pending promises object + delete this._pendingPromises[response.commandGuid]; + }; + CrossFrameDispatcher.prototype.onNotification = function (notificationMessage) { + // Go through each notification handler we have registered and let them know a notification came in + for (var _i = 0, _a = this._notificationHandlers; _i < _a.length; _i++) { + var handler = _a[_i]; + try { + handler({ notificationId: notificationMessage.notificationId, data: notificationMessage.data }); + } + catch (e) { + // Ignore this. Wrap in try/catch so if one handler errors, the other still get the message + } + } + }; + return CrossFrameDispatcher; + }()); + exports.CrossFrameDispatcher = CrossFrameDispatcher; + + +/***/ }, +/* 66 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var EnumConverter_1 = __webpack_require__(14); + exports.EnumConverter = EnumConverter_1.EnumConverter; + var Param_1 = __webpack_require__(16); + exports.Param = Param_1.Param; + var TableauException_1 = __webpack_require__(15); + exports.TableauException = TableauException_1.TableauException; + + +/***/ }, +/* 67 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the external DashboardContent namespace. + * This does not follow the Impl pattern as DashboardContent is + * currently just a (single) property bag. + */ + var DashboardContent = (function () { + function DashboardContent(_dashboard) { + this._dashboard = _dashboard; + } + Object.defineProperty(DashboardContent.prototype, "dashboard", { + get: function () { + return this._dashboard; + }, + enumerable: true, + configurable: true + }); + return DashboardContent; + }()); + exports.DashboardContent = DashboardContent; + + +/***/ }, +/* 68 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(9); + /** + * Implementation of the external environment namespace. + * Environment does not follow the Impl pattern as it is + * just a property bag. + */ + var Environment = (function () { + function Environment(extensionEnvironment) { + this._apiVersion = extensionEnvironment.apiVersion; + this._context = api_shared_1.InternalToExternalEnumMappings.extensionContext.convert(extensionEnvironment.extensionContext); + this._language = extensionEnvironment.extensionLanguage; + this._locale = extensionEnvironment.extensionLocale; + this._mode = api_shared_1.InternalToExternalEnumMappings.extensionMode.convert(extensionEnvironment.extensionMode); + this._operatingSystem = extensionEnvironment.operatingSystem; + this._tableauVersion = extensionEnvironment.tableauVersion; + } + Object.defineProperty(Environment.prototype, "apiVersion", { + get: function () { + return this._apiVersion; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "context", { + get: function () { + return this._context; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "language", { + get: function () { + return this._language; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "locale", { + get: function () { + return this._locale; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "mode", { + get: function () { + return this._mode; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "operatingSystem", { + get: function () { + return this._operatingSystem; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "tableauVersion", { + get: function () { + return this._tableauVersion; + }, + enumerable: true, + configurable: true + }); + return Environment; + }()); + exports.Environment = Environment; + + +/***/ }, +/* 69 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the external settings namespace. + */ + var Settings = (function () { + function Settings(settingsImpl) { + this.settingsImpl = settingsImpl; + } + Settings.prototype.erase = function (key) { + this.settingsImpl.erase(key); + }; + Settings.prototype.get = function (key) { + return this.settingsImpl.get(key); + }; + Settings.prototype.getAll = function () { + return this.settingsImpl.getAll(); + }; + Object.defineProperty(Settings.prototype, "isModified", { + get: function () { + return this.settingsImpl.isModified; + }, + enumerable: true, + configurable: true + }); + Settings.prototype.saveAsync = function () { + return this.settingsImpl.saveAsync(); + }; + Settings.prototype.set = function (key, value) { + this.settingsImpl.set(key, value); + }; + return Settings; + }()); + exports.Settings = Settings; + + +/***/ }, +/* 70 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(9); + var InitializationServiceImpl_1 = __webpack_require__(71); + var SettingsServiceImpl_1 = __webpack_require__(72); + function registerAllExtensionsServices(dispatcher) { + api_shared_1.ApiServiceRegistry.instance.registerService(new InitializationServiceImpl_1.InitializationServiceImpl(dispatcher)); + api_shared_1.ApiServiceRegistry.instance.registerService(new SettingsServiceImpl_1.SettingsServiceImpl(dispatcher)); + } + exports.registerAllExtensionsServices = registerAllExtensionsServices; + + +/***/ }, +/* 71 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(3); + var InitializationServiceImpl = (function () { + function InitializationServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + } + Object.defineProperty(InitializationServiceImpl.prototype, "serviceName", { + get: function () { + return "InitializationService" /* InitializationService */; + }, + enumerable: true, + configurable: true + }); + InitializationServiceImpl.prototype.initializeDashboardExtensionsAsync = function () { + // We don't need any parameters for this call because they are added in for us by the dispatcher + return this.dispatcher.execute(api_internal_contract_1.VerbId.InitializeExtension, {}).then(function (response) { + // TODO - Validate return value + var result = response.result; + return result; + }); + }; + return InitializationServiceImpl; + }()); + exports.InitializationServiceImpl = InitializationServiceImpl; + + +/***/ }, +/* 72 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(3); + var api_utils_1 = __webpack_require__(66); + var SettingsServiceImpl = (function () { + function SettingsServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + } + Object.defineProperty(SettingsServiceImpl.prototype, "serviceName", { + get: function () { + return "SettingsService" /* SettingsService */; + }, + enumerable: true, + configurable: true + }); + SettingsServiceImpl.prototype.saveSettingsAsync = function (settings) { + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.SettingsValues] = settings, _a); + return this.dispatcher.execute(api_internal_contract_1.VerbId.SaveExtensionSettings, parameters).then(function (value) { + var result = value.result; + if (!result || !result.settingsValues) { + throw api_utils_1.TableauException.internalError(['saving settings.']); + } + return (result.settingsValues); + }); + var _a; + }; + return SettingsServiceImpl; + }()); + exports.SettingsServiceImpl = SettingsServiceImpl; + + +/***/ }, +/* 73 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(9); + var api_utils_1 = __webpack_require__(66); + var SettingsImpl = (function () { + function SettingsImpl(settingsInfo) { + // Since promises can't be introspected for state, keep a variable that + // indicates a save is in progress, so that set/erase can't be called during a save. + this._saveInProgress = false; + this.initializeSettings(settingsInfo); + } + SettingsImpl.prototype.erase = function (key) { + api_utils_1.Param.verifyValue(key, 'key'); + // Only make a modification if we have the key already + if (this._currentSettings[key]) { + this.verifySettingsAreUnlocked(); + delete this._currentSettings[key]; + this._isModified = true; + } + }; + SettingsImpl.prototype.get = function (key) { + api_utils_1.Param.verifyValue(key, 'key'); + return this._currentSettings[key]; + }; + SettingsImpl.prototype.getAll = function () { + // Returns a mutable copy of the settings + return Object.assign({}, this._currentSettings); + }; + Object.defineProperty(SettingsImpl.prototype, "isModified", { + get: function () { + return this._isModified; + }, + enumerable: true, + configurable: true + }); + SettingsImpl.prototype.saveAsync = function () { + var _this = this; + this.verifySettingsAreUnlocked(); + // Just resolve immediately if settings are unchanged + if (!this._isModified) { + return Promise.resolve(this._currentSettings); + } + this._saveInProgress = true; + // Use the settings service to save settings to twb + var settingsService = api_shared_1.ApiServiceRegistry.instance.getService("SettingsService" /* SettingsService */); + return settingsService.saveSettingsAsync(this._currentSettings).then(function (newSettings) { + _this._saveInProgress = false; + _this._isModified = false; + Object.assign(_this._currentSettings, newSettings); + return newSettings; + }); + }; + SettingsImpl.prototype.set = function (key, value) { + api_utils_1.Param.verifyValue(key, 'key'); // Key shouldn't be an empty string. + api_utils_1.Param.verifyString(value, 'value'); // Empty string value is allowed. + this.verifySettingsAreUnlocked(); + this._currentSettings[key] = value; + this._isModified = true; + }; + SettingsImpl.prototype.initializeSettings = function (settingsInfo) { + api_utils_1.Param.verifyValue(settingsInfo, 'settingsInfo'); + api_utils_1.Param.verifyValue(settingsInfo.settingsValues, 'settingsInfo.SettingsValues'); + this._currentSettings = settingsInfo.settingsValues; + // Reset the isModified flag + this._isModified = false; + }; + /** + * This helper should be called before any local update to this.currentSettings. + * Checks if a current save call is still in progress and throws an error if so. + */ + SettingsImpl.prototype.verifySettingsAreUnlocked = function () { + if (this._saveInProgress) { + throw api_utils_1.TableauException.error(SettingsImpl.ASYNC_SAVE_IN_PROGRESS); + } + }; + SettingsImpl.ASYNC_SAVE_IN_PROGRESS = 'Async Save is in progress, updating settings is not allowed.'; + return SettingsImpl; + }()); + exports.SettingsImpl = SettingsImpl; + + +/***/ }, +/* 74 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the external Extensions namespace. + */ + var Extensions = (function () { + function Extensions(extensionImpl) { + this.extensionImpl = extensionImpl; + this.extensionImpl = extensionImpl; + } + Object.defineProperty(Extensions.prototype, "dashboardContent", { + get: function () { + return this.extensionImpl.dashboardContent; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Extensions.prototype, "environment", { + get: function () { + return this.extensionImpl.environment; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Extensions.prototype, "settings", { + get: function () { + return this.extensionImpl.settings; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Extensions.prototype, "ui", { + get: function () { + throw new Error('API call not yet implemented'); + }, + enumerable: true, + configurable: true + }); + Extensions.prototype.initializeAsync = function () { + return this.extensionImpl.initializeAsync(); + }; + return Extensions; + }()); + exports.Extensions = Extensions; + + +/***/ }, +/* 75 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(20)); + + +/***/ }, +/* 76 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_core_1 = __webpack_require__(77); + var api_internal_contract_1 = __webpack_require__(98); + var api_utils_1 = __webpack_require__(99); + var AddInApiPresLayerImpl_1 = __webpack_require__(100); + var DesktopApiDispatcher_1 = __webpack_require__(101); + var QtWebChannelImpl_1 = __webpack_require__(102); + /** + * Wrapper for all the bootstrapping logic. This code attempts to initialize the qt pres-layer + * as well as the desktop dispatcher. It then assigns it to the global desktop dispatcher to + * be picked up by the add-in external Api + */ + function doBootstrap() { + if (!QtWebChannelImpl_1.hasQt()) { + return Promise.reject('Not running in desktop with qt available'); + } + // First we need to initialize the webchannel pres-layer + var dispatcherPromise = QtWebChannelImpl_1.initializeWebChannelPresLayer().then(function (preslayer) { + var presLayerApi = new AddInApiPresLayerImpl_1.AddInApiPresLayerImpl(preslayer); + if (!presLayerApi.AddInInstanceInfo.addInLocatorPresModel) { + throw api_utils_1.TableauException.isUndefined(['AddInInstanceInfo']); + } + // Initialize the apiEventHandler and the desktopDispatcher with it + var apiEventHandler = new api_core_1.ApiEventHandler(presLayerApi, presLayerApi.AddInInstanceInfo.addInLocatorPresModel, true); + var desktopDispatcher = new DesktopApiDispatcher_1.DesktopApiDispatcher(apiEventHandler); + return desktopDispatcher; + }); + // Assign the desktop dispatcher for the other project to find it + api_internal_contract_1.InternalApiDispatcherHolder.setDesktopDispatcherPromise(dispatcherPromise); + return dispatcherPromise; + } + exports.doBootstrap = doBootstrap; + + +/***/ }, +/* 77 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(78)); + var Events_1 = __webpack_require__(87); + exports.NotificationId = Events_1.NotificationId; + + +/***/ }, +/* 78 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(79); + var api_utils_1 = __webpack_require__(80); + var Params_1 = __webpack_require__(81); + var CommandMappingRegistryFactory_1 = __webpack_require__(82); + var EventMappingRegistryFactory_1 = __webpack_require__(86); + var ParameterMappingRegistryFactory_1 = __webpack_require__(91); + /** + * Main class for the api-core project. This class is responsible for executing comamnd and marshalling notifications + * between the internal Api and the pres-layer Api. After construction, SetVersionNumber must be called in order to + * use this class + * + * @export + * @class ApiEventHandler + */ + var ApiEventHandler = (function () { + /** + * Creates an instance of ApiEventHandler. + * @param {PresentationLayer} presLayer - An implementation of the pres-layer Api to use + * @param {AddInLocatorPresModel} addInLocatorPresModel - locator for the add-in which is being referenced + * @param {runningInDesktop} boolean - true if this is ApiEventHandler is created in a Desktop context. + * @memberof ApiEventHandler + */ + function ApiEventHandler(_presLayer, _presLayerAddInLocator, _runningInDesktop) { + this._presLayer = _presLayer; + this._presLayerAddInLocator = _presLayerAddInLocator; + this._runningInDesktop = _runningInDesktop; + } + /** + * Sets the internal Api version number which the external library is expecting to use. This must be called before + * anything else in order to properly set up the translation layers. + * + * @param {VersionNumber} versionNumber + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.setVersionNumber = function (versionNumber) { + this._versionNumber = versionNumber; + // Initialize all our registries + this._commandRegistry = CommandMappingRegistryFactory_1.CommandMappingRegistryFactory.createCommandMappingRegistry(versionNumber, this._runningInDesktop); + this._apiToPresLayerRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createApiToPresLayerParamRegistry(versionNumber); + this._presLayerToApiRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createPresLayerToApiParamRegistry(versionNumber); + this._eventRegistry = EventMappingRegistryFactory_1.EventMappingRegistryFactory.createEventMappingRegistry(versionNumber); + // Convert our addInLocator to the Api version + this._apiExtensionLocator = this._presLayerToApiRegistry + .get(Params_1.ParameterId.AddInLocator, api_internal_contract_1.ParameterId.ExtensionLocator)(this._presLayerAddInLocator); + for (var _i = 0, _a = Object.keys(this._eventRegistry); _i < _a.length; _i++) { + var plEventId = _a[_i]; + // Register for all notifications we know about and bind the event type to the callback + this._presLayer.registerNotificationHandler(plEventId, this.onPresLayerNotification.bind(this, plEventId)); + } + }; + /** + * Sets an event handler function to be notified when Api events come in. Only a single registration is supported. + * + * @param {NotificationHandler} eventHandler + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.setEventHandler = function (eventHandler) { + this._eventHandler = eventHandler; + // TODO - Register for pres layer events + }; + /** + * Executes the requested Api command by converting the parameters, running the command against the pres-layer, + * then processing the result back into a format the Api can understand + * + * @param {VerbId} verb + * @param {ExecuteParameters} parameters + * @returns {Promise} + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.execute = function (verb, parameters) { + var _this = this; + this.assertInitialized(); + var command = this._commandRegistry.getCommand(verb); + parameters = parameters || {}; + // Augment the command with the locator if it's needed + if (command.needsAddInLocator) { + parameters[api_internal_contract_1.ParameterId.ExtensionLocator] = this._apiExtensionLocator; + } + var commandsParams = command.createParams(parameters, this._apiToPresLayerRegistry); + return this._presLayer.invokeCommand(command.namespace, command.commandId, commandsParams) + .then(function (commandResult) { + var convertedResult = command.ProcessResult(commandResult, _this._presLayerToApiRegistry); + return { + result: convertedResult + }; + }); + }; + Object.defineProperty(ApiEventHandler.prototype, "ApiExtensionLocator", { + get: function () { + return this._apiExtensionLocator; + }, + enumerable: true, + configurable: true + }); + /** + * Helper method to check that things are initialized as expected. Throws if initialization not complete + * + * @private + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.assertInitialized = function () { + if (!this._versionNumber) { + throw api_utils_1.TableauException.error(ApiEventHandler.VERSION_NOT_CONFIGURED); + } + }; + /** + * Called when a new event notification comes in from the presentation layer + * + * @param eventId The pres layer event id + * @param presModel The pres model that is included with the event + */ + ApiEventHandler.prototype.onPresLayerNotification = function (eventId, presModel) { + // First look up this eventId in our registry and convert to presModel + var eventMapping = this._eventRegistry[eventId]; + var apiModel = eventMapping.converter(presModel); + if (this._eventHandler) { + this._eventHandler(eventMapping.apiId, apiModel); + } + }; + ApiEventHandler.VERSION_NOT_CONFIGURED = 'VersionNumber not yet configured. Cannot take any actions'; + return ApiEventHandler; + }()); + exports.ApiEventHandler = ApiEventHandler; + + +/***/ }, +/* 79 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(4)); + __export(__webpack_require__(5)); + __export(__webpack_require__(6)); + __export(__webpack_require__(7)); + __export(__webpack_require__(8)); + + +/***/ }, +/* 80 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var EnumConverter_1 = __webpack_require__(14); + exports.EnumConverter = EnumConverter_1.EnumConverter; + var Param_1 = __webpack_require__(16); + exports.Param = Param_1.Param; + var TableauException_1 = __webpack_require__(15); + exports.TableauException = TableauException_1.TableauException; + + +/***/ }, +/* 81 */ +/***/ function(module, exports) { + + "use strict"; + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/params-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-params.data'] + Object.defineProperty(exports, "__esModule", { value: true }); + var ParameterId; + (function (ParameterId) { + // DPI_IntegerRLE, having type int[] + ParameterId["IntegerRLE"] = "intRle"; + // DPI_UnsignedIntegerRLE, having type uint[] + ParameterId["UnsignedIntegerRLE"] = "uintRle"; + // DPI_FloatRLE, having type float[] + ParameterId["FloatRLE"] = "floatRle"; + // DPI_ParameterID, having type string + ParameterId["ParameterID"] = "paramType"; + // DPI_AllowCustomDatabase, having type bool + ParameterId["AllowCustomDatabase"] = "allowCustomDatabase"; + // DPI_AllowCustomSchema, having type bool + ParameterId["AllowCustomSchema"] = "allowCustomSchema"; + // DPI_AllowCustomSQL, having type bool + ParameterId["AllowCustomSQL"] = "allowCustomSql"; + // DPI_AllowCustomSQLWithoutSchema, having type bool + ParameterId["AllowCustomSQLWithoutSchema"] = "allowCustomSqlWithoutSchema"; + // DPI_AllowPreviewData, having type bool + ParameterId["AllowPreviewData"] = "allowPreviewData"; + // DPI_AllowStoredProc, having type bool + ParameterId["AllowStoredProc"] = "allowStoredProcedure"; + // DPI_AllowUnion, having type bool + ParameterId["AllowUnion"] = "allowUnion"; + // DPI_AreVariablesVisible, having type bool + ParameterId["AreVariablesVisible"] = "areVariablesVisible"; + // DPI_AttrLegacyConnection, having type bool + ParameterId["AttrLegacyConnection"] = "widgetAttrLegacy"; + // DPI_AttrReadUncommitted, having type bool + ParameterId["AttrReadUncommitted"] = "widgetAttrReadUncommittedData"; + // DPI_AttrRequireSSL, having type bool + ParameterId["AttrRequireSSL"] = "widgetAttrRequireSsl"; + // DPI_AttrRequireEncryption, having type bool + ParameterId["AttrRequireEncryption"] = "widgetAttrRequireEncryption"; + // DPI_Bool, having type bool + ParameterId["Bool"] = "bool"; + // DPI_CanPartition, having type bool + ParameterId["CanPartition"] = "canPartition"; + // DPI_CanRecommendDataSources, having type bool + ParameterId["CanRecommendDataSources"] = "canRecommendDatasources"; + // DPI_CanRecommendTables, having type bool + ParameterId["CanRecommendTables"] = "canRecommendTables"; + // DPI_CheckPermissions, having type bool + ParameterId["CheckPermissions"] = "checkPermissions"; + // DPI_DatabaseNameOptional, having type bool + ParameterId["DatabaseNameOptional"] = "databaseNameOptional"; + // DPI_DatabaseWHOptional, having type bool + ParameterId["DatabaseWHOptional"] = "databaseWarehouseOptional"; + // DPI_DoValidation, having type bool + ParameterId["DoValidation"] = "doValidation"; + // DPI_DoneLoadingAllSheets, having type bool + ParameterId["DoneLoadingAllSheets"] = "googleSheetDoneLoading"; + // DPI_GABasicItemsEnabled, having type bool + ParameterId["GABasicItemsEnabled"] = "gaBasicItemsEnabled"; + // DPI_GADimensionMeasuresEnabled, having type bool + ParameterId["GADimensionMeasuresEnabled"] = "gaDimensionsMeasuresEnabled"; + // DPI_GAFiltersEnabled, having type bool + ParameterId["GAFiltersEnabled"] = "gaFiltersEnabled"; + // DPI_HasDatabase, having type bool + ParameterId["HasDatabase"] = "hasDatabase"; + // DPI_HasDataLoss, having type bool + ParameterId["HasDataLoss"] = "hasDataLoss"; + // DPI_HasFastMetadata, having type bool + ParameterId["HasFastMetadata"] = "hasFastMetadata"; + // DPI_HasNewlyDiscoveredSchema, having type bool + ParameterId["HasNewlyDiscoveredSchema"] = "hasNewlyDiscoveredSchema"; + // DPI_HasPermissions, having type bool + ParameterId["HasPermissions"] = "hasPermissions"; + // DPI_HasSchema, having type bool + ParameterId["HasSchema"] = "hasSchema"; + // DPI_HasSchemaCount, having type bool + ParameterId["HasSchemaCount"] = "hasSchemaCount"; + // DPI_HasTables, having type bool + ParameterId["HasTables"] = "hasTables"; + // DPI_HasUncommittedChanges, having type bool + ParameterId["HasUncommittedChanges"] = "hasUncommittedChanges"; + // DPI_HasWarehouse, having type bool + ParameterId["HasWarehouse"] = "hasWarehouse"; + // DPI_HasWarning, having type bool + ParameterId["HasWarning"] = "hasWarning"; + // DPI_IsCalculated, having type bool + ParameterId["IsCalculated"] = "isCalculated"; + // DPI_IsConnectedToDataSource, having type bool + ParameterId["IsConnectedToDataSource"] = "isConnectedDatasource"; + // DPI_IsDisabledDataConnection, having type bool + ParameterId["IsDisabledDataConnection"] = "isDisabledDataConnection"; + // DPI_IsEditable, having type bool + ParameterId["IsEditable"] = "isEditable"; + // DPI_IsEnabled, having type bool + ParameterId["IsEnabled"] = "isEnabled"; + // DPI_IsFinishedConnecting, having type bool + ParameterId["IsFinishedConnecting"] = "isFinishedConnecting"; + // DPI_IsHidden, having type bool + ParameterId["IsHidden"] = "isHidden"; + // DPI_IsMultiTable, having type bool + ParameterId["IsMultiTable"] = "isMultiTable"; + // DPI_IsNewCustomSQL, having type bool + ParameterId["IsNewCustomSQL"] = "isNewCustomSql"; + // DPI_IsNewDataSource, having type bool + ParameterId["IsNewDataSource"] = "isNewDataSrc"; + // DPI_IsPublishedFederated, having type bool + ParameterId["IsPublishedFederated"] = "isPublishedFederated"; + // DPI_IsSampled, having type bool + ParameterId["IsSampled"] = "isSampled"; + // DPI_IsSchemaMemberNewlyDiscovered, having type bool + ParameterId["IsSchemaMemberNewlyDiscovered"] = "isSchemaMemberNewlyDiscovered"; + // DPI_IsSlowFast, having type bool + ParameterId["IsSlowFast"] = "isSlowfast"; + // DPI_IsSupported, having type bool + ParameterId["IsSupported"] = "isSupported"; + // DPI_IsTableSelectionVisible, having type bool + ParameterId["IsTableSelectionVisible"] = "isTableSelectionVisible"; + // DPI_IsTableauServerDatasource, having type bool + ParameterId["IsTableauServerDatasource"] = "isTableauServerDatasource"; + // DPI_IsTableauServerDatasourceConnectable, having type bool + ParameterId["IsTableauServerDatasourceConnectable"] = "isTableauServerDatasourceConnectable"; + // DPI_IsTableauServerDatasourceDownloadable, having type bool + ParameterId["IsTableauServerDatasourceDownloadable"] = "isTableauServerDatasourceDownloadable"; + // DPI_IsVisible, having type bool + ParameterId["IsVisible"] = "isVisible"; + // DPI_NeedFlatten, having type bool + ParameterId["NeedFlatten"] = "needFlatten"; + // DPI_SSLRequiresCertificate, having type bool + ParameterId["SSLRequiresCertificate"] = "sslRequiresCertificate"; + // DPI_SchemaOptional, having type bool + ParameterId["SchemaOptional"] = "schemaOptional"; + // DPI_ServiceNameOptional, having type bool + ParameterId["ServiceNameOptional"] = "serviceNameOptional"; + // DPI_ShouldWarnForCrossSchemaJoins, having type bool + ParameterId["ShouldWarnForCrossSchemaJoins"] = "shouldWarnCrossSchemaJoins"; + // DPI_ShowBrowseButton, having type bool + ParameterId["ShowBrowseButton"] = "showBrowseButton"; + // DPI_ShowConnectionPrompt, having type bool + ParameterId["ShowConnectionPrompt"] = "showConnectionPrompt"; + // DPI_ShowDBBrowseButton, having type bool + ParameterId["ShowDBBrowseButton"] = "showDbBrowseButton"; + // DPI_ShowDBNamePrompt, having type bool + ParameterId["ShowDBNamePrompt"] = "showDbPrompt"; + // DPI_ShowDBWHNamePrompt, having type bool + ParameterId["ShowDBWHNamePrompt"] = "showDbwhPrompt"; + // DPI_ShowImportSSLCertLabel, having type bool + ParameterId["ShowImportSSLCertLabel"] = "showImportSslcertLabel"; + // DPI_ShowPortPrompt, having type bool + ParameterId["ShowPortPrompt"] = "showPortPrompt"; + // DPI_ShowSSLCheckbox, having type bool + ParameterId["ShowSSLCheckbox"] = "showSslCheckbox"; + // DPI_ShowEncryptionCheckbox, having type bool + ParameterId["ShowEncryptionCheckbox"] = "showEncryptionCheckbox"; + // DPI_ShowServerNamePrompt, having type bool + ParameterId["ShowServerNamePrompt"] = "showServerPrompt"; + // DPI_ShowServiceNamePrompt, having type bool + ParameterId["ShowServiceNamePrompt"] = "showServicePrompt"; + // DPI_ShowUncommittedDataCheckbox, having type bool + ParameterId["ShowUncommittedDataCheckbox"] = "showUncommittedDataCheckbox"; + // DPI_SupportsGenericAuth, having type bool + ParameterId["SupportsGenericAuth"] = "supportsGenericAuth"; + // DPI_TableauServerFetchAscending, having type bool + ParameterId["TableauServerFetchAscending"] = "tableauServerFetchAscending"; + // DPI_UsesRadioButton, having type bool + ParameterId["UsesRadioButton"] = "usesRadioButton"; + // DPI_BigQueryLegacySQLCheckStatus, having type bool + ParameterId["BigQueryLegacySQLCheckStatus"] = "datasourceBigqueryLegacySqlCheckStatus"; + // DPI_HasBigQueryLegacySQLCheck, having type bool + ParameterId["HasBigQueryLegacySQLCheck"] = "datasourceBigqueryLegacySqlCheck"; + // DPI_AutoFetchLimit, having type int + ParameterId["AutoFetchLimit"] = "autoFetchLimit"; + // DPI_ConnectionType, having type int + ParameterId["ConnectionType"] = "connectionType"; + // DPI_IconId, having type int + ParameterId["IconId"] = "iconId"; + // DPI_SelectedCatalogIndex, having type int + ParameterId["SelectedCatalogIndex"] = "selectedCatalogIndex"; + // DPI_SelectedCubeIndex, having type int + ParameterId["SelectedCubeIndex"] = "selectedCubeIndex"; + // DPI_SelectedGAAccountIndex, having type int + ParameterId["SelectedGAAccountIndex"] = "selectedGaAccountIndex"; + // DPI_SelectedGAMeasureSetIndex, having type int + ParameterId["SelectedGAMeasureSetIndex"] = "selectedGaMeasureSetIndex"; + // DPI_SelectedGAPropertyIndex, having type int + ParameterId["SelectedGAPropertyIndex"] = "selectedGaPropertyIndex"; + // DPI_SelectedGASegmentIndex, having type int + ParameterId["SelectedGASegmentIndex"] = "selectedGaSegmentIndex"; + // DPI_SelectedGAViewIndex, having type int + ParameterId["SelectedGAViewIndex"] = "selectedGaViewIndex"; + // DPI_SelectedGoogleSheetIndex, having type int + ParameterId["SelectedGoogleSheetIndex"] = "selectedGoogleSheetIndex"; + // DPI_SelectedOptionIndex, having type int + ParameterId["SelectedOptionIndex"] = "selectedOptionIndex"; + // DPI_SlowMetadataCount, having type int + ParameterId["SlowMetadataCount"] = "slowMetadataCount"; + // DPI_TableauServerFetchSortBy, having type int + ParameterId["TableauServerFetchSortBy"] = "tableauServerFetchSort"; + // DPI_ActualParameterOrdinal, having type uint + ParameterId["ActualParameterOrdinal"] = "actualParameterOrdinal"; + // DPI_ActualParameterType, having type uint + ParameterId["ActualParameterType"] = "actualParameterType"; + // DPI_CharSetID, having type uint + ParameterId["CharSetID"] = "charsetId"; + // DPI_DataSourceOrdinal, having type uint + ParameterId["DataSourceOrdinal"] = "datasourceOrdinal"; + // DPI_FilterCount, having type uint + ParameterId["FilterCount"] = "filterCount"; + // DPI_VariablesCount, having type uint + ParameterId["VariablesCount"] = "variablesCount"; + // DPI_ActualParameterDisplayName, having type string + ParameterId["ActualParameterDisplayName"] = "actualParameterDisplayName"; + // DPI_ActualParameterName, having type string + ParameterId["ActualParameterName"] = "actualParameterName"; + // DPI_ActualParameterValue, having type string + ParameterId["ActualParameterValue"] = "actualParameterValue"; + // DPI_AttrAPIVersion, having type string + ParameterId["AttrAPIVersion"] = "attrApiVersion"; + // DPI_AttrAuthType, having type string + ParameterId["AttrAuthType"] = "widgetAttrAuthtype"; + // DPI_AttrAuthenticator, having type string + ParameterId["AttrAuthenticator"] = "widgetAttrAuthenticator"; + // DPI_AttrConnectionData, having type string + ParameterId["AttrConnectionData"] = "attrConnectionData"; + // DPI_AttrConnectionName, having type string + ParameterId["AttrConnectionName"] = "attrConnectionName"; + // DPI_AttrConnectionType, having type string + ParameterId["AttrConnectionType"] = "widgetAttrConnectiontype"; + // DPI_AttrConnectionURL, having type string + ParameterId["AttrConnectionURL"] = "attrConnectionUrl"; + // DPI_AttrCubeSpecificationId, having type string + ParameterId["AttrCubeSpecificationId"] = "widgetAttrCubeSpecificationId"; + // DPI_AttrCubeSpecificationValue, having type string + ParameterId["AttrCubeSpecificationValue"] = "widgetAttrCubeSpecificationValue"; + // DPI_AttrDSN, having type string + ParameterId["AttrDSN"] = "widgetAttrDsn"; + // DPI_AttrDatabase, having type string + ParameterId["AttrDatabase"] = "widgetAttrDb"; + // DPI_AttrDatabaseWarehouse, having type string + ParameterId["AttrDatabaseWarehouse"] = "widgetAttrDbwh"; + // DPI_AttrDriver, having type string + ParameterId["AttrDriver"] = "widgetAttrDriver"; + // DPI_AttrFilename, having type string + ParameterId["AttrFilename"] = "widgetAttrFilename"; + // DPI_AttrHTTPPath, having type string + ParameterId["AttrHTTPPath"] = "widgetAttrHttpPath"; + // DPI_AttrIncrementalRefreshKey, having type string + ParameterId["AttrIncrementalRefreshKey"] = "attrIncrementalRefreshKey"; + // DPI_AttrKerberosHost, having type string + ParameterId["AttrKerberosHost"] = "widgetAttrKerberosHost"; + // DPI_AttrKerberosRealm, having type string + ParameterId["AttrKerberosRealm"] = "widgetAttrKerberosRealm"; + // DPI_AttrKerberosService, having type string + ParameterId["AttrKerberosService"] = "widgetAttrKerberosService"; + // DPI_AttrLastRecordToken, having type string + ParameterId["AttrLastRecordToken"] = "attrLastRecordToken"; + // DPI_AttrMDWPath, having type string + ParameterId["AttrMDWPath"] = "widgetAttrMdwPath"; + // DPI_AttrMDWUsername, having type string + ParameterId["AttrMDWUsername"] = "widgetAttrMdwUsername"; + // DPI_AttrODBCPrompt, having type string + ParameterId["AttrODBCPrompt"] = "widgetAttrOdbcPrompt"; + // DPI_AttrODBCStringExtras, having type string + ParameterId["AttrODBCStringExtras"] = "widgetAttrOdbcStringExtras"; + // DPI_AttrPort, having type string + ParameterId["AttrPort"] = "widgetAttrPort"; + // DPI_AttrSAPClient, having type string + ParameterId["AttrSAPClient"] = "widgetAttrSapClient"; + // DPI_AttrSAPLanguage, having type string + ParameterId["AttrSAPLanguage"] = "widgetAttrSapLanguage"; + // DPI_AttrEdition, having type string + ParameterId["AttrEdition"] = "widgetAttrSslEdition"; + // DPI_AttrSSODomain, having type string + ParameterId["AttrSSODomain"] = "widgetAttrSsoDomain"; + // DPI_AttrSSLCert, having type string + ParameterId["AttrSSLCert"] = "widgetAttrSslCert"; + // DPI_AttrScriptVersion, having type string + ParameterId["AttrScriptVersion"] = "attrScriptVersion"; + // DPI_AttrServer, having type string + ParameterId["AttrServer"] = "widgetAttrServer"; + // DPI_AttrService, having type string + ParameterId["AttrService"] = "widgetAttrService"; + // DPI_AttrUsername, having type string + ParameterId["AttrUsername"] = "widgetAttrUser"; + // DPI_AuthenticationPrompt, having type string + ParameterId["AuthenticationPrompt"] = "authenticationPrompt"; + // DPI_ButtonClickAction, having type string + ParameterId["ButtonClickAction"] = "buttonClickAction"; + // DPI_ButtonCaption, having type string + ParameterId["ButtonCaption"] = "buttonCaption"; + // DPI_ButtonImagePath, having type string + ParameterId["ButtonImagePath"] = "buttonImagePath"; + // DPI_ButtonImagePathKey, having type string + ParameterId["ButtonImagePathKey"] = "buttonImagePathKey"; + // DPI_Caption, having type string + ParameterId["Caption"] = "caption"; + // DPI_CatalogListPrompt, having type string + ParameterId["CatalogListPrompt"] = "catalogListPrompt"; + // DPI_CatalogName, having type string + ParameterId["CatalogName"] = "catalogName"; + // DPI_CatalogSearchTerm, having type string + ParameterId["CatalogSearchTerm"] = "catalogSearchTerm"; + // DPI_Category, having type string + ParameterId["Category"] = "itemCategory"; + // DPI_ClassName, having type string + ParameterId["ClassName"] = "classNameForCleaning"; + // DPI_CloudFileClassName, having type string + ParameterId["CloudFileClassName"] = "cloudFileClassName"; + // DPI_CloudFileStorageProvider, having type string + ParameterId["CloudFileStorageProvider"] = "cloudFileStorageProvider"; + // DPI_ConfigName, having type string + ParameterId["ConfigName"] = "connectionConfigName"; + // DPI_ConnectionCaption, having type string + ParameterId["ConnectionCaption"] = "connectionCaption"; + // DPI_ConnectionDescriptionLabel, having type string + ParameterId["ConnectionDescriptionLabel"] = "connectionDescriptionLabel"; + // DPI_ConnectionClass, having type string + ParameterId["ConnectionClass"] = "connectionClassName"; + // DPI_ConnectionName, having type string + ParameterId["ConnectionName"] = "connectionName"; + // DPI_ConnectionOptionName, having type string + ParameterId["ConnectionOptionName"] = "connectionOptionName"; + // DPI_ConnectionSpecificationTitle, having type string + ParameterId["ConnectionSpecificationTitle"] = "connectionSpecificationTitle"; + // DPI_ConnectionTypeLabel, having type string + ParameterId["ConnectionTypeLabel"] = "connectionTypeLabel"; + // DPI_ConnectionURI, having type string + ParameterId["ConnectionURI"] = "connectionUri"; + // DPI_CubeDescription, having type string + ParameterId["CubeDescription"] = "cubeDescription"; + // DPI_CubeLastUpdated, having type string + ParameterId["CubeLastUpdated"] = "cubeLastUpdated"; + // DPI_CubeListPrompt, having type string + ParameterId["CubeListPrompt"] = "cubeListPrompt"; + // DPI_CubeName, having type string + ParameterId["CubeName"] = "cubeName"; + // DPI_CubeSearchTerm, having type string + ParameterId["CubeSearchTerm"] = "cubeSearchTerm"; + // DPI_CurrentText, having type string + ParameterId["CurrentText"] = "currentText"; + // DPI_CustomSplitStringSeparator, having type string + ParameterId["CustomSplitStringSeparator"] = "customSplitStringSeparator"; + // DPI_DatasourceId, having type string + ParameterId["DatasourceId"] = "datasourceId"; + // DPI_DBNamePrompt, having type string + ParameterId["DBNamePrompt"] = "dbNamePrompt"; + // DPI_DBWHNamePrompt, having type string + ParameterId["DBWHNamePrompt"] = "dbWarehouseNamePrompt"; + // DPI_DSClass, having type string + ParameterId["DSClass"] = "dsClass"; + // DPI_DatabaseName, having type string + ParameterId["DatabaseName"] = "datasourceDatabaseName"; + // DPI_DatabaseNote, having type string + ParameterId["DatabaseNote"] = "databaseNote"; + // DPI_DragLabel, having type string + ParameterId["DragLabel"] = "dragLabel"; + // DPI_EffectiveDateRange, having type string + ParameterId["EffectiveDateRange"] = "effectiveDateRange"; + // DPI_GoogleSheetCreatedTime, having type string + ParameterId["GoogleSheetCreatedTime"] = "googleSheetCreatedTime"; + // DPI_GoogleSheetId, having type string + ParameterId["GoogleSheetId"] = "googleSheetId"; + // DPI_GoogleSheetLastModifiedTime, having type string + ParameterId["GoogleSheetLastModifiedTime"] = "googleSheetLastModifiedTime"; + // DPI_GoogleSheetLastModifyingUser, having type string + ParameterId["GoogleSheetLastModifyingUser"] = "googleSheetLastModifyingUser"; + // DPI_GoogleSheetLastViewedByUserTime, having type string + ParameterId["GoogleSheetLastViewedByUserTime"] = "googleSheetLastViewedByUserTime"; + // DPI_GoogleSheetMimeType, having type string + ParameterId["GoogleSheetMimeType"] = "googleSheetMimeType"; + // DPI_GoogleSheetName, having type string + ParameterId["GoogleSheetName"] = "googleSheetName"; + // DPI_GoogleSheetOwner, having type string + ParameterId["GoogleSheetOwner"] = "googleSheetOwner"; + // DPI_GoogleSheetThumbnailLink, having type string + ParameterId["GoogleSheetThumbnailLink"] = "googleSheetThumbnailLink"; + // DPI_GoogleSheetThumbnailId, having type string + ParameterId["GoogleSheetThumbnailId"] = "googleSheetThumbnailId"; + // DPI_GoogleSheetThumbnailLocalPath, having type string + ParameterId["GoogleSheetThumbnailLocalPath"] = "googleSheetThumbnailLocalPath"; + // DPI_GoogleSheetWebViewLink, having type string + ParameterId["GoogleSheetWebViewLink"] = "googleSheetWebViewLink"; + // DPI_GoogleSheetsListErrorMessage, having type string + ParameterId["GoogleSheetsListErrorMessage"] = "googleSheetsListErrorMessage"; + // DPI_InitialSQL, having type string + ParameterId["InitialSQL"] = "initialSql"; + // DPI_ISODate, having type string + ParameterId["ISODate"] = "isoDate"; + // DPI_ISOEndDate, having type string + ParameterId["ISOEndDate"] = "isoEndDate"; + // DPI_ISOStartDate, having type string + ParameterId["ISOStartDate"] = "isoStartDate"; + // DPI_IsolationLevel, having type string + ParameterId["IsolationLevel"] = "datasourceIsolationLevel"; + // DPI_ItemDescription, having type string + ParameterId["ItemDescription"] = "itemDescription"; + // DPI_ItemId, having type string + ParameterId["ItemId"] = "itemId"; + // DPI_KerberosHost, having type string + ParameterId["KerberosHost"] = "datasourceKerberosHost"; + // DPI_KerberosRealm, having type string + ParameterId["KerberosRealm"] = "datasourceKerberosRealm"; + // DPI_KerberosService, having type string + ParameterId["KerberosService"] = "datasourceKerberosService"; + // DPI_Name, having type string + ParameterId["Name"] = "name"; + // DPI_OptionId, having type string + ParameterId["OptionId"] = "optionId"; + // DPI_PartitioningButtonLabel, having type string + ParameterId["PartitioningButtonLabel"] = "partitioningButtonLabel"; + // DPI_PartitioningButtonTooltip, having type string + ParameterId["PartitioningButtonTooltip"] = "partitioningButtonTooltip"; + // DPI_PartitioningText, having type string + ParameterId["PartitioningText"] = "queryPartitioningText"; + // DPI_PdfStartPage, having type string + ParameterId["PdfStartPage"] = "pdfStartPage"; + // DPI_PdfEndPage, having type string + ParameterId["PdfEndPage"] = "pdfEndPage"; + // DPI_PortPrompt, having type string + ParameterId["PortPrompt"] = "portPrompt"; + // DPI_PromptText, having type string + ParameterId["PromptText"] = "promptText"; + // DPI_QueryBanding, having type string + ParameterId["QueryBanding"] = "queryBanding"; + // DPI_QueryText, having type string + ParameterId["QueryText"] = "queryText"; + // DPI_RecommendationUUID, having type string + ParameterId["RecommendationUUID"] = "recommendationUuid"; + // DPI_SQLQuery, having type string + ParameterId["SQLQuery"] = "sqlQuery"; + // DPI_SchemaComboFallbackText, having type string + ParameterId["SchemaComboFallbackText"] = "schemaComboFallbackText"; + // DPI_SchemaLabel, having type string + ParameterId["SchemaLabel"] = "schemaLabel"; + // DPI_SchemaMemberGlobalName, having type string + ParameterId["SchemaMemberGlobalName"] = "schemaMemberGlobalName"; + // DPI_SchemaName, having type string + ParameterId["SchemaName"] = "datasourceSchemaName"; + // DPI_ScriptText, having type string + ParameterId["ScriptText"] = "scriptText"; + // DPI_SecondaryWhiteList, having type string + ParameterId["SecondaryWhiteList"] = "secondaryWhiteList"; + // DPI_Server, having type string + ParameterId["Server"] = "datasourceServer"; + // DPI_ServerNamePrompt, having type string + ParameterId["ServerNamePrompt"] = "serverNamePrompt"; + // DPI_Service, having type string + ParameterId["Service"] = "datasourceService"; + // DPI_ServiceNamePrompt, having type string + ParameterId["ServiceNamePrompt"] = "servicePrompt"; + // DPI_SheetFormatting, having type string + ParameterId["SheetFormatting"] = "sheetFormatting"; + // DPI_SlowMetadataSearchTerm, having type string + ParameterId["SlowMetadataSearchTerm"] = "slowMetadataSearchTerm"; + // DPI_StandardConnectionName, having type string + ParameterId["StandardConnectionName"] = "datasourceStandardConnectionName"; + // DPI_StandardConnectionPlaceholderText, having type string + ParameterId["StandardConnectionPlaceholderText"] = "standardConnectionPlaceholderText"; + // DPI_StoredProcedureParameterTitle, having type string + ParameterId["StoredProcedureParameterTitle"] = "storedProcedureParameterTitle"; + // DPI_TableAlias, having type string + ParameterId["TableAlias"] = "tableAlias"; + // DPI_RightTableAlias, having type string + ParameterId["RightTableAlias"] = "rightTableAlias"; + // DPI_TableCaption, having type string + ParameterId["TableCaption"] = "tableCaption"; + // DPI_TableCollectionName, having type string + ParameterId["TableCollectionName"] = "tableCollectionName"; + // DPI_TablePlaceholderText, having type string + ParameterId["TablePlaceholderText"] = "tablePlaceholderText"; + // DPI_TableRanking, having type string + ParameterId["TableRanking"] = "tableRanking"; + // DPI_TableSortKey, having type string + ParameterId["TableSortKey"] = "tableSortkey"; + // DPI_TableTooltip, having type string + ParameterId["TableTooltip"] = "tableTooltip"; + // DPI_TableToReplace, having type string + ParameterId["TableToReplace"] = "tableToReplace"; + // DPI_TableWarningMessage, having type string + ParameterId["TableWarningMessage"] = "tableWarningMessage"; + // DPI_TableauServerDatasourceDescription, having type string + ParameterId["TableauServerDatasourceDescription"] = "tableauServerDatasourceDescription"; + // DPI_TableauServerDatasourceLastExtract, having type string + ParameterId["TableauServerDatasourceLastExtract"] = "tableauServerDatasourceLastExtract"; + // DPI_TableauServerDatasourceModified, having type string + ParameterId["TableauServerDatasourceModified"] = "tableauServerDatasourceModified"; + // DPI_TableauServerDatasourceOwner, having type string + ParameterId["TableauServerDatasourceOwner"] = "tableauServerDatasourceOwner"; + // DPI_TableauServerDatasourcePath, having type string + ParameterId["TableauServerDatasourcePath"] = "tableauServerDatasourcePath"; + // DPI_TableauServerFetchSearchQuery, having type string + ParameterId["TableauServerFetchSearchQuery"] = "tableauServerFetchSearchQuery"; + // DPI_TableauServerName, having type string + ParameterId["TableauServerName"] = "tableauServerName"; + // DPI_TableauServerProjectName, having type string + ParameterId["TableauServerProjectName"] = "tableauServerProjectName"; + // DPI_TableauServerUsername, having type string + ParameterId["TableauServerUsername"] = "tableauServerUsername"; + // DPI_TransportType, having type string + ParameterId["TransportType"] = "transportType"; + // DPI_WarehouseName, having type string + ParameterId["WarehouseName"] = "datasourceWarehouseName"; + // DPI_WorkgroupWorkbookName, having type string + ParameterId["WorkgroupWorkbookName"] = "workgroupWorkbookName"; + // DPI_AnalyticsItemTooltip, having type string + ParameterId["AnalyticsItemTooltip"] = "analyticsItemTooltip"; + // DPI_Description, having type string + ParameterId["Description"] = "description"; + // DPI_DSClassCaption, having type string + ParameterId["DSClassCaption"] = "dsClassCaption"; + // DPI_Formula, having type string + ParameterId["Formula"] = "formula"; + // DPI_MessageText, having type string + ParameterId["MessageText"] = "messageText"; + // DPI_Datasource, having type string + ParameterId["Datasource"] = "datasource"; + // DPI_DatasourceSource, having type string + ParameterId["DatasourceSource"] = "datasourceSource"; + // DPI_DatasourceTarget, having type string + ParameterId["DatasourceTarget"] = "datasourceTarget"; + // DPI_FirstDatasource, having type string + ParameterId["FirstDatasource"] = "firstDatasource"; + // DPI_NewDatasource, having type string + ParameterId["NewDatasource"] = "newDatasource"; + // DPI_ParametersDatasource, having type string + ParameterId["ParametersDatasource"] = "parametersDatasource"; + // DPI_PrimaryDatasource, having type string + ParameterId["PrimaryDatasource"] = "primaryDatasource"; + // DPI_ConnectionDatabases, having type string[] + ParameterId["ConnectionDatabases"] = "connectionDatabases"; + // DPI_ConnectionSchemas, having type string[] + ParameterId["ConnectionSchemas"] = "connectionSchemas"; + // DPI_ConnectionWarehouses, having type string[] + ParameterId["ConnectionWarehouses"] = "connectionWarehouses"; + // DPI_DSClasses, having type string[] + ParameterId["DSClasses"] = "dsClasses"; + // DPI_PossibleChoices, having type string[] + ParameterId["PossibleChoices"] = "possibleChoices"; + // DPI_StandardConnections, having type string[] + ParameterId["StandardConnections"] = "standardConnections"; + // DPI_Strings, having type string[] + ParameterId["Strings"] = "strings"; + // DPI_TableauServerProjectNames, having type string[] + ParameterId["TableauServerProjectNames"] = "tableauServerProjectNames"; + // DPI_TableCaptions, having type string[] + ParameterId["TableCaptions"] = "tableCaptions"; + // DPI_DataValues, having type object[] + ParameterId["DataValues"] = "dataValues"; + // DPI_QueryBandErrors, having type object[] + ParameterId["QueryBandErrors"] = "queryBandErrors"; + // DPI_QueryBandParameters, having type object[] + ParameterId["QueryBandParameters"] = "queryBandParameters"; + // DPI_InitialSQLParameters, having type object[] + ParameterId["InitialSQLParameters"] = "initialSqlParameters"; + // DPI_ConnectionAttributes, having type Dictionary(of string) + ParameterId["ConnectionAttributes"] = "connectionAttrs"; + // DPI_ConnectionProps, having type Dictionary(of string) + ParameterId["ConnectionProps"] = "connectionProps"; + // DPI_DisplayNameMap, having type Dictionary(of string) + ParameterId["DisplayNameMap"] = "displayNameMap"; + // DPI_LookupTable, having type Dictionary(of string) + ParameterId["LookupTable"] = "lookupTable"; + // DPI_OAuthAttrs, having type Dictionary(of string) + ParameterId["OAuthAttrs"] = "oauthAttrs"; + // DPI_StringMap, having type Dictionary(of string) + ParameterId["StringMap"] = "stringMap"; + // DPI_TableRankingMap, having type Dictionary(of string) + ParameterId["TableRankingMap"] = "tableRankingMap"; + // DPI_WDCAttributes, having type Dictionary(of string) + ParameterId["WDCAttributes"] = "wdcAttrs"; + // DPI_ConnectorAttributes, having type Dictionary(of string) + ParameterId["ConnectorAttributes"] = "connectorAttrs"; + // DPI_TableRelevanceParams, having type Dictionary(of string) + ParameterId["TableRelevanceParams"] = "tableRelevanceParams"; + // DPI_ActualParameterParameter, having type string + ParameterId["ActualParameterParameter"] = "actualParameterParameter"; + // DPI_DataColumnName, having type string + ParameterId["DataColumnName"] = "dataColumnName"; + // DPI_LHSDataColumnName, having type string + ParameterId["LHSDataColumnName"] = "lhsDataColumnName"; + // DPI_RHSDataColumnName, having type string + ParameterId["RHSDataColumnName"] = "rhsDataColumnName"; + // DPI_FullCubeName, having type string + ParameterId["FullCubeName"] = "fullCubeName"; + // DPI_FullVariableName, having type string + ParameterId["FullVariableName"] = "fullVariableName"; + // DPI_SemanticRole, having type string + ParameterId["SemanticRole"] = "semanticRole"; + // DPI_StoredProcedureName, having type string + ParameterId["StoredProcedureName"] = "storedProcName"; + // DPI_TableName, having type string + ParameterId["TableName"] = "tableName"; + // DPI_AddedTableNames, having type string[] + ParameterId["AddedTableNames"] = "addedTableNames"; + // DPI_CoalesceGroupFields, having type string[] + ParameterId["CoalesceGroupFields"] = "coalesceGroupFields"; + // DPI_QualifiedNames, having type string[] + ParameterId["QualifiedNames"] = "qualifiedNames"; + // DPI_JoinFieldAliases, having type string[] + ParameterId["JoinFieldAliases"] = "joinField_aliases"; + // DPI_JoinInfoFields, having type string[] + ParameterId["JoinInfoFields"] = "joinInfoFields"; + // DPI_PivotGroupFields, having type string[] + ParameterId["PivotGroupFields"] = "pivotGroupFields"; + // DPI_RemovedTableNames, having type string[] + ParameterId["RemovedTableNames"] = "removedTableNames"; + // DPI_StoredProcedures, having type string[] + ParameterId["StoredProcedures"] = "storedProcedures"; + // DPI_TableNames, having type string[] + ParameterId["TableNames"] = "tableNames"; + // DPI_ColumnName, having type string + ParameterId["ColumnName"] = "columnName"; + // DPI_FieldName, having type string + ParameterId["FieldName"] = "fn"; + // DPI_FieldNames, having type string[] + ParameterId["FieldNames"] = "fieldNames"; + // DPI_GoogleSheetThumbnailImage, having type string + ParameterId["GoogleSheetThumbnailImage"] = "googleSheetThumbnailImage"; + // DPI_AttrMDWPassword, having type string + ParameterId["AttrMDWPassword"] = "widgetAttrMdwPassword"; + // DPI_AttrPassword, having type string + ParameterId["AttrPassword"] = "widgetAttrPassword"; + // DPI_DatasourcePassword, having type string + ParameterId["DatasourcePassword"] = "datasourcePassword"; + // DPI_FederatedKeychain, having type string + ParameterId["FederatedKeychain"] = "federatedKeychain"; + // DPI_DataParameterID, having type string + ParameterId["DataParameterID"] = "dataParamType"; + // DPI_ConnectServerWidgetType, having type ConnectServerWidgetType + ParameterId["ConnectServerWidgetType"] = "connectServerWidgetType"; + // DPI_AuthenticationMode, having type Mode + ParameterId["AuthenticationMode"] = "authMode"; + // DPI_ReconnectAuthMode, having type ReconnectMode + ParameterId["ReconnectAuthMode"] = "reconnectAuthMode"; + // DPI_CurrentAuthOption, having type AuthOption + ParameterId["CurrentAuthOption"] = "currAuthOption"; + // DPI_AuthOptionList, having type AuthOption[] + ParameterId["AuthOptionList"] = "authOptions"; + // DPI_ConnectionSpecificationType, having type ConnectionSpecificationType + ParameterId["ConnectionSpecificationType"] = "connectionSpecificationType"; + // DPI_DataType, having type DataType + ParameterId["DataType"] = "dataType"; + // DPI_LHSDataType, having type DataType + ParameterId["LHSDataType"] = "lhsDataType"; + // DPI_RHSDataType, having type DataType + ParameterId["RHSDataType"] = "rhsDataType"; + // DPI_DefaultFieldRole, having type FieldRole + ParameterId["DefaultFieldRole"] = "defaultFieldRole"; + // DPI_FieldRole, having type FieldRole + ParameterId["FieldRole"] = "fieldRole"; + // DPI_DefaultFieldType, having type FieldType + ParameterId["DefaultFieldType"] = "defaultFieldType"; + // DPI_FieldType, having type FieldType + ParameterId["FieldType"] = "fieldType"; + // DPI_FieldTypeList, having type FieldType[] + ParameterId["FieldTypeList"] = "fieldTypeList"; + // DPI_FieldTypeListDetail, having type FieldType[] + ParameterId["FieldTypeListDetail"] = "fieldTypeListDetail"; + // DPI_AggType, having type AggType + ParameterId["AggType"] = "aggregation"; + // DPI_DefaultAggType, having type AggType + ParameterId["DefaultAggType"] = "defaultAggregation"; + // DPI_ForecastAgg, having type AggType + ParameterId["ForecastAgg"] = "forecastSummarizeTo"; + // DPI_ForecastAutoAgg, having type AggType + ParameterId["ForecastAutoAgg"] = "forecastAutoSummarizeTo"; + // DPI_ForecastAutoRangeUnits, having type AggType + ParameterId["ForecastAutoRangeUnits"] = "forecastAutoRangeUnits"; + // DPI_ForecastEndOfRangeUnits, having type AggType + ParameterId["ForecastEndOfRangeUnits"] = "forecastEndOfRangeUnits"; + // DPI_ForecastNextRangeUnits, having type AggType + ParameterId["ForecastNextRangeUnits"] = "forecastNextRangeUnits"; + // DPI_SourceAgg, having type AggType + ParameterId["SourceAgg"] = "sourceAggregation"; + // DPI_TargetAgg, having type AggType + ParameterId["TargetAgg"] = "targetAggregation"; + // DPI_AggregateByAggTypes, having type AggType[] + ParameterId["AggregateByAggTypes"] = "aggregateByAggTypes"; + // DPI_AggregationValues, having type AggType[] + ParameterId["AggregationValues"] = "aggregationValues"; + // DPI_SortAggValues, having type AggType[] + ParameterId["SortAggValues"] = "sortAggValues"; + // DPI_ColumnClass, having type ColumnClass + ParameterId["ColumnClass"] = "columnClass"; + // DPI_DatePeriodType, having type DatePeriodType + ParameterId["DatePeriodType"] = "datePeriodType"; + // DPI_ConnectionWidgetType, having type ConnectionWidgetType + ParameterId["ConnectionWidgetType"] = "connectionWidgetType"; + // DPI_TablePillIcon, having type TablePillIcon + ParameterId["TablePillIcon"] = "tablePillIconType"; + // DPI_EnumeratedEntityType, having type EntityType + ParameterId["EnumeratedEntityType"] = "enumeratedEntityType"; + // DPI_PickEntitySearchType, having type PickEntitySearchType + ParameterId["PickEntitySearchType"] = "entitySearchType"; + // DPI_ExpressionOp, having type Op + ParameterId["ExpressionOp"] = "expressionOp"; + // DPI_ExpressionOperatorCaption, having type ExpressionOperatorCaptionPresModel + ParameterId["ExpressionOperatorCaption"] = "expressionOperatorCaption"; + // DPI_RelationalExperessionOps, having type ExpressionOperatorCaptionPresModel[] + ParameterId["RelationalExperessionOps"] = "relationalExpressionOps"; + // DPI_HierarchyExpressionOps, having type ExpressionOperatorCaptionPresModel[] + ParameterId["HierarchyExpressionOps"] = "hierarchyExpressionOps"; + // DPI_DefaultSortDirection, having type SortDirection + ParameterId["DefaultSortDirection"] = "defSortOrder"; + // DPI_SortDirection, having type SortDirection + ParameterId["SortDirection"] = "sortOrder"; + // DPI_SortDirectionValues, having type SortDirection[] + ParameterId["SortDirectionValues"] = "sortDirectionValues"; + // DPI_CubeMetadataCategory, having type CubeMetadataCategory + ParameterId["CubeMetadataCategory"] = "cubeMetadataCategory"; + // DPI_CubeMetadataCategories, having type CubeMetadataCategory[] + ParameterId["CubeMetadataCategories"] = "cubeMetadataCategories"; + // DPI_GoogleBasicInfoType, having type GoogleBasicInfoType + ParameterId["GoogleBasicInfoType"] = "googleBasicInfoType"; + // DPI_GoogleAnalyticsDateRangeOptionType, having type DateRange + ParameterId["GoogleAnalyticsDateRangeOptionType"] = "googleAnalyticsDateRangeOptionType"; + // DPI_TableCalcType, having type TableCalcType + ParameterId["TableCalcType"] = "tableCalcType"; + // DPI_TableCalcTypeValues, having type TableCalcType[] + ParameterId["TableCalcTypeValues"] = "tableCalcTypeValues"; + // DPI_RelativeAddress, having type RelativeAddress + ParameterId["RelativeAddress"] = "relativeAddress"; + // DPI_RelativeValues, having type RelativeAddress[] + ParameterId["RelativeValues"] = "relativeValues"; + // DPI_OrderingType, having type OrderingType + ParameterId["OrderingType"] = "orderingType"; + // DPI_OrderingTypeValues, having type OrderingType[] + ParameterId["OrderingTypeValues"] = "orderingTypeValues"; + // DPI_CategoricalBinItemType, having type CategoricalBinItemType + ParameterId["CategoricalBinItemType"] = "categoricalBinItemType"; + // DPI_AuthenticationInfos, having type AuthenticationSettingsPresModel + ParameterId["AuthenticationInfos"] = "authInfo"; + // DPI_ConnectionWidgetParams, having type ConnectionParamsPresModel + ParameterId["ConnectionWidgetParams"] = "widgetConnectionParams"; + // DPI_ConnectionSettings, having type ConnectionSettingsPresModel + ParameterId["ConnectionSettings"] = "connectionSettings"; + // DPI_ReconnectAuthenticationSettings, having type AuthenticationSettingsPresModel + ParameterId["ReconnectAuthenticationSettings"] = "reconnectAuthSettings"; + // DPI_CubeConnectionSpecificationOption, having type CubeConnectionSpecificationOptionPresModel + ParameterId["CubeConnectionSpecificationOption"] = "cubeConnectionSpecificationOption"; + // DPI_CubeConnectionSpecificationOptions, having type CubeConnectionSpecificationOptionPresModel[] + ParameterId["CubeConnectionSpecificationOptions"] = "cubeConnectionSpecificationOptions"; + // DPI_CubeConnectionSpecification, having type CubeConnectionSpecificationPresModel + ParameterId["CubeConnectionSpecification"] = "cubeConnectionSpecification"; + // DPI_ConnectionSettingsOption, having type ConnectionSettingsOptionPresModel + ParameterId["ConnectionSettingsOption"] = "connectionSettingsOption"; + // DPI_ConnectionSettingsOptions, having type ConnectionSettingsOptionPresModel[] + ParameterId["ConnectionSettingsOptions"] = "connectionSettingsOptions"; + // DPI_StringCollation, having type StringCollationPresModel + ParameterId["StringCollation"] = "stringCollation"; + // DPI_DatabaseEnumeration, having type DatabaseEnumerationPresModel + ParameterId["DatabaseEnumeration"] = "databaseEnumeration"; + // DPI_SchemaEnumeration, having type SchemaEnumerationPresModel + ParameterId["SchemaEnumeration"] = "schemaEnumeration"; + // DPI_StandardConnectionEnumeration, having type StandardConnectionEnumerationPresModel + ParameterId["StandardConnectionEnumeration"] = "standardConnectionEnumeration"; + // DPI_StoredProcedureEnumeration, having type StoredProcedureEnumerationPresModel + ParameterId["StoredProcedureEnumeration"] = "storedProcedureEnumeration"; + // DPI_TableEnumeration, having type TableEnumerationPresModel + ParameterId["TableEnumeration"] = "tableEnumeration"; + // DPI_WarehouseEnumeration, having type WarehouseEnumerationPresModel + ParameterId["WarehouseEnumeration"] = "warehouseEnumeration"; + // DPI_SlowMetadataSchemaList, having type SlowMetadataSchemaListPresModel + ParameterId["SlowMetadataSchemaList"] = "slowMetadataSchemaList"; + // DPI_SlowMetadataTableList, having type SlowMetadataTableListPresModel + ParameterId["SlowMetadataTableList"] = "slowMetadataTableList"; + // DPI_CubeCatalog, having type CubeCatalogPresModel + ParameterId["CubeCatalog"] = "cubeCatalog"; + // DPI_CubeCatalogs, having type CubeCatalogPresModel[] + ParameterId["CubeCatalogs"] = "cubeCatalogs"; + // DPI_CubeCatalogEnumeration, having type CubeCatalogEnumerationPresModel + ParameterId["CubeCatalogEnumeration"] = "cubeCatalogEnumeration"; + // DPI_Cube, having type CubePresModel + ParameterId["Cube"] = "cube"; + // DPI_Cubes, having type CubePresModel[] + ParameterId["Cubes"] = "cubes"; + // DPI_CubeEnumeration, having type CubeEnumerationPresModel + ParameterId["CubeEnumeration"] = "cubeEnumeration"; + // DPI_GoogleAnalyticsBasicItem, having type GoogleAnalyticsBasicItemPresModel + ParameterId["GoogleAnalyticsBasicItem"] = "googleAnalyticsBasicItem"; + // DPI_GAMeasureSets, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GAMeasureSets"] = "gaMeasureSets"; + // DPI_GoogleAnalyticsViews, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GoogleAnalyticsViews"] = "googleAnalyticsViews"; + // DPI_GoogleAnalyticsProperties, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GoogleAnalyticsProperties"] = "googleAnalyticsProperties"; + // DPI_GoogleBasicInfoItems, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GoogleBasicInfoItems"] = "googleAnalyticsAccounts"; + // DPI_GoogleAnalyticsComplexItem, having type GoogleAnalyticsComplexItemPresModel + ParameterId["GoogleAnalyticsComplexItem"] = "googleAnalyticsComplexItem"; + // DPI_GoogleAnalyticsPossibleDimensions, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsPossibleDimensions"] = "googleAnalyticsPossibleDimensions"; + // DPI_GoogleAnalyticsPossibleMeasures, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsPossibleMeasures"] = "googleAnalyticsPossibleMeasures"; + // DPI_GoogleAnalyticsPossibleSegments, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsPossibleSegments"] = "googleAnalyticsPossibleSegments"; + // DPI_GoogleAnalyticsSelectedDimensions, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsSelectedDimensions"] = "googleAnalyticsSelectedDimensions"; + // DPI_GoogleAnalyticsSelectedMeasures, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsSelectedMeasures"] = "googleAnalyticsSelectedMeasures"; + // DPI_GoogleAnalyticsDateRangeOption, having type GoogleAnalyticsDateRangeOptionPresModel + ParameterId["GoogleAnalyticsDateRangeOption"] = "googleAnalyticsDateRangeOption"; + // DPI_GoogleAnalyticsDateRangeOptions, having type GoogleAnalyticsDateRangeOptionPresModel[] + ParameterId["GoogleAnalyticsDateRangeOptions"] = "googleAnalyticsDateRangeOptions"; + // DPI_GoogleAnalyticsEndDate, having type GoogleAnalyticsDatePresModel + ParameterId["GoogleAnalyticsEndDate"] = "googleAnalyticsEndDate"; + // DPI_GoogleAnalyticsStartDate, having type GoogleAnalyticsDatePresModel + ParameterId["GoogleAnalyticsStartDate"] = "googleAnalyticsStartDate"; + // DPI_GoogleAnalyticsDateRange, having type GoogleAnalyticsDateRangePresModel + ParameterId["GoogleAnalyticsDateRange"] = "googleAnalyticsDateRange"; + // DPI_GoogleAnalyticsQueryPartitioning, having type GoogleAnalyticsQueryPartitioningPresModel + ParameterId["GoogleAnalyticsQueryPartitioning"] = "googleAnalyticsQueryPartitioning"; + // DPI_GAConnectionDescription, having type GoogleAnalyticsConnectionDescriptionPresModel + ParameterId["GAConnectionDescription"] = "gaConnectionDescription"; + // DPI_GoogleSheetItem, having type GoogleSheetItemPresModel + ParameterId["GoogleSheetItem"] = "googleSheetItem"; + // DPI_GoogleSheetItems, having type GoogleSheetItemPresModel[] + ParameterId["GoogleSheetItems"] = "googleSheetItems"; + // DPI_GoogleSheetsListPresModel, having type GoogleSheetsListPresModel + ParameterId["GoogleSheetsListPresModel"] = "googleSheetsList"; + // DPI_GoogleSheetPanePresModel, having type GoogleSheetPanePresModel + ParameterId["GoogleSheetPanePresModel"] = "googleSheetPane"; + // DPI_TableauServerConnectionDescription, having type TableauServerConnectionDescriptionPresModel + ParameterId["TableauServerConnectionDescription"] = "tableauServerConnectionDescription"; + // DPI_InitialSQLPresModel, having type InitialSQLPresModel + ParameterId["InitialSQLPresModel"] = "initialSqlPresModel"; + // DPI_QueryBandingPresModel, having type QueryBandingPresModel + ParameterId["QueryBandingPresModel"] = "queryBandingPresModel"; + // DPI_SlowMetadata, having type SlowMetadataPresModel + ParameterId["SlowMetadata"] = "slowMetadata"; + // DPI_SlowMetadataSchemaSearchPresModel, having type SlowMetadataSearchPresModel + ParameterId["SlowMetadataSchemaSearchPresModel"] = "slowMetadataSchemaSearch"; + // DPI_SlowMetadataTableSearchPresModel, having type SlowMetadataSearchPresModel + ParameterId["SlowMetadataTableSearchPresModel"] = "slowMetadataTableSearch"; + // DPI_TableauServerProjectsPresModel, having type TableauServerProjectsPresModel + ParameterId["TableauServerProjectsPresModel"] = "tableauServerProjectsPresmodel"; + // DPI_TableauServerDataSourcePresModel, having type TableauServerDataSourcePresModel + ParameterId["TableauServerDataSourcePresModel"] = "tableauServerDataSourcePresmodel"; + // DPI_TableauServerDataSourcePresModels, having type TableauServerDataSourcePresModel[] + ParameterId["TableauServerDataSourcePresModels"] = "tableauServerDataSourcePresmodels"; + // DPI_TableauServerDataSourcesPresModel, having type TableauServerDataSourcesPresModel + ParameterId["TableauServerDataSourcesPresModel"] = "tableauServerDataSourcesPresmodel"; + // DPI_TableauServerDataPresModel, having type TableauServerDataPresModel + ParameterId["TableauServerDataPresModel"] = "tableauServerDataPresmodel"; + // DPI_StoredProcedureParameterPresModel, having type StoredProcedureParameterPresModel + ParameterId["StoredProcedureParameterPresModel"] = "storedProcedureParameter"; + // DPI_StoredProcedureParametersPresModel, having type StoredProcedureParameterPresModel[] + ParameterId["StoredProcedureParametersPresModel"] = "storedProcedureParameters"; + // DPI_CustomSQLInfo, having type CustomSQLInfoPresModel + ParameterId["CustomSQLInfo"] = "customSqlInfo"; + // DPI_ConnectionTableInfo, having type ConnectionTableInfoPresModel + ParameterId["ConnectionTableInfo"] = "connectionTableInfo"; + // DPI_TableInfos, having type ConnectionTableInfoPresModel[] + ParameterId["TableInfos"] = "tableInfos"; + // DPI_ConnectionDescription, having type ConnectionDescriptionPresModel + ParameterId["ConnectionDescription"] = "connectionDescription"; + // DPI_ConnectionDescriptionSummary, having type ConnectionDescriptionSummaryPresModel + ParameterId["ConnectionDescriptionSummary"] = "connectionDescriptionSummary"; + // DPI_ConnectionDescriptionSummaries, having type ConnectionDescriptionSummaryPresModel[] + ParameterId["ConnectionDescriptionSummaries"] = "connectionDescriptionSummaries"; + // DPI_DataSourceParserValidationMode, having type DataSourceParserValidationMode + ParameterId["DataSourceParserValidationMode"] = "dataSourceParserValidationMode"; + // DPI_OAuthCredentialTypeInfo, having type OAuthCredentialTypeInfoPresModel + ParameterId["OAuthCredentialTypeInfo"] = "oauthCredentialTypeInfo"; + // DPI_OAuthCredentialTypeInfos, having type OAuthCredentialTypeInfoPresModel[] + ParameterId["OAuthCredentialTypeInfos"] = "oauthCredentialTypeInfos"; + // DPI_OAuthSettings, having type OAuthSettingsPresModel + ParameterId["OAuthSettings"] = "oauthSettings"; + // DPI_CredentialTypePropertiesFlag, having type CredentialTypePropertiesFlag + ParameterId["CredentialTypePropertiesFlag"] = "credentialTypePropertiesFlag"; + // DPI_CredentialTypePropertiesFlags, having type CredentialTypePropertiesFlag[] + ParameterId["CredentialTypePropertiesFlags"] = "credentialTypePropertiesFlags"; + // DPI_ConnectionTypeEnum, having type ConnectionTypeEnum + ParameterId["ConnectionTypeEnum"] = "connectionTypeEnum"; + // DPI_ConnectorType, having type ConnectorType + ParameterId["ConnectorType"] = "connectorType"; + // DPI_PdfPagePicker, having type PdfPagePickerPresModel + ParameterId["PdfPagePicker"] = "pdfPagePicker"; + // DPI_ActivateNew, having type bool + ParameterId["ActivateNew"] = "activateNew"; + // DPI_AddActions, having type bool + ParameterId["AddActions"] = "addActions"; + // DPI_AddAsFloating, having type bool + ParameterId["AddAsFloating"] = "addAsFloating"; + // DPI_AddColorDictionary, having type bool + ParameterId["AddColorDictionary"] = "addColorDictionary"; + // DPI_AddDroplines, having type bool + ParameterId["AddDroplines"] = "addDroplines"; + // DPI_AddHeaders, having type bool + ParameterId["AddHeaders"] = "addHeaders"; + // DPI_AddHighlighting, having type bool + ParameterId["AddHighlighting"] = "addHighlighting"; + // DPI_AddImageDictionary, having type bool + ParameterId["AddImageDictionary"] = "addImageDictionary"; + // DPI_AddMarkLabels, having type bool + ParameterId["AddMarkLabels"] = "addMarkLabels"; + // DPI_AddPages, having type bool + ParameterId["AddPages"] = "addPages"; + // DPI_AddSelection, having type bool + ParameterId["AddSelection"] = "addSelection"; + // DPI_AddToFolder, having type bool + ParameterId["AddToFolder"] = "addToFolder"; + // DPI_AddVizData, having type bool + ParameterId["AddVizData"] = "addVizData"; + // DPI_AlertConditionMet, having type bool + ParameterId["AlertConditionMet"] = "alertConditionMet"; + // DPI_AllFields, having type bool + ParameterId["AllFields"] = "allFields"; + // DPI_AllOnEmpty, having type bool + ParameterId["AllOnEmpty"] = "allOnEmpty"; + // DPI_AllPages, having type bool + ParameterId["AllPages"] = "includeAllPages"; + // DPI_AllowPreviewSizeChange, having type bool + ParameterId["AllowPreviewSizeChange"] = "allowPreviewSizeChange"; + // DPI_AllSelectedIsEffectivelyRangeTypeAll, having type bool + ParameterId["AllSelectedIsEffectivelyRangeTypeAll"] = "allSelectedIsEffectivelyRangeTypeAll"; + // DPI_AllStoryPoints, having type bool + ParameterId["AllStoryPoints"] = "allStorypoints"; + // DPI_AllowAllRange, having type bool + ParameterId["AllowAllRange"] = "allowAllRange"; + // DPI_AllowCreatingNewParameters, having type bool + ParameterId["AllowCreatingNewParameters"] = "allowCreatingNewParameters"; + // DPI_AllowContinuousDate, having type bool + ParameterId["AllowContinuousDate"] = "allowContinuousDate"; + // DPI_AllowDuplicateFieldDropOnFilterShelf, having type bool + ParameterId["AllowDuplicateFieldDropOnFilterShelf"] = "allowDuplicateFieldDropOnFilterShelf"; + // DPI_AllowFilterPreset, having type bool + ParameterId["AllowFilterPreset"] = "allowFilterPreset"; + // DPI_AllowHoverActions, having type bool + ParameterId["AllowHoverActions"] = "allowHoverActions"; + // DPI_AllowHyphenation, having type bool + ParameterId["AllowHyphenation"] = "allowHyphenation"; + // DPI_AllowJoinOnCalc, having type bool + ParameterId["AllowJoinOnCalc"] = "allowJoinOnCalc"; + // DPI_AllowManualRange, having type bool + ParameterId["AllowManualRange"] = "allowManualRange"; + // DPI_AllowMapping, having type bool + ParameterId["AllowMapping"] = "allowMapping"; + // DPI_AllowMultiSelect, having type bool + ParameterId["AllowMultiSelect"] = "allowMultiSelect"; + // DPI_AllowNull, having type bool + ParameterId["AllowNull"] = "allowNull"; + // DPI_AllowPanZoom, having type bool + ParameterId["AllowPanZoom"] = "allowPanZoom"; + // DPI_AllowPatternBased, having type bool + ParameterId["AllowPatternBased"] = "allowPatternBasedUnion"; + // DPI_AllowPromptText, having type bool + ParameterId["AllowPromptText"] = "allowPromptText"; + // DPI_AllowSaveDataSource, having type bool + ParameterId["AllowSaveDataSource"] = "allowSaveDataSource"; + // DPI_AllowWholeDate, having type bool + ParameterId["AllowWholeDate"] = "allowWholeDate"; + // DPI_AllowWork, having type bool + ParameterId["AllowWork"] = "allowWork"; + // DPI_AllowWrap, having type bool + ParameterId["AllowWrap"] = "allowWrap"; + // DPI_AppIs32Bit, having type bool + ParameterId["AppIs32Bit"] = "appIs32Bit"; + // DPI_AppIs64Bit, having type bool + ParameterId["AppIs64Bit"] = "appIs64Bit"; + // DPI_AppIsBeta, having type bool + ParameterId["AppIsBeta"] = "appIsBeta"; + // DPI_AppIsOEM, having type bool + ParameterId["AppIsOEM"] = "appIsOem"; + // DPI_AppendTde, having type bool + ParameterId["AppendTde"] = "appendTde"; + // DPI_ApplyColors, having type bool + ParameterId["ApplyColors"] = "applyColors"; + // DPI_ApplyNewSelection, having type bool + ParameterId["ApplyNewSelection"] = "applyNewSelection"; + // DPI_AreConfidenceBandsValid, having type bool + ParameterId["AreConfidenceBandsValid"] = "areConfidenceBandsValid"; + // DPI_AreDataSourceFiltersVisible, having type bool + ParameterId["AreDataSourceFiltersVisible"] = "areDataSourceFiltersVisible"; + // DPI_AreExtractFiltersEnabled, having type bool + ParameterId["AreExtractFiltersEnabled"] = "areExtractFiltersEnabled"; + // DPI_AreTotalsUsed, having type bool + ParameterId["AreTotalsUsed"] = "areTotalsUsed"; + // DPI_AtTheLevelFieldIsInvalid, having type bool + ParameterId["AtTheLevelFieldIsInvalid"] = "atTheLevelFieldIsInvalid"; + // DPI_AutoURL, having type bool + ParameterId["AutoURL"] = "autoUrl"; + // DPI_AutoUpdate, having type bool + ParameterId["AutoUpdate"] = "autoUpdate"; + // DPI_BackingSheetIsDashboard, having type bool + ParameterId["BackingSheetIsDashboard"] = "isBackingSheetDashboard"; + // DPI_BeginDataSourcePresModelUpdate, having type bool + ParameterId["BeginDataSourcePresModelUpdate"] = "beginDataSourcePresModelUpdate"; + // DPI_AggregateDrillUp, having type bool + ParameterId["AggregateDrillUp"] = "boolAggregateDrillUp"; + // DPI_BoxplotMarkExclusion, having type bool + ParameterId["BoxplotMarkExclusion"] = "boxplotMarkExclusion"; + // DPI_BreakPageOnPane, having type bool + ParameterId["BreakPageOnPane"] = "breakPageOnPane"; + // DPI_BrushLegends, having type bool + ParameterId["BrushLegends"] = "brushLegends"; + // DPI_CachePresModels, having type bool + ParameterId["CachePresModels"] = "cachePresModels"; + // DPI_CanAddConnections, having type bool + ParameterId["CanAddConnections"] = "canAddConnections"; + // DPI_SortPillCanBeDragged, having type bool + ParameterId["SortPillCanBeDragged"] = "sortPillCanBeDragged"; + // DPI_CanAddTable, having type bool + ParameterId["CanAddTable"] = "canAddTable"; + // DPI_CanAddToDrillPath, having type bool + ParameterId["CanAddToDrillPath"] = "canAddToDrillPath"; + // DPI_CanAnalyzeData, having type bool + ParameterId["CanAnalyzeData"] = "canAnalyzeData"; + // DPI_CanChangeDataType, having type bool + ParameterId["CanChangeDataType"] = "canChangeDataType"; + // DPI_CanChangeSemanticRole, having type bool + ParameterId["CanChangeSemanticRole"] = "canChangeSemanticRole"; + // DPI_CanDerive, having type bool + ParameterId["CanDerive"] = "canDerive"; + // DPI_CanDrop, having type bool + ParameterId["CanDrop"] = "canDrop"; + // DPI_CanEdit, having type bool + ParameterId["CanEdit"] = "canEdit"; + // DPI_CanEditLegendColor, having type bool + ParameterId["CanEditLegendColor"] = "canEditLegendColor"; + // DPI_CanEnableCenter, having type bool + ParameterId["CanEnableCenter"] = "canEnableCenter"; + // DPI_CanShowAdvancedSettings, having type bool + ParameterId["CanShowAdvancedSettings"] = "canShowAdvancedSettings"; + // DPI_CanEnableFilterStateButton, having type bool + ParameterId["CanEnableFilterStateButton"] = "canEnableFilterStateButton"; + // DPI_CanFloat, having type bool + ParameterId["CanFloat"] = "canFloat"; + // DPI_CanHaveTitle, having type bool + ParameterId["CanHaveTitle"] = "canHaveTitle"; + // DPI_CanIgnoreUpdate, having type bool + ParameterId["CanIgnoreUpdate"] = "canIgnoreUpdate"; + // DPI_CanLogTransformExplanatoryAxis, having type bool + ParameterId["CanLogTransformExplanatoryAxis"] = "canLogTransformExplanatoryAxis"; + // DPI_CanNavigateBack, having type bool + ParameterId["CanNavigateBack"] = "canNavigateBack"; + // DPI_CanNavigateForward, having type bool + ParameterId["CanNavigateForward"] = "canNavigateForward"; + // DPI_CanScrollX, having type bool + ParameterId["CanScrollX"] = "canScrollX"; + // DPI_CanScrollY, having type bool + ParameterId["CanScrollY"] = "canScrollY"; + // DPI_CanSetDomain, having type bool + ParameterId["CanSetDomain"] = "canSetDomain"; + // DPI_CanSetMapUnit, having type bool + ParameterId["CanSetMapUnit"] = "canSetMapUnit"; + // DPI_CanShowApplyButton, having type bool + ParameterId["CanShowApplyButton"] = "canShowApplyButton"; + // DPI_CanShowFilterStateButton, having type bool + ParameterId["CanShowFilterStateButton"] = "canShowFilterStateButton"; + // DPI_CanShowMoreFewerButton, having type bool + ParameterId["CanShowMoreFewerButton"] = "canShowMoreFewerButton"; + // DPI_CanShowSyncClientOptions, having type bool + ParameterId["CanShowSyncClientOptions"] = "canShowSyncClientOptions"; + // DPI_CanSort, having type bool + ParameterId["CanSort"] = "canSort"; + // DPI_CanSortOrdinally, having type bool + ParameterId["CanSortOrdinally"] = "canSortOrdinal"; + // DPI_CanToggleAutomaticDrill, having type bool + ParameterId["CanToggleAutomaticDrill"] = "canToggleAutomaticDrill"; + // DPI_CanToggleGeographicSearch, having type bool + ParameterId["CanToggleGeographicSearch"] = "canToggleGeographicSearch"; + // DPI_CanToggleMapScale, having type bool + ParameterId["CanToggleMapScale"] = "canToggleMapScale"; + // DPI_CanUseFullColorRange, having type bool + ParameterId["CanUseFullColorRange"] = "canUseFullColorRange"; + // DPI_CanUseMultipleHierarchies, having type bool + ParameterId["CanUseMultipleHierarchies"] = "canUseMultipleHierarchies"; + // DPI_CenterHorizontally, having type bool + ParameterId["CenterHorizontally"] = "centerHorizontally"; + // DPI_CenterVertically, having type bool + ParameterId["CenterVertically"] = "centerVertically"; + // DPI_ChangeAllFields, having type bool + ParameterId["ChangeAllFields"] = "changeAllFields"; + // DPI_Changed, having type bool + ParameterId["Changed"] = "changed"; + // DPI_ClearBrushing, having type bool + ParameterId["ClearBrushing"] = "clearBrushing"; + // DPI_ClearSort, having type bool + ParameterId["ClearSort"] = "clearSort"; + // DPI_ClearView, having type bool + ParameterId["ClearView"] = "clearView"; + // DPI_Collapsed, having type bool + ParameterId["Collapsed"] = "collapsed"; + // DPI_ConsolidateInCommit, having type bool + ParameterId["ConsolidateInCommit"] = "consolidateInCommit"; + // DPI_ClusterEnableScaledCheckbox, having type bool + ParameterId["ClusterEnableScaledCheckbox"] = "clusterEnableScaledCheckbox"; + // DPI_CommitPillFinished, having type bool + ParameterId["CommitPillFinished"] = "commitPillFinished"; + // DPI_CompressArrays, having type bool + ParameterId["CompressArrays"] = "compressArrays"; + // DPI_ComputeCompoundedRate, having type bool + ParameterId["ComputeCompoundedRate"] = "computeCompoundedRate"; + // DPI_ConfidenceIntervalAllowed, having type bool + ParameterId["ConfidenceIntervalAllowed"] = "confidenceIntervalAllowed"; + // DPI_ConfigIsDesktopStandard, having type bool + ParameterId["ConfigIsDesktopStandard"] = "configIsDesktopStandard"; + // DPI_ConfigIsInteractor, having type bool + ParameterId["ConfigIsInteractor"] = "configIsInteractor"; + // DPI_ConfigIsPublic, having type bool + ParameterId["ConfigIsPublic"] = "configIsPublic"; + // DPI_ConfigIsReader, having type bool + ParameterId["ConfigIsReader"] = "configIsReader"; + // DPI_ContainsQuant, having type bool + ParameterId["ContainsQuant"] = "containsQuant"; + // DPI_ContainsValidDatasources, having type bool + ParameterId["ContainsValidDatasources"] = "containsValidDatasources"; + // DPI_ControllerMissing, having type bool + ParameterId["ControllerMissing"] = "controllerMissing"; + // DPI_CreateExtractForPublish, having type bool + ParameterId["CreateExtractForPublish"] = "createExtractForPublish"; + // DPI_CrossTab, having type bool + ParameterId["CrossTab"] = "crossTab"; + // DPI_CullLabels, having type bool + ParameterId["CullLabels"] = "cullLabels"; + // DPI_CurrentCustViewIdFlag, having type bool + ParameterId["CurrentCustViewIdFlag"] = "isCurrentCustViewIdValid"; + // DPI_DashboardEnableSnap, having type bool + ParameterId["DashboardEnableSnap"] = "dashboardEnableSnap"; + // DPI_DashboardShowGrid, having type bool + ParameterId["DashboardShowGrid"] = "dashboardShowGrid"; + // DPI_DataGridSortOrder, having type bool + ParameterId["DataGridSortOrder"] = "datagridSortOrder"; + // DPI_DeleteExtract, having type bool + ParameterId["DeleteExtract"] = "deleteExtract"; + // DPI_DeleteOnlySpecifiedSelection, having type bool + ParameterId["DeleteOnlySpecifiedSelection"] = "deleteOnlySpecifiedSelection"; + // DPI_DeleteOrphans, having type bool + ParameterId["DeleteOrphans"] = "deleteOrphans"; + // DPI_DimensionIsEffectivelyEmpty, having type bool + ParameterId["DimensionIsEffectivelyEmpty"] = "dimensionIsEffectivelyEmpty"; + // DPI_DisabledDataConnectionClassNames, having type bool + ParameterId["DisabledDataConnectionClassNames"] = "disabledDataConnectionClassNames"; + // DPI_DisablePresModelHandler, having type bool + ParameterId["DisablePresModelHandler"] = "disablePresModelHandler"; + // DPI_DisplayDate, having type bool + ParameterId["DisplayDate"] = "displayDate"; + // DPI_DisplayTime, having type bool + ParameterId["DisplayTime"] = "displayTime"; + // DPI_DoDropUIAction, having type bool + ParameterId["DoDropUIAction"] = "doDropUiAction"; + // DPI_DoMerge, having type bool + ParameterId["DoMerge"] = "doMerge"; + // DPI_DoPreDropUIAction, having type bool + ParameterId["DoPreDropUIAction"] = "doPreDropUiAction"; + // DPI_DoQuery, having type bool + ParameterId["DoQuery"] = "doQuery"; + // DPI_DragHorz, having type bool + ParameterId["DragHorz"] = "dragHorz"; + // DPI_DrillDown, having type bool + ParameterId["DrillDown"] = "drillDown"; + // DPI_DropToXAxis, having type bool + ParameterId["DropToXAxis"] = "dropToXAxis"; + // DPI_DropToYAxis, having type bool + ParameterId["DropToYAxis"] = "dropToYAxis"; + // DPI_DropUnnamedFields, having type bool + ParameterId["DropUnnamedFields"] = "dropUnnamedFields"; + // DPI_EditExisting, having type bool + ParameterId["EditExisting"] = "editExisting"; + // DPI_EditingConnection, having type bool + ParameterId["EditingConnection"] = "editingConnection"; + // DPI_EmbedCredentials, having type bool + ParameterId["EmbedCredentials"] = "embedCredentials"; + // DPI_EmbedOAuthCredential, having type bool + ParameterId["EmbedOAuthCredential"] = "embedOauthCredentials"; + // DPI_EmptyHighlightFogAll, having type bool + ParameterId["EmptyHighlightFogAll"] = "emptyHighlightFogAll"; + // DPI_EnableAlphabeticSort, having type bool + ParameterId["EnableAlphabeticSort"] = "enableAlphabeticSort"; + // DPI_EnableAutomaticDrill, having type bool + ParameterId["EnableAutomaticDrill"] = "enableAutomaticDrill"; + // DPI_EnableConfidenceBands, having type bool + ParameterId["EnableConfidenceBands"] = "enableConfidenceBands"; + // DPI_EnableDataOrderSort, having type bool + ParameterId["EnableDataOrderSort"] = "enableDataOrderSort"; + // DPI_EnableFieldSort, having type bool + ParameterId["EnableFieldSort"] = "enableFieldSort"; + // DPI_EnableInstantAnalytics, having type bool + ParameterId["EnableInstantAnalytics"] = "enableInstantAnalytics"; + // DPI_EnableLines, having type bool + ParameterId["EnableLines"] = "enableLines"; + // DPI_EnableManualSort, having type bool + ParameterId["EnableManualSort"] = "enableManualSort"; + // DPI_EnableMarks, having type bool + ParameterId["EnableMarks"] = "enableMarks"; + // DPI_EnableMultipleSelection, having type bool + ParameterId["EnableMultipleSelection"] = "enableMultipleSelection"; + // DPI_EnablePrefetching, having type bool + ParameterId["EnablePrefetching"] = "enablePrefetching"; + // DPI_EnableTableCalcDensification, having type bool + ParameterId["EnableTableCalcDensification"] = "enableTableCalcDensification"; + // DPI_EnableTooltips, having type bool + ParameterId["EnableTooltips"] = "enableTooltips"; + // DPI_EndDataSourcePresModelUpdate, having type bool + ParameterId["EndDataSourcePresModelUpdate"] = "endDataSourcePresModelUpdate"; + // DPI_EstimateNulls, having type bool + ParameterId["EstimateNulls"] = "estimateNulls"; + // DPI_Exclude, having type bool + ParameterId["Exclude"] = "exclude"; + // DPI_ExcludeColor, having type bool + ParameterId["ExcludeColor"] = "excludeColor"; + // DPI_ExcludeCubeDenorm, having type bool + ParameterId["ExcludeCubeDenorm"] = "excludeCubeDenorm"; + // DPI_ExcludeInterceptEnabled, having type bool + ParameterId["ExcludeInterceptEnabled"] = "excludeInterceptEnabled"; + // DPI_ExcludeLocalFunctions, having type bool + ParameterId["ExcludeLocalFunctions"] = "excludeLocalFunctions"; + // DPI_ExportDashboardImageFromSheet, having type bool + ParameterId["ExportDashboardImageFromSheet"] = "exportImageSheetAsDashboard"; + // DPI_ExtSvcConfigIsAuthEnabled, having type bool + ParameterId["ExtSvcConfigIsAuthEnabled"] = "extSvcConfigIsAuthEnabled"; + // DPI_ExtractFullRefresh, having type bool + ParameterId["ExtractFullRefresh"] = "extractFullRefresh"; + // DPI_ExtractNeedsRefresh, having type bool + ParameterId["ExtractNeedsRefresh"] = "extractNeedsRefresh"; + // DPI_ExtractPending, having type bool + ParameterId["ExtractPending"] = "extractPending"; + // DPI_ExtractSelected, having type bool + ParameterId["ExtractSelected"] = "extractSelected"; + // DPI_FederatableOnly, having type bool + ParameterId["FederatableOnly"] = "federatableOnly"; + // DPI_FieldSortOrder, having type bool + ParameterId["FieldSortOrder"] = "fieldSortOrder"; + // DPI_FieldSupportsContains, having type bool + ParameterId["FieldSupportsContains"] = "fieldSupportsContains"; + // DPI_FieldSupportsEndsWith, having type bool + ParameterId["FieldSupportsEndsWith"] = "fieldSupportsEndsWith"; + // DPI_FieldSupportsStartsWith, having type bool + ParameterId["FieldSupportsStartsWith"] = "fieldSupportsStartsWith"; + // DPI_FillAbove, having type bool + ParameterId["FillAbove"] = "fillAbove"; + // DPI_FillBelow, having type bool + ParameterId["FillBelow"] = "fillBelow"; + // DPI_FillWithZeroes, having type bool + ParameterId["FillWithZeroes"] = "fillZeroes"; + // DPI_FilterIsNamed, having type bool + ParameterId["FilterIsNamed"] = "filterIsNamed"; + // DPI_Focus, having type bool + ParameterId["Focus"] = "focus"; + // DPI_ForInternalUse, having type bool + ParameterId["ForInternalUse"] = "internalUse"; + // DPI_ForceBrowserRendering, having type bool + ParameterId["ForceBrowserRendering"] = "forceBrowserRendering"; + // DPI_ForceCache, having type bool + ParameterId["ForceCache"] = "forceCache"; + // DPI_ForceColorFromApp, having type bool + ParameterId["ForceColorFromApp"] = "forceColorFromApp"; + // DPI_ForceConnectionAttempt, having type bool + ParameterId["ForceConnectionAttempt"] = "forceConnectionAttempt"; + // DPI_ForceConsolidateInCommit, having type bool + ParameterId["ForceConsolidateInCommit"] = "forceConsolidateInCommit"; + // DPI_ForceExtractRefresh, having type bool + ParameterId["ForceExtractRefresh"] = "extractForceRefresh"; + // DPI_ForceInterceptZero, having type bool + ParameterId["ForceInterceptZero"] = "forceInterceptZero"; + // DPI_ForceOldConnectExperience, having type bool + ParameterId["ForceOldConnectExperience"] = "forceOldConnectExperience"; + // DPI_ForceRelativeDate, having type bool + ParameterId["ForceRelativeDate"] = "forceRelativeDate"; + // DPI_ForceToggleHighlightStateOn, having type bool + ParameterId["ForceToggleHighlightStateOn"] = "forceHighlightOn"; + // DPI_ForceUserToChoose, having type bool + ParameterId["ForceUserToChoose"] = "forceUserToChoose"; + // DPI_ForceWholeDate, having type bool + ParameterId["ForceWholeDate"] = "forceWholeDate"; + // DPI_ForecastSelected, having type bool + ParameterId["ForecastSelected"] = "forecastSelected"; + // DPI_ForecastUseAutoAgg, having type bool + ParameterId["ForecastUseAutoAgg"] = "forecastUseAutoSummarize"; + // DPI_ForJoin, having type bool + ParameterId["ForJoin"] = "forJoin"; + // DPI_FormatDataValueLocally, having type bool + ParameterId["FormatDataValueLocally"] = "formatDataValueLocally"; + // DPI_FormatIfColumn, having type bool + ParameterId["FormatIfColumn"] = "formatIfColumn"; + // DPI_FormatIfParameter, having type bool + ParameterId["FormatIfParameter"] = "formatIfParameter"; + // DPI_GeographicSearchIsDataLoaded, having type bool + ParameterId["GeographicSearchIsDataLoaded"] = "geographicSearchDataLoaded"; + // DPI_GeographicSearchLoadDataAsync, having type bool + ParameterId["GeographicSearchLoadDataAsync"] = "geographicSearchLoadDataAsync"; + // DPI_GroupByAll, having type bool + ParameterId["GroupByAll"] = "groupByAll"; + // DPI_HasAlias, having type bool + ParameterId["HasAlias"] = "hasAlias"; + // DPI_HasAllMember, having type bool + ParameterId["HasAllMember"] = "hasAllMember"; + // DPI_HasApply, having type bool + ParameterId["HasApply"] = "hasApply"; + // DPI_HasBackgroundImage, having type bool + ParameterId["HasBackgroundImage"] = "hasBackgroundImage"; + // DPI_HasBeenDismissed, having type bool + ParameterId["HasBeenDismissed"] = "hasBeenDismissed"; + // DPI_HasCaption, having type bool + ParameterId["HasCaption"] = "hasCaption"; + // DPI_HasCondition, having type bool + ParameterId["HasCondition"] = "hasCondition"; + // DPI_HasConnectPermissions, having type bool + ParameterId["HasConnectPermissions"] = "hasConnectPermissions"; + // DPI_HasDashboard, having type bool + ParameterId["HasDashboard"] = "hasDashboard"; + // DPI_HasDownloadPermissions, having type bool + ParameterId["HasDownloadPermissions"] = "hasDownloadPermissions"; + // DPI_HasDrill, having type bool + ParameterId["HasDrill"] = "hasDrill"; + // DPI_HasExclude, having type bool + ParameterId["HasExclude"] = "hasExclude"; + // DPI_HasFill, having type bool + ParameterId["HasFill"] = "hasFill"; + // DPI_HasLabels, having type bool + ParameterId["HasLabels"] = "hasLabels"; + // DPI_HasLimit, having type bool + ParameterId["HasLimit"] = "hasLimit"; + // DPI_HasLine, having type bool + ParameterId["HasLine"] = "hasLine"; + // DPI_HasModifiedAxes, having type bool + ParameterId["HasModifiedAxes"] = "hasModifiedAxes"; + // DPI_HasNonRootCalculations, having type bool + ParameterId["HasNonRootCalculations"] = "hasNonRootCalculations"; + // DPI_HasOnlyOneHierarchy, having type bool + ParameterId["HasOnlyOneHierarchy"] = "hasOnlyOneHierarchy"; + // DPI_HasPattern, having type bool + ParameterId["HasPattern"] = "hasPattern"; + // DPI_HasPublishGuidanceResults, having type bool + ParameterId["HasPublishGuidanceResults"] = "hasPublishGuidanceResults"; + // DPI_HasSelection, having type bool + ParameterId["HasSelection"] = "hasSelection"; + // DPI_HasServerCredentials, having type bool + ParameterId["HasServerCredentials"] = "hasServerCredentials"; + // DPI_HasSpace, having type bool + ParameterId["HasSpace"] = "hasSpace"; + // DPI_HasStoredProcedure, having type bool + ParameterId["HasStoredProcedure"] = "hasStoredProcedure"; + // DPI_HasStringCalculatedMeasures, having type bool + ParameterId["HasStringCalculatedMeasures"] = "hasStringCalculatedMeasures"; + // DPI_HasTableCalcData, having type bool + ParameterId["HasTableCalcData"] = "hasTableCalcData"; + // DPI_HasTitle, having type bool + ParameterId["HasTitle"] = "hasTitle"; + // DPI_HasUserSpecificContent, having type bool + ParameterId["HasUserSpecificContent"] = "hasUserSpecificContent"; + // DPI_HasUnjoinedTable, having type bool + ParameterId["HasUnjoinedTable"] = "hasUnjoinedTable"; + // DPI_HasVarArgs, having type bool + ParameterId["HasVarArgs"] = "hasVarArgs"; + // DPI_HasVisitedWDCPage, having type bool + ParameterId["HasVisitedWDCPage"] = "hasVisitedWdcPage"; + // DPI_IgnoreAliases, having type bool + ParameterId["IgnoreAliases"] = "ignoreAliases"; + // DPI_IgnoreDomain, having type bool + ParameterId["IgnoreDomain"] = "ignoreDomain"; + // DPI_IgnoreSelection, having type bool + ParameterId["IgnoreSelection"] = "ignoreSelection"; + // DPI_IncludeAllColumns, having type bool + ParameterId["IncludeAllColumns"] = "includeAllColumns"; + // DPI_IncludeContext, having type bool + ParameterId["IncludeContext"] = "includeContext"; + // DPI_IncludeDashboardPresModels, having type bool + ParameterId["IncludeDashboardPresModels"] = "includeDashboardPresModels"; + // DPI_IncludeItemSet, having type bool + ParameterId["IncludeItemSet"] = "includeItemSet"; + // DPI_IncludeLocalFiles, having type bool + ParameterId["IncludeLocalFiles"] = "includeLocalFiles"; + // DPI_IncludeOtherSelected, having type bool + ParameterId["IncludeOtherSelected"] = "includeOtherSelected"; + // DPI_IncludeNulls, having type bool + ParameterId["IncludeNulls"] = "includeNulls"; + // DPI_IncludeParent, having type bool + ParameterId["IncludeParent"] = "includeParent"; + // DPI_IncludeSelections, having type bool + ParameterId["IncludeSelections"] = "includeSelections"; + // DPI_IncludeSiblings, having type bool + ParameterId["IncludeSiblings"] = "includeSiblings"; + // DPI_IncludeStories, having type bool + ParameterId["IncludeStories"] = "includeStories"; + // DPI_IncludeSubfolders, having type bool + ParameterId["IncludeSubfolders"] = "includeSubfolders"; + // DPI_IncludeVolatileProps, having type bool + ParameterId["IncludeVolatileProps"] = "includeVolatileProps"; + // DPI_IncludesTag, having type bool + ParameterId["IncludesTag"] = "includesTag"; + // DPI_InsertAfter, having type bool + ParameterId["InsertAfter"] = "insertAfter"; + // DPI_InsertAtEnd, having type bool + ParameterId["InsertAtEnd"] = "insertAtEnd"; + // DPI_InstantAnalyticsAllowed, having type bool + ParameterId["InstantAnalyticsAllowed"] = "instantAnalyticsAllowed"; + // DPI_IntegerCoordinates, having type bool + ParameterId["IntegerCoordinates"] = "intCoords"; + // DPI_InvalidatedLayout, having type bool + ParameterId["InvalidatedLayout"] = "invalidatedLayout"; + // DPI_IsActive, having type bool + ParameterId["IsActive"] = "isActive"; + // DPI_IsAddToFilter, having type bool + ParameterId["IsAddToFilter"] = "isAddToFilterButtonChecked"; + // DPI_IsAllButtonVisible, having type bool + ParameterId["IsAllButtonVisible"] = "isAllButtonVisible"; + // DPI_IsAllowedInCalcs, having type bool + ParameterId["IsAllowedInCalcs"] = "isAllowedInCalcs"; + // DPI_IsAppMapSource, having type bool + ParameterId["IsAppMapSource"] = "isAppMapSource"; + // DPI_IsArchive, having type bool + ParameterId["IsArchive"] = "isArchive"; + // DPI_IsAttributeHierarchy, having type bool + ParameterId["IsAttributeHierarchy"] = "isAttributeHierarchy"; + // DPI_IsAuthoringMode, having type bool + ParameterId["IsAuthoringMode"] = "isAuthoringMode"; + // DPI_IsAuto, having type bool + ParameterId["IsAuto"] = "isAuto"; + // DPI_IsAutoClear, having type bool + ParameterId["IsAutoClear"] = "isAutoClear"; + // DPI_IsAutoColumn, having type bool + ParameterId["IsAutoColumn"] = "isAutoColumn"; + // DPI_IsAutoHidden, having type bool + ParameterId["IsAutoHidden"] = "isAutoHidden"; + // DPI_IsAutoSelect, having type bool + ParameterId["IsAutoSelect"] = "isAutoSelect"; + // DPI_IsBold, having type bool + ParameterId["IsBold"] = "isBold"; + // DPI_IsBorderVisible, having type bool + ParameterId["IsBorderVisible"] = "isBorderVisible"; + // DPI_IsBoxplot, having type bool + ParameterId["IsBoxplot"] = "isBoxplot"; + // DPI_IsCapable, having type bool + ParameterId["IsCapable"] = "isCapable"; + // DPI_IsCaptured, having type bool + ParameterId["IsCaptured"] = "isCaptured"; + // DPI_IsCentered, having type bool + ParameterId["IsCentered"] = "isCentered"; + // DPI_IsChecked, having type bool + ParameterId["IsChecked"] = "isChecked"; + // DPI_IsColorDiverging, having type bool + ParameterId["IsColorDiverging"] = "isColorDiverging"; + // DPI_IsColorStepped, having type bool + ParameterId["IsColorStepped"] = "isColorStepped"; + // DPI_IsCombinedField, having type bool + ParameterId["IsCombinedField"] = "isCombinedField"; + // DPI_IsConnected, having type bool + ParameterId["IsConnected"] = "isConnected"; + // DPI_IsContextMenuAllowed, having type bool + ParameterId["IsContextMenuAllowed"] = "isContextMenuAllowed"; + // DPI_IsContinuous, having type bool + ParameterId["IsContinuous"] = "isContinuous"; + // DPI_IsCopy, having type bool + ParameterId["IsCopy"] = "isCopy"; + // DPI_IsCustomCalculation, having type bool + ParameterId["IsCustomCalculation"] = "isCustomCalculation"; + // DPI_IsCustomPalette, having type bool + ParameterId["IsCustomPalette"] = "isCustomPalette"; + // DPI_IsCustomSQL, having type bool + ParameterId["IsCustomSQL"] = "isCustomSql"; + // DPI_IsCustomValueEnabled, having type bool + ParameterId["IsCustomValueEnabled"] = "isCustomValueEnabled"; + // DPI_IsDataAlertConditionMet, having type bool + ParameterId["IsDataAlertConditionMet"] = "isDataAlertConditionMet"; + // DPI_IsDataAlertDialogVisible, having type bool + ParameterId["IsDataAlertDialogVisible"] = "isDataAlertDialogVisible"; + // DPI_IsDataBin, having type bool + ParameterId["IsDataBin"] = "isDataBin"; + // DPI_IsDataGridVisible, having type bool + ParameterId["IsDataGridVisible"] = "isDataGridVisible"; + // DPI_IsDatabase, having type bool + ParameterId["IsDatabase"] = "isDatabase"; + // DPI_IsDatabaseFilterInclusive, having type bool + ParameterId["IsDatabaseFilterInclusive"] = "isDbFilterInclusive"; + // DPI_IsDraggable, having type bool + ParameterId["IsDraggable"] = "isDraggable"; + // DPI_IsMDXCalculation, having type bool + ParameterId["IsMDXCalculation"] = "isMdxCalculation"; + // DPI_IsMetadata, having type bool + ParameterId["IsMetadata"] = "isMetadata"; + // DPI_IsWebDataTabViewSupported, having type bool + ParameterId["IsWebDataTabViewSupported"] = "isWebDataTabViewSupported"; + // DPI_IsPublishedDatasourceReplacement, having type bool + ParameterId["IsPublishedDatasourceReplacement"] = "isPublishedDatasourceReplacement"; + // DPI_IsDeadDrop, having type bool + ParameterId["IsDeadDrop"] = "isDeadDrop"; + // DPI_IsDefault, having type bool + ParameterId["IsDefault"] = "isDefault"; + // DPI_IsDeleteCalcConfirm, having type bool + ParameterId["IsDeleteCalcConfirm"] = "isDeleteCalcConfirmed"; + // DPI_IsDimension, having type bool + ParameterId["IsDimension"] = "isDimension"; + // DPI_IsDisabled, having type bool + ParameterId["IsDisabled"] = "isDisabled"; + // DPI_IsDivider, having type bool + ParameterId["IsDivider"] = "isDivider"; + // DPI_IsDropdownEnabled, having type bool + ParameterId["IsDropdownEnabled"] = "isDropdownEnabled"; + // DPI_IsEditing, having type bool + ParameterId["IsEditing"] = "isEditing"; + // DPI_IsEmbedded, having type bool + ParameterId["IsEmbedded"] = "isEmbedded"; + // DPI_IsEmpty, having type bool + ParameterId["IsEmpty"] = "isEmpty"; + // DPI_IsAddInEnabled, having type bool + ParameterId["IsAddInEnabled"] = "isAddInEnabled"; + // DPI_IsInDrillPath, having type bool + ParameterId["IsInDrillPath"] = "isInDrillPath"; + // DPI_AddInJSDebuggingEnabled, having type bool + ParameterId["AddInJSDebuggingEnabled"] = "addInJsDebugginEnabled"; + // DPI_AddInPauseBeforeLoading, having type bool + ParameterId["AddInPauseBeforeLoading"] = "addInPauseBeforeLoading"; + // DPI_IsDSHierarchical, having type bool + ParameterId["IsDSHierarchical"] = "isDsHierarchical"; + // DPI_IsEditorOpen, having type bool + ParameterId["IsEditorOpen"] = "isEditorOpen"; + // DPI_IsEndPtMoveable, having type bool + ParameterId["IsEndPtMoveable"] = "isEndpointMovable"; + // DPI_IsExclude, having type bool + ParameterId["IsExclude"] = "isExcludeButtonChecked"; + // DPI_IsExistingConnection, having type bool + ParameterId["IsExistingConnection"] = "isExistingConnection"; + // DPI_IsExistingObject, having type bool + ParameterId["IsExistingObject"] = "isExistingObject"; + // DPI_IsExtract, having type bool + ParameterId["IsExtract"] = "isExtract"; + // DPI_IsExtractOnlyConnection, having type bool + ParameterId["IsExtractOnlyConnection"] = "isExtractOnlyConnection"; + // DPI_IsExtractSelectionVisible, having type bool + ParameterId["IsExtractSelectionVisible"] = "isExtractSelectionVisible"; + // DPI_IsFederatable, having type bool + ParameterId["IsFederatable"] = "isFederatable"; + // DPI_IsField, having type bool + ParameterId["IsField"] = "isField"; + // DPI_IsFieldParameter, having type bool + ParameterId["IsFieldParameter"] = "isFieldParameter"; + // DPI_IsFilterActionField, having type bool + ParameterId["IsFilterActionField"] = "isFilterActionField"; + // DPI_IsFirstClassConnector, having type bool + ParameterId["IsFirstClassConnector"] = "isFirstClassConnector"; + // DPI_IsFloating, having type bool + ParameterId["IsFloating"] = "isFloating"; + // DPI_IsFolded, having type bool + ParameterId["IsFolded"] = "isFolded"; + // DPI_IsForInput, having type bool + ParameterId["IsForInput"] = "isForInput"; + // DPI_IsForecastEnabled, having type bool + ParameterId["IsForecastEnabled"] = "isForecastEnabled"; + // DPI_IsForceDirty, having type bool + ParameterId["IsForceDirty"] = "isForceDirty"; + // DPI_IsFullScan, having type bool + ParameterId["IsFullScan"] = "isFullScan"; + // DPI_IsFullStyling, having type bool + ParameterId["IsFullStyling"] = "isFullStyling"; + // DPI_IsGenerated, having type bool + ParameterId["IsGenerated"] = "isGenerated"; + // DPI_IsGlobalNames, having type bool + ParameterId["IsGlobalNames"] = "isGlobalNames"; + // DPI_IsGrayed, having type bool + ParameterId["IsGrayed"] = "isGrayed"; + // DPI_IsGrayscale, having type bool + ParameterId["IsGrayscale"] = "isGrayscale"; + // DPI_IsGroup, having type bool + ParameterId["IsGroup"] = "isGroup"; + // DPI_IsHideableField, having type bool + ParameterId["IsHideableField"] = "isHideableField"; + // DPI_IsHierarchy, having type bool + ParameterId["IsHierarchy"] = "isHierarchy"; + // DPI_IsHierarchySingleSelect, having type bool + ParameterId["IsHierarchySingleSelect"] = "isHierarchySingleSelect"; + // DPI_IsHighlightAllowed, having type bool + ParameterId["IsHighlightAllowed"] = "isHighlightAllowed"; + // DPI_IsHighlightEnabled, having type bool + ParameterId["IsHighlightEnabled"] = "isHighlightEnabled"; + // DPI_IsHighlightField, having type bool + ParameterId["IsHighlightField"] = "isHighlightField"; + // DPI_IsHorizontal, having type bool + ParameterId["IsHorizontal"] = "isHorizontal"; + // DPI_IsImageEnabled, having type bool + ParameterId["IsImageEnabled"] = "isImageEnabled"; + // DPI_IsInDefault, having type bool + ParameterId["IsInDefault"] = "isInDefault"; + // DPI_IsInPrimaryDataSource, having type bool + ParameterId["IsInPrimaryDataSource"] = "isInPrimaryDataSource"; + // DPI_IsInner, having type bool + ParameterId["IsInner"] = "isInner"; + // DPI_IsInstance, having type bool + ParameterId["IsInstance"] = "isInstance"; + // DPI_IsInvalid, having type bool + ParameterId["IsInvalid"] = "isInvalid"; + // DPI_IsInvalidCalcOnDG, having type bool + ParameterId["IsInvalidCalcOnDG"] = "isInvalidDgCalc"; + // DPI_IsItalics, having type bool + ParameterId["IsItalics"] = "isItalics"; + // DPI_IsJoinAreaVisible, having type bool + ParameterId["IsJoinAreaVisible"] = "isJoinAreaVisible"; + // DPI_IsLabels, having type bool + ParameterId["IsLabels"] = "isLabels"; + // DPI_IsLayered, having type bool + ParameterId["IsLayered"] = "isLayered"; + // DPI_IsLeft, having type bool + ParameterId["IsLeft"] = "isLeft"; + // DPI_IsLegacy, having type bool + ParameterId["IsLegacy"] = "isLegacy"; + // DPI_IsLevel, having type bool + ParameterId["IsLevel"] = "isLevel"; + // DPI_IsLevelOrLevelIdentity, having type bool + ParameterId["IsLevelOrLevelIdentity"] = "isLevelOrLevelIdentity"; + // DPI_IsLicensed, having type bool + ParameterId["IsLicensed"] = "isLicensed"; + // DPI_IsLink, having type bool + ParameterId["IsLink"] = "isLink"; + // DPI_IsLinked, having type bool + ParameterId["IsLinked"] = "isLinked"; + // DPI_IsMap, having type bool + ParameterId["IsMap"] = "isMap"; + // DPI_IsMeasure, having type bool + ParameterId["IsMeasure"] = "isMeasure"; + // DPI_IsMerge, having type bool + ParameterId["IsMerge"] = "isMerge"; + // DPI_IsMessageSourceRemote, having type bool + ParameterId["IsMessageSourceRemote"] = "isMessageSourceRemote"; + // DPI_IsMissingFromExtract, having type bool + ParameterId["IsMissingFromExtract"] = "isMissingFromExtract"; + // DPI_IsMobile, having type bool + ParameterId["IsMobile"] = "isMobile"; + // DPI_IsModified, having type bool + ParameterId["IsModified"] = "isModified"; + // DPI_IsNew, having type bool + ParameterId["IsNew"] = "isNew"; + // DPI_IsNewCloudFileDataSource, having type bool + ParameterId["IsNewCloudFileDataSource"] = "isNewCloudFileDataSource"; + // DPI_IsNewZone, having type bool + ParameterId["IsNewZone"] = "isNewZone"; + // DPI_IsNone, having type bool + ParameterId["IsNone"] = "isNone"; + // DPI_IsOfflineMode, having type bool + ParameterId["IsOfflineMode"] = "isOfflineMode"; + // DPI_IsPreAqlBin, having type bool + ParameterId["IsPreAqlBin"] = "isPreAqlBin"; + // DPI_IsOMeasuresAndRelational, having type bool + ParameterId["IsOMeasuresAndRelational"] = "isOmeasuresAndRelational"; + // DPI_IsOpaque, having type bool + ParameterId["IsOpaque"] = "isOpaque"; + // DPI_IsOrphaned, having type bool + ParameterId["IsOrphaned"] = "isOrphaned"; + // DPI_IsOverlay, having type bool + ParameterId["IsOverlay"] = "isOverlay"; + // DPI_IsOverride, having type bool + ParameterId["IsOverride"] = "isOverride"; + // DPI_IsPageLoading, having type bool + ParameterId["IsPageLoading"] = "isPageLoading"; + // DPI_IsParameterSelected, having type bool + ParameterId["IsParameterSelected"] = "isParameterSelected"; + // DPI_IsParameterSelectedOnFrom, having type bool + ParameterId["IsParameterSelectedOnFrom"] = "isParameterSelectedOnFrom"; + // DPI_IsParameterSelectedOnTo, having type bool + ParameterId["IsParameterSelectedOnTo"] = "isParameterSelectedOnTo"; + // DPI_IsPatternBased, having type bool + ParameterId["IsPatternBased"] = "isPatternBased"; + // DPI_IsPinned, having type bool + ParameterId["IsPinned"] = "isPinned"; + // DPI_IsPresentationMode, having type bool + ParameterId["IsPresentationMode"] = "isPresentationModeDoc"; + // DPI_IsPublishAllowed, having type bool + ParameterId["IsPublishAllowed"] = "isPublishAllowed"; + // DPI_IsMustDowngradeToPublish, having type bool + ParameterId["IsMustDowngradeToPublish"] = "isDowngradeToPublishRequired"; + // DPI_IsPublished, having type bool + ParameterId["IsPublished"] = "isPublished"; + // DPI_IsQuantitative, having type bool + ParameterId["IsQuantitative"] = "isQuantitative"; + // DPI_IsQuickTableCalc, having type bool + ParameterId["IsQuickTableCalc"] = "isQuickTableCalc"; + // DPI_IsRadioOn, having type bool + ParameterId["IsRadioOn"] = "isRadioOn"; + // DPI_IsReconnect, having type bool + ParameterId["IsReconnect"] = "isReconnect"; + // DPI_IsRecursive, having type bool + ParameterId["IsRecursive"] = "isRecursive"; + // DPI_IsReferenced, having type bool + ParameterId["IsReferenced"] = "isReferenced"; + // DPI_IsRemovalAllowed, having type bool + ParameterId["IsRemovalAllowed"] = "isRowRemovalAllowed"; + // DPI_IsRenderCapable, having type bool + ParameterId["IsRenderCapable"] = "isRenderCapable"; + // DPI_IsRequired, having type bool + ParameterId["IsRequired"] = "isRequired"; + // DPI_IsReversed, having type bool + ParameterId["IsReversed"] = "isReversed"; + // DPI_IsRightDrag, having type bool + ParameterId["IsRightDrag"] = "isRightDrag"; + // DPI_IsRowLabels, having type bool + ParameterId["IsRowLabels"] = "isRowLabels"; + // DPI_IsPercentage, having type bool + ParameterId["IsPercentage"] = "isPercentage"; + // DPI_IsSalesforceInConnection, having type bool + ParameterId["IsSalesforceInConnection"] = "isSalesforceInConnection"; + // DPI_IsScaled, having type bool + ParameterId["IsScaled"] = "isScaled"; + // DPI_IsSecondaryField, having type bool + ParameterId["IsSecondaryField"] = "isSecondaryField"; + // DPI_IsSelected, having type bool + ParameterId["IsSelected"] = "isSelected"; + // DPI_IsSelectedItem, having type bool + ParameterId["IsSelectedItem"] = "isSelectedItem"; + // DPI_IsSelectionDisabled, having type bool + ParameterId["IsSelectionDisabled"] = "isSelectionDisabled"; + // DPI_IsShiftDrag, having type bool + ParameterId["IsShiftDrag"] = "isShiftDrag"; + // DPI_IsSingleLabel, having type bool + ParameterId["IsSingleLabel"] = "isSingleLabel"; + // DPI_IsSingleSelect, having type bool + ParameterId["IsSingleSelect"] = "isSingleSelect"; + // DPI_IsSingleSelectMode, having type bool + ParameterId["IsSingleSelectMode"] = "isSingleSelectMode"; + // DPI_IsSingleSelection, having type bool + ParameterId["IsSingleSelection"] = "isSingleSelection"; + // DPI_IsSorted, having type bool + ParameterId["IsSorted"] = "isSorted"; + // DPI_IsSortPill, having type bool + ParameterId["IsSortPill"] = "isSortPill"; + // DPI_IsSpecial, having type bool + ParameterId["IsSpecial"] = "isSpecial"; + // DPI_IsSplashScreen, having type bool + ParameterId["IsSplashScreen"] = "isSplashScreen"; + // DPI_IsStoryEmpty, having type bool + ParameterId["IsStoryEmpty"] = "isStoryEmpty"; + // DPI_IsStrikeThrough, having type bool + ParameterId["IsStrikeThrough"] = "isStrikeThrough"; + // DPI_IsTableCalc, having type bool + ParameterId["IsTableCalc"] = "isTableCalc"; + // DPI_IsTableCleaningSubtable, having type bool + ParameterId["IsTableCleaningSubtable"] = "isTableCleaningSubtable"; + // DPI_IsTableFilterInclusive, having type bool + ParameterId["IsTableFilterInclusive"] = "isTableFilterInclusive"; + // DPI_IsTableRanked, having type bool + ParameterId["IsTableRanked"] = "isTableRanked"; + // DPI_IsTemporary, having type bool + ParameterId["IsTemporary"] = "isTemporary"; + // DPI_IsTimeIntelligence, having type bool + ParameterId["IsTimeIntelligence"] = "isTimeIntelligence"; + // DPI_IsTitleVisible, having type bool + ParameterId["IsTitleVisible"] = "isTitleVisible"; + // DPI_IsTopLevel, having type bool + ParameterId["IsTopLevel"] = "isTopLevel"; + // DPI_IsTwoValued, having type bool + ParameterId["IsTwoValued"] = "isTwoValued"; + // DPI_IsTypeInFinished, having type bool + ParameterId["IsTypeInFinished"] = "isTypeinFinished"; + // DPI_IsTypeInPill, having type bool + ParameterId["IsTypeInPill"] = "isTypeInPill"; + // DPI_IsURLActionField, having type bool + ParameterId["IsURLActionField"] = "isUrlActionField"; + // DPI_IsUnderlined, having type bool + ParameterId["IsUnderlined"] = "isUnderlined"; + // DPI_IsUnion, having type bool + ParameterId["IsUnion"] = "isUnion"; + // DPI_IsUnionReplacement, having type bool + ParameterId["IsUnionReplacement"] = "isUnionReplacement"; + // DPI_IsUnnamedCalc, having type bool + ParameterId["IsUnnamedCalc"] = "isUnnamed"; + // DPI_IsUserDefinedAttribute, having type bool + ParameterId["IsUserDefinedAttribute"] = "isUserDefinedAttribute"; + // DPI_IsUserEditable, having type bool + ParameterId["IsUserEditable"] = "isUserEditable"; + // DPI_IsUserPrompted, having type bool + ParameterId["IsUserPrompted"] = "isUserPrompted"; + // DPI_IsUserResponded, having type bool + ParameterId["IsUserResponded"] = "isUserResponded"; + // DPI_IsValid, having type bool + ParameterId["IsValid"] = "isValid"; + // DPI_IsValidWDCPage, having type bool + ParameterId["IsValidWDCPage"] = "isValidWdcPage"; + // DPI_IsVaryingAttributeDimension, having type bool + ParameterId["IsVaryingAttributeDimension"] = "isVaryingAttributeDimension"; + // DPI_IsVertical, having type bool + ParameterId["IsVertical"] = "isVertical"; + // DPI_IsViewModified, having type bool + ParameterId["IsViewModified"] = "isViewModified"; + // DPI_IsVisuallyCategorical, having type bool + ParameterId["IsVisuallyCategorical"] = "isVisuallyCat"; + // DPI_IsVizInTooltip, having type bool + ParameterId["IsVizInTooltip"] = "isVizInTooltip"; + // DPI_IsWeb, having type bool + ParameterId["IsWeb"] = "isWeb"; + // DPI_IsWhite, having type bool + ParameterId["IsWhite"] = "isWhite"; + // DPI_IsWorldNew, having type bool + ParameterId["IsWorldNew"] = "isWorldNew"; + // DPI_IsXAxis, having type bool + ParameterId["IsXAxis"] = "isXAxis"; + // DPI_KeepAspectRatio, having type bool + ParameterId["KeepAspectRatio"] = "keepAspectRatio"; + // DPI_LabelLineEndFirst, having type bool + ParameterId["LabelLineEndFirst"] = "labelLineEndFirst"; + // DPI_LabelLineEndLast, having type bool + ParameterId["LabelLineEndLast"] = "labelLineEndLast"; + // DPI_LabelMarkMax, having type bool + ParameterId["LabelMarkMax"] = "labelMarkMax"; + // DPI_LabelMarkMin, having type bool + ParameterId["LabelMarkMin"] = "labelMarkMin"; + // DPI_LockAspectRatio, having type bool + ParameterId["LockAspectRatio"] = "lockAspectRatio"; + // DPI_LoopPlayback, having type bool + ParameterId["LoopPlayback"] = "loopPlayback"; + // DPI_LossyImages, having type bool + ParameterId["LossyImages"] = "lossyImages"; + // DPI_MakeGlobal, having type bool + ParameterId["MakeGlobal"] = "isMakeGlobal"; + // DPI_ManualSortOnly, having type bool + ParameterId["ManualSortOnly"] = "manualSortOnly"; + // DPI_MapBoxDefaultStyleSelected, having type bool + ParameterId["MapBoxDefaultStyleSelected"] = "mapboxDefaultStyleSelected"; + // DPI_MapBoxURLParseSuccessful, having type bool + ParameterId["MapBoxURLParseSuccessful"] = "mapboxUrlParseSuccessful"; + // DPI_MapClientRequestsMapTiles, having type bool + ParameterId["MapClientRequestsMapTiles"] = "clientRequestsMapTiles"; + // DPI_MapHasValidLayer, having type bool + ParameterId["MapHasValidLayer"] = "mapHasValidLayer"; + // DPI_MapShowAttribution, having type bool + ParameterId["MapShowAttribution"] = "showAttribution"; + // DPI_MarkLabelsVisibilityChanged, having type bool + ParameterId["MarkLabelsVisibilityChanged"] = "markLabelsVisibilityChanged"; + // DPI_MembersLoaded, having type bool + ParameterId["MembersLoaded"] = "membersLoaded"; + // DPI_MinimizeNames, having type bool + ParameterId["MinimizeNames"] = "useMinNames"; + // DPI_ModelsTime, having type bool + ParameterId["ModelsTime"] = "modelsTime"; + // DPI_MoveRefereceLineUp, having type bool + ParameterId["MoveRefereceLineUp"] = "moveReferenceLineUp"; + // DPI_MultiDataSources, having type bool + ParameterId["MultiDataSources"] = "multiDataSources"; + // DPI_NavArrowsVisible, having type bool + ParameterId["NavArrowsVisible"] = "navArrowsVisible"; + // DPI_OEMHasSplashScreen, having type bool + ParameterId["OEMHasSplashScreen"] = "oemHasSplashScreen"; + // DPI_OneWayBrushing, having type bool + ParameterId["OneWayBrushing"] = "oneWayBrushing"; + // DPI_OnlyAggregations, having type bool + ParameterId["OnlyAggregations"] = "onlyAggregations"; + // DPI_OnlyShowDateBins, having type bool + ParameterId["OnlyShowDateBins"] = "onlyShowDateBins"; + // DPI_OverrideAllowed, having type bool + ParameterId["OverrideAllowed"] = "overrideAllowed"; + // DPI_OverrideStackDumper, having type bool + ParameterId["OverrideStackDumper"] = "overrideStackDumper"; + // DPI_PageAutoColorLines, having type bool + ParameterId["PageAutoColorLines"] = "autoColorLines"; + // DPI_PageAutoColorMarks, having type bool + ParameterId["PageAutoColorMarks"] = "autoColorMarks"; + // DPI_PageHistoryFade, having type bool + ParameterId["PageHistoryFade"] = "historyFade"; + // DPI_PercentageBands, having type bool + ParameterId["PercentageBands"] = "percentageBands"; + // DPI_PercentilesAllowed, having type bool + ParameterId["PercentilesAllowed"] = "percentilesAllowed"; + // DPI_PublishWithRemoteQueryAgent, having type bool + ParameterId["PublishWithRemoteQueryAgent"] = "publishWithRemoteQueryAgent"; + // DPI_PreviousSheet, having type bool + ParameterId["PreviousSheet"] = "previousSheet"; + // DPI_PromptDeleteSheetsWithVizInTooltip, having type bool + ParameterId["PromptDeleteSheetsWithVizInTooltip"] = "promptDeleteSheetsWithVizInTooltip"; + // DPI_QuantilesAllowed, having type bool + ParameterId["QuantilesAllowed"] = "quantilesAllowed"; + // DPI_RadialDistanceHitTest, having type bool + ParameterId["RadialDistanceHitTest"] = "radialDistanceHitTest"; + // DPI_RefLineSelected, having type bool + ParameterId["RefLineSelected"] = "refLineSelected"; + // DPI_RemovedSheets, having type bool + ParameterId["RemovedSheets"] = "removedSheets"; + // DPI_RenderImagesAsUrls, having type bool + ParameterId["RenderImagesAsUrls"] = "imagesAsUrls"; + // DPI_RenderOnTop, having type bool + ParameterId["RenderOnTop"] = "renderOnTop"; + // DPI_RepeatHeadersLegends, having type bool + ParameterId["RepeatHeadersLegends"] = "repeatHeadersLegends"; + // DPI_ReplaceActiveConfig, having type bool + ParameterId["ReplaceActiveConfig"] = "replaceActiveConfig"; + // DPI_ReplaceDatasourceAfterPublish, having type bool + ParameterId["ReplaceDatasourceAfterPublish"] = "replaceDatasourceAfterPublish"; + // DPI_ReplaceDatasourceFailed, having type bool + ParameterId["ReplaceDatasourceFailed"] = "replaceDatasourceFailed"; + // DPI_ReplaceTde, having type bool + ParameterId["ReplaceTde"] = "replaceTde"; + // DPI_RequireSelection, having type bool + ParameterId["RequireSelection"] = "requireSelection"; + // DPI_RequiresDBVariables, having type bool + ParameterId["RequiresDBVariables"] = "requiresDbVariables"; + // DPI_RequiresFieldList, having type bool + ParameterId["RequiresFieldList"] = "requiresFieldList"; + // DPI_RestartEveryFieldIsInvalid, having type bool + ParameterId["RestartEveryFieldIsInvalid"] = "restartEveryFieldIsInvalid"; + // DPI_RightJustify, having type bool + ParameterId["RightJustify"] = "rightJustify"; + // DPI_SaveEnabled, having type bool + ParameterId["SaveEnabled"] = "saveEnabled"; + // DPI_SavePasswordAllowed, having type bool + ParameterId["SavePasswordAllowed"] = "savePasswordAllowed"; + // DPI_ScopeIsolation, having type bool + ParameterId["ScopeIsolation"] = "scopeIsolation"; + // DPI_SelectionRequired, having type bool + ParameterId["SelectionRequired"] = "selectionRequired"; + // DPI_SendNotifications, having type bool + ParameterId["SendNotifications"] = "sendNotifications"; + // DPI_SetActive, having type bool + ParameterId["SetActive"] = "setActive"; + // DPI_SetDefaultSort, having type bool + ParameterId["SetDefaultSort"] = "setDefault"; + // DPI_SheetIsDashboard, having type bool + ParameterId["SheetIsDashboard"] = "isDashboard"; + // DPI_SheetIsStoryboard, having type bool + ParameterId["SheetIsStoryboard"] = "isStory"; + // DPI_ShouldAlwaysDisplayAlias, having type bool + ParameterId["ShouldAlwaysDisplayAlias"] = "shouldAlwaysDisplayAlias"; + // DPI_ShouldAutoCapture, having type bool + ParameterId["ShouldAutoCapture"] = "shouldAutoCapture"; + // DPI_ShouldAutoRevert, having type bool + ParameterId["ShouldAutoRevert"] = "shouldAutoRevert"; + // DPI_ShouldChangeUIMode, having type bool + ParameterId["ShouldChangeUIMode"] = "shouldChangeUiMode"; + // DPI_ShouldDisplay, having type bool + ParameterId["ShouldDisplay"] = "shouldDisplay"; + // DPI_ShouldDrill, having type bool + ParameterId["ShouldDrill"] = "shouldDrill"; + // DPI_ShouldForceConnectionAttempt, having type bool + ParameterId["ShouldForceConnectionAttempt"] = "shouldForceConnectionAttempt"; + // DPI_ShouldRefreshDS, having type bool + ParameterId["ShouldRefreshDS"] = "shouldRefreshDs"; + // DPI_ShouldScaleMarksInAxisUnits, having type bool + ParameterId["ShouldScaleMarksInAxisUnits"] = "shouldScaleMarksInAxisUnits"; + // DPI_ShouldSeedCredentials, having type bool + ParameterId["ShouldSeedCredentials"] = "shouldSeedCredentials"; + // DPI_ShouldShowDataSourceConnectionError, having type bool + ParameterId["ShouldShowDataSourceConnectionError"] = "shouldShowDataSourceConnectionError"; + // DPI_ShouldShowDistance, having type bool + ParameterId["ShouldShowDistance"] = "shouldShowDistance"; + // DPI_ShouldShowHiddenField, having type bool + ParameterId["ShouldShowHiddenField"] = "shouldShowHiddenField"; + // DPI_ShouldShowMapScale, having type bool + ParameterId["ShouldShowMapScale"] = "shouldShowMapScale"; + // DPI_ShouldURLEscape, having type bool + ParameterId["ShouldURLEscape"] = "shouldUrlEscape"; + // DPI_ShouldUpdateDomainInfo, having type bool + ParameterId["ShouldUpdateDomainInfo"] = "shouldUpdateDomInfo"; + // DPI_ShowAddToFilter, having type bool + ParameterId["ShowAddToFilter"] = "showAddToFilterButton"; + // DPI_ShowAliases, having type bool + ParameterId["ShowAliases"] = "showAliases"; + // DPI_ShowAllPages, having type bool + ParameterId["ShowAllPages"] = "showAllPages"; + // DPI_ShowApply, having type bool + ParameterId["ShowApply"] = "showApplyButton"; + // DPI_ShowApplyAndCancelButtons, having type bool + ParameterId["ShowApplyAndCancelButtons"] = "showApplyAndCancelButtons"; + // DPI_ShowAuthenticationOptions, having type bool + ParameterId["ShowAuthenticationOptions"] = "showAuthenticationOptions"; + // DPI_ShowAuthenticationSetting, having type bool + ParameterId["ShowAuthenticationSetting"] = "showAuthenticationSetting"; + // DPI_ShowAuto, having type bool + ParameterId["ShowAuto"] = "showAuto"; + // DPI_ShowBold, having type bool + ParameterId["ShowBold"] = "showBoldOption"; + // DPI_ShowButtons, having type bool + ParameterId["ShowButtons"] = "showButtons"; + // DPI_ShowCaption, having type bool + ParameterId["ShowCaption"] = "showCaption"; + // DPI_ShowColorLegend, having type bool + ParameterId["ShowColorLegend"] = "showColorLegend"; + // DPI_ShowDataGridInlineRename, having type bool + ParameterId["ShowDataGridInlineRename"] = "showDataGridInlineRename"; + // DPI_ShowDetailMessages, having type bool + ParameterId["ShowDetailMessages"] = "showDetailMessages"; + // DPI_ShowDate, having type bool + ParameterId["ShowDate"] = "showDate"; + // DPI_ShowDragLabel, having type bool + ParameterId["ShowDragLabel"] = "showDragLabel"; + // DPI_ShowDropMeasures, having type bool + ParameterId["ShowDropMeasures"] = "showDropMeasures"; + // DPI_ShowEmbedAll, having type bool + ParameterId["ShowEmbedAll"] = "showEmbedAll"; + // DPI_ShowEntireImage, having type bool + ParameterId["ShowEntireImage"] = "showEntireImage"; + // DPI_ShowExclude, having type bool + ParameterId["ShowExclude"] = "showExcludeButton"; + // DPI_ShowFloatingZoomToolbar, having type bool + ParameterId["ShowFloatingZoomToolbar"] = "showFloatingZoomToolbar"; + // DPI_ShowFormatter, having type bool + ParameterId["ShowFormatter"] = "showFormatter"; + // DPI_ShowFullSchedules, having type bool + ParameterId["ShowFullSchedules"] = "showFullSchedules"; + // DPI_ShowGeographicSearch, having type bool + ParameterId["ShowGeographicSearch"] = "showGeographicSearch"; + // DPI_ShowHiddenFields, having type bool + ParameterId["ShowHiddenFields"] = "showHiddenFields"; + // DPI_ShowHistoryControls, having type bool + ParameterId["ShowHistoryControls"] = "showHistoryControls"; + // DPI_ShowIncludeLocalFiles, having type bool + ParameterId["ShowIncludeLocalFiles"] = "showIncludeLocalFiles"; + // DPI_ShowIncludeOtherOption, having type bool + ParameterId["ShowIncludeOtherOption"] = "showIncludeOtherOption"; + // DPI_ShowIncludeSelections, having type bool + ParameterId["ShowIncludeSelections"] = "showIncludeSelections"; + // DPI_ShowIncrSchedules, having type bool + ParameterId["ShowIncrSchedules"] = "showIncrSchedules"; + // DPI_ShowInnerMostLevel, having type bool + ParameterId["ShowInnerMostLevel"] = "showInnermostLevel"; + // DPI_ShowItalics, having type bool + ParameterId["ShowItalics"] = "showItalicsOption"; + // DPI_ShowLegend, having type bool + ParameterId["ShowLegend"] = "showLegend"; + // DPI_ShowLockedPermissionsIcon, having type bool + ParameterId["ShowLockedPermissionsIcon"] = "showLockedPermissionsIcon"; + // DPI_ShowManageDatasources, having type bool + ParameterId["ShowManageDatasources"] = "showManageDatasources"; + // DPI_ShowMapLegend, having type bool + ParameterId["ShowMapLegend"] = "showMapLegend"; + // DPI_ShowMapScale, having type bool + ParameterId["ShowMapScale"] = "showMapScale"; + // DPI_ShowMappedFilterCols, having type bool + ParameterId["ShowMappedFilterCols"] = "showMappedFilterColumns"; + // DPI_ShowName, having type bool + ParameterId["ShowName"] = "showName"; + // DPI_ShowNone, having type bool + ParameterId["ShowNone"] = "showNone"; + // DPI_ShowPagePlayback, having type bool + ParameterId["ShowPagePlayback"] = "showPagePlayback"; + // DPI_ShowPageReadout, having type bool + ParameterId["ShowPageReadout"] = "showPageReadout"; + // DPI_ShowPageSlider, having type bool + ParameterId["ShowPageSlider"] = "showPageSlider"; + // DPI_ShowParent, having type bool + ParameterId["ShowParent"] = "showParent"; + // DPI_ShowPercentages, having type bool + ParameterId["ShowPercentages"] = "showPercentages"; + // DPI_ShowPredictionIntervals, having type bool + ParameterId["ShowPredictionIntervals"] = "showPredictionIntervals"; + // DPI_ShowPublishedDatasources, having type bool + ParameterId["ShowPublishedDatasources"] = "showPublishedDatasources"; + // DPI_ShowRelDatePicker, having type bool + ParameterId["ShowRelDatePicker"] = "showRelDatePicker"; + // DPI_ShowReplaceDatasource, having type bool + ParameterId["ShowReplaceDatasource"] = "showReplaceDatasource"; + // DPI_ShowSeparator, having type bool + ParameterId["ShowSeparator"] = "showSeparator"; + // DPI_ShowShapeLegend, having type bool + ParameterId["ShowShapeLegend"] = "showShapeLegend"; + // DPI_ShowSizeLegend, having type bool + ParameterId["ShowSizeLegend"] = "showSizeLegend"; + // DPI_ShowShelf, having type bool + ParameterId["ShowShelf"] = "showShelf"; + // DPI_ShowStructure, having type bool + ParameterId["ShowStructure"] = "showStructure"; + // DPI_ShowSyncClientOptions, having type bool + ParameterId["ShowSyncClientOptions"] = "showSyncClientOptions"; + // DPI_ShowTabsAllowed, having type bool + ParameterId["ShowTabsAllowed"] = "showTabsAllowed"; + // DPI_ShowTime, having type bool + ParameterId["ShowTime"] = "showTime"; + // DPI_ShowTitle, having type bool + ParameterId["ShowTitle"] = "showTitle"; + // DPI_ShowTransSlider, having type bool + ParameterId["ShowTransSlider"] = "showTransparencySlider"; + // DPI_ShowUnderline, having type bool + ParameterId["ShowUnderline"] = "showUnderlineOption"; + // DPI_ShowUserThumbnailOptions, having type bool + ParameterId["ShowUserThumbnailOptions"] = "showUserThumbnailOptions"; + // DPI_ShowView, having type bool + ParameterId["ShowView"] = "showView"; + // DPI_ShowViews, having type bool + ParameterId["ShowViews"] = "showViews"; + // DPI_ShowingPageLoadError, having type bool + ParameterId["ShowingPageLoadError"] = "showingPageLoadError"; + // DPI_SupressAliases, having type bool + ParameterId["SupressAliases"] = "suspressAliases"; + // DPI_SupressThousandsSeparator, having type bool + ParameterId["SupressThousandsSeparator"] = "supressThousandsSeparator"; + // DPI_SingleSelectOnly, having type bool + ParameterId["SingleSelectOnly"] = "singleSelectOnly"; + // DPI_SkipIfActive, having type bool + ParameterId["SkipIfActive"] = "skipIfActive"; + // DPI_SkipRefresh, having type bool + ParameterId["SkipRefresh"] = "skipRefresh"; + // DPI_SkipValidation, having type bool + ParameterId["SkipValidation"] = "skipValidation"; + // DPI_Skipped, having type bool + ParameterId["Skipped"] = "skipped"; + // DPI_SortFieldIsInvalid, having type bool + ParameterId["SortFieldIsInvalid"] = "sortFieldIsInvalid"; + // DPI_SortModeIsAuto, having type bool + ParameterId["SortModeIsAuto"] = "sortModeIsAuto"; + // DPI_SplitOnEdgeSnap, having type bool + ParameterId["SplitOnEdgeSnap"] = "splitOnEdgeSnap"; + // DPI_StandardDeviationAllowed, having type bool + ParameterId["StandardDeviationAllowed"] = "standardDeviationAllowed"; + // DPI_State, having type bool + ParameterId["State"] = "state"; + // DPI_StoredProcDisabled, having type bool + ParameterId["StoredProcDisabled"] = "storedProcDisabled"; + // DPI_StoredProcsDropable, having type bool + ParameterId["StoredProcsDropable"] = "storedProcsDropable"; + // DPI_StoryIsEmpty, having type bool + ParameterId["StoryIsEmpty"] = "storyIsEmpty"; + // DPI_StoryPointIsEmpty, having type bool + ParameterId["StoryPointIsEmpty"] = "storyPointIsEmpty"; + // DPI_SuccessfulSave, having type bool + ParameterId["SuccessfulSave"] = "successfulSave"; + // DPI_SupportXAxis, having type bool + ParameterId["SupportXAxis"] = "supportXAxis"; + // DPI_SupportYAxis, having type bool + ParameterId["SupportYAxis"] = "supportYAxis"; + // DPI_SupportsCenterAlignment, having type bool + ParameterId["SupportsCenterAlignment"] = "supportsCenterAlignment"; + // DPI_SupportsDBFilters, having type bool + ParameterId["SupportsDBFilters"] = "supportsDatabaseFilters"; + // DPI_SupportsMultipleValues, having type bool + ParameterId["SupportsMultipleValues"] = "supportsMultipleValues"; + // DPI_SupportsRightAlignment, having type bool + ParameterId["SupportsRightAlignment"] = "supportsRightAlignment"; + // DPI_SupportsTableFilters, having type bool + ParameterId["SupportsTableFilters"] = "supportsTableFilters"; + // DPI_Symmetric, having type bool + ParameterId["Symmetric"] = "symmetric"; + // DPI_SyncAutomaticDrill, having type bool + ParameterId["SyncAutomaticDrill"] = "syncAutomaticDrill"; + // DPI_TabsAllowed, having type bool + ParameterId["TabsAllowed"] = "tabsAllowed"; + // DPI_TextDropdownState, having type bool + ParameterId["TextDropdownState"] = "toggleState"; + // DPI_TitleInline, having type bool + ParameterId["TitleInline"] = "titleInline"; + // DPI_ToggleHighlightStateChanged, having type bool + ParameterId["ToggleHighlightStateChanged"] = "toggleHighlight"; + // DPI_Transformed80Format, having type bool + ParameterId["Transformed80Format"] = "oldFormat"; + // DPI_TrendLineSelected, having type bool + ParameterId["TrendLineSelected"] = "trendLineSelected"; + // DPI_TruncDate, having type bool + ParameterId["TruncDate"] = "truncDate"; + // DPI_TupleSelected, having type bool + ParameterId["TupleSelected"] = "tupleSelected"; + // DPI_UIAutomationDidPageLoad, having type bool + ParameterId["UIAutomationDidPageLoad"] = "uiAutomationDidPageLoad"; + // DPI_UIAutomationIsChecked, having type bool + ParameterId["UIAutomationIsChecked"] = "uiAutomationIsChecked"; + // DPI_UIAutomationIsEnabled, having type bool + ParameterId["UIAutomationIsEnabled"] = "uiAutomationIsEnabled"; + // DPI_UIAutomationIsEventProcessed, having type bool + ParameterId["UIAutomationIsEventProcessed"] = "uiAutomationIsEventProcessed"; + // DPI_UIAutomationIsFocused, having type bool + ParameterId["UIAutomationIsFocused"] = "uiAutomationIsFocused"; + // DPI_UIAutomationIsFound, having type bool + ParameterId["UIAutomationIsFound"] = "uiAutomationIsFound"; + // DPI_UIAutomationIsReadonly, having type bool + ParameterId["UIAutomationIsReadonly"] = "uiAutomationIsReadonly"; + // DPI_UIAutomationIsSelected, having type bool + ParameterId["UIAutomationIsSelected"] = "uiAutomationIsSelected"; + // DPI_UpdateAllPanes, having type bool + ParameterId["UpdateAllPanes"] = "updateAllPanes"; + // DPI_UpdateDSCaptionOnly, having type bool + ParameterId["UpdateDSCaptionOnly"] = "updateDsCaptionOnly"; + // DPI_UpdateModelFromParams, having type bool + ParameterId["UpdateModelFromParams"] = "updateModelFromParams"; + // DPI_UpdateShelves, having type bool + ParameterId["UpdateShelves"] = "updateShelves"; + // DPI_UpdatesUseContext, having type bool + ParameterId["UpdatesUseContext"] = "updatesUseContext"; + // DPI_UpgradeDocumentVersion, having type bool + ParameterId["UpgradeDocumentVersion"] = "upgradeDocumentVersion"; + // DPI_UseAliases, having type bool + ParameterId["UseAliases"] = "useAliases"; + // DPI_UseBlankForNull, having type bool + ParameterId["UseBlankForNull"] = "useBlankForNull"; + // DPI_UseCalculationEditor, having type bool + ParameterId["UseCalculationEditor"] = "useCalculationEditor"; + // DPI_UseCenterValue, having type bool + ParameterId["UseCenterValue"] = "useCenterValue"; + // DPI_UseColor, having type bool + ParameterId["UseColor"] = "useColor"; + // DPI_UseCustomMarkSize, having type bool + ParameterId["UseCustomMarkSize"] = "useCustomMarkSize"; + // DPI_UseDarkIcons, having type bool + ParameterId["UseDarkIcons"] = "useDarkIcons"; + // DPI_UseDataStoreMinfiedNames, having type bool + ParameterId["UseDataStoreMinfiedNames"] = "useDatastoreMinNames"; + // DPI_UseInitialDomainType, having type bool + ParameterId["UseInitialDomainType"] = "useInitialDomainType"; + // DPI_UseEndValue, having type bool + ParameterId["UseEndValue"] = "useEndValue"; + // DPI_UseForOverlayHitTest, having type bool + ParameterId["UseForOverlayHitTest"] = "useForOverlayHitTest"; + // DPI_UseFullColorRange, having type bool + ParameterId["UseFullColorRange"] = "useFullColorRange"; + // DPI_UseFullDomain, having type bool + ParameterId["UseFullDomain"] = "useFullDomain"; + // DPI_UseInlineImages, having type bool + ParameterId["UseInlineImages"] = "useInlineImages"; + // DPI_UseMeasures, having type bool + ParameterId["UseMeasures"] = "useMeasures"; + // DPI_UseNewQuickFilters, having type bool + ParameterId["UseNewQuickFilters"] = "useNewQuickFilters"; + // DPI_UseNotificationReturn, having type bool + ParameterId["UseNotificationReturn"] = "useNotificationReturn"; + // DPI_UseParameters, having type bool + ParameterId["UseParameters"] = "useParameters"; + // DPI_UseSelector, having type bool + ParameterId["UseSelector"] = "useSelector"; + // DPI_UseSignificantDigits, having type bool + ParameterId["UseSignificantDigits"] = "useSignificantDigits"; + // DPI_UseSpecialStrings, having type bool + ParameterId["UseSpecialStrings"] = "useSpecialStrings"; + // DPI_UseStartValue, having type bool + ParameterId["UseStartValue"] = "useStartValue"; + // DPI_UseTabs, having type bool + ParameterId["UseTabs"] = "useTabs"; + // DPI_UseTabletAsDefaultPreview, having type bool + ParameterId["UseTabletAsDefaultPreview"] = "useTabletAsDefaultPreview"; + // DPI_UseTargetPt, having type bool + ParameterId["UseTargetPt"] = "useTargetPoint"; + // DPI_UseUSLocale, having type bool + ParameterId["UseUSLocale"] = "useUsLocale"; + // DPI_UseYAxis, having type bool + ParameterId["UseYAxis"] = "useYAxis"; + // DPI_Valid, having type bool + ParameterId["Valid"] = "valid"; + // DPI_VizDataV82, having type bool + ParameterId["VizDataV82"] = "vizData82"; + // DPI_WMSConnectionSuccessful, having type bool + ParameterId["WMSConnectionSuccessful"] = "wmsConnectionSuccessful"; + // DPI_WMSShouldUseTiles, having type bool + ParameterId["WMSShouldUseTiles"] = "wmsShouldUseTiles"; + // DPI_WantDomain, having type bool + ParameterId["WantDomain"] = "wantDomain"; + // DPI_WorkbookModified, having type bool + ParameterId["WorkbookModified"] = "workbookModified"; + // DPI_ZoomIn, having type bool + ParameterId["ZoomIn"] = "zoomIn"; + // DPI_ShowMarkLabels, having type bool + ParameterId["ShowMarkLabels"] = "showMarkLabels"; + // DPI_HasDuplicates, having type bool + ParameterId["HasDuplicates"] = "hasDuplicates"; + // DPI_HasUserDefinedIncrement, having type bool + ParameterId["HasUserDefinedIncrement"] = "hasUserDefinedIncrement"; + // DPI_HasUserDefinedMax, having type bool + ParameterId["HasUserDefinedMax"] = "hasUserDefinedMax"; + // DPI_HasUserDefinedMin, having type bool + ParameterId["HasUserDefinedMin"] = "hasUserDefinedMin"; + // DPI_IsDuplicate, having type bool + ParameterId["IsDuplicate"] = "isDuplicate"; + // DPI_IsEditingValue, having type bool + ParameterId["IsEditingValue"] = "isEditingValue"; + // DPI_ShouldRestrictDataType, having type bool + ParameterId["ShouldRestrictDataType"] = "restrictDataType"; + // DPI_EnableIncludeZero, having type bool + ParameterId["EnableIncludeZero"] = "enableIncludeZero"; + // DPI_EnableSyncDualAxes, having type bool + ParameterId["EnableSyncDualAxes"] = "enableSynchronizeDualAxes"; + // DPI_EnableShowTimes, having type bool + ParameterId["EnableShowTimes"] = "enableShowTimes"; + // DPI_EnableTickMarksTab, having type bool + ParameterId["EnableTickMarksTab"] = "enableTickMarksTab"; + // DPI_IsTemporal, having type bool + ParameterId["IsTemporal"] = "isTemporal"; + // DPI_ShouldIncludeZero, having type bool + ParameterId["ShouldIncludeZero"] = "shouldIncludeZero"; + // DPI_ShouldReverseAxis, having type bool + ParameterId["ShouldReverseAxis"] = "shouldReverseAxis"; + // DPI_ShouldShowTimes, having type bool + ParameterId["ShouldShowTimes"] = "shouldShowTimes"; + // DPI_UseAutomaticAxisSubtitle, having type bool + ParameterId["UseAutomaticAxisSubtitle"] = "useAutomaticSubtitle"; + // DPI_UseAutomaticAxisTitle, having type bool + ParameterId["UseAutomaticAxisTitle"] = "useAutomaticTitle"; + // DPI_AllSelected, having type bool + ParameterId["AllSelected"] = "allSelected"; + // DPI_AutoCommit, having type bool + ParameterId["AutoCommit"] = "autoCommit"; + // DPI_CacheOnly, having type bool + ParameterId["CacheOnly"] = "cacheOnly"; + // DPI_IncludeData, having type bool + ParameterId["IncludeData"] = "includeData"; + // DPI_IsPatternExclusive, having type bool + ParameterId["IsPatternExclusive"] = "isPatternExclusive"; + // DPI_IsSearchable, having type bool + ParameterId["IsSearchable"] = "isSearchable"; + // DPI_IsSelectionExclusive, having type bool + ParameterId["IsSelectionExclusive"] = "isSelectionExclusive"; + // DPI_ResetNewFilter, having type bool + ParameterId["ResetNewFilter"] = "resetNewFilter"; + // DPI_UseAllWhenManualEmpty, having type bool + ParameterId["UseAllWhenManualEmpty"] = "useAllWhenManualEmpty"; + // DPI_UseAllWhenPatternEmpty, having type bool + ParameterId["UseAllWhenPatternEmpty"] = "useAllWhenPatternEmpty"; + // DPI_GroupByDrillDown, having type bool + ParameterId["GroupByDrillDown"] = "groupByDrillDown"; + // DPI_GroupByTable, having type bool + ParameterId["GroupByTable"] = "groupByTable"; + // DPI_IncludeGroups, having type bool + ParameterId["IncludeGroups"] = "includeGroups"; + // DPI_IncludePendingState, having type bool + ParameterId["IncludePendingState"] = "includePendingState"; + // DPI_IncludeFieldMenus, having type bool + ParameterId["IncludeFieldMenus"] = "includeFieldMenus"; + // DPI_IncludeFormattedValues, having type bool + ParameterId["IncludeFormattedValues"] = "includeFormattedValues"; + // DPI_IncludeColumnInstances, having type bool + ParameterId["IncludeColumnInstances"] = "includeColumnInstances"; + // DPI_IncludeAdHocCalcs, having type bool + ParameterId["IncludeAdHocCalcs"] = "includeAdhocCalcs"; + // DPI_IncludeHiddenInvalidFields, having type bool + ParameterId["IncludeHiddenInvalidFields"] = "includeHiddenInvalidFields"; + // DPI_IncludeNonExtractedColumns, having type bool + ParameterId["IncludeNonExtractedColumns"] = "includeNonExtractedColumns"; + // DPI_IncludeCalculatedFieldFormulas, having type bool + ParameterId["IncludeCalculatedFieldFormulas"] = "includeCalculatedFieldFormulas"; + // DPI_SetDataPreviewCustomFieldOrder, having type bool + ParameterId["SetDataPreviewCustomFieldOrder"] = "setDataPreviewCustomFieldOrder"; + // DPI_CustomSplitAllowSplitFromRight, having type bool + ParameterId["CustomSplitAllowSplitFromRight"] = "customSplitAllowSplitFromRight"; + // DPI_IsChanged, having type bool + ParameterId["IsChanged"] = "isChanged"; + // DPI_ShowFontColorPicker, having type bool + ParameterId["ShowFontColorPicker"] = "showFontColorPicker"; + // DPI_ShowFontFamilyPicker, having type bool + ParameterId["ShowFontFamilyPicker"] = "showFontFamilyPicker"; + // DPI_ShowFontSizePicker, having type bool + ParameterId["ShowFontSizePicker"] = "showFontSizePicker"; + // DPI_ShowFontStyleButtons, having type bool + ParameterId["ShowFontStyleButtons"] = "showFontStyleButtons"; + // DPI_ShowLineForAll, having type bool + ParameterId["ShowLineForAll"] = "showLineForAll"; + // DPI_ShowLineForColumn, having type bool + ParameterId["ShowLineForColumn"] = "showLineForColumn"; + // DPI_ShowLineForRow, having type bool + ParameterId["ShowLineForRow"] = "showLineForRow"; + // DPI_ShowLinePatternPicker, having type bool + ParameterId["ShowLinePatternPicker"] = "showLinePatternPicker"; + // DPI_ShowLineTransparency, having type bool + ParameterId["ShowLineTransparency"] = "showLineTransparency"; + // DPI_ShowLineWidthPicker, having type bool + ParameterId["ShowLineWidthPicker"] = "showLineWidthPicker"; + // DPI_CanBeAuto, having type bool + ParameterId["CanBeAuto"] = "canBeAuto"; + // DPI_CanBeNone, having type bool + ParameterId["CanBeNone"] = "canBeNone"; + // DPI_CanMatchMarkColor, having type bool + ParameterId["CanMatchMarkColor"] = "canMatchMarkColor"; + // DPI_HasOpacity, having type bool + ParameterId["HasOpacity"] = "hasOpacity"; + // DPI_IncludeAllHidden, having type bool + ParameterId["IncludeAllHidden"] = "includeAllHidden"; + // DPI_IncludeCurrent, having type bool + ParameterId["IncludeCurrent"] = "includeCurrent"; + // DPI_IsIncluded, having type bool + ParameterId["IsIncluded"] = "isIncluded"; + // DPI_IsRelative, having type bool + ParameterId["IsRelative"] = "isRelative"; + // DPI_IsSecondaryAllowed, having type bool + ParameterId["IsSecondaryAllowed"] = "isSecondaryAllowed"; + // DPI_NullIfIncomplete, having type bool + ParameterId["NullIfIncomplete"] = "nullIfIncomplete"; + // DPI_IsCalcAssistanceEnabled, having type bool + ParameterId["IsCalcAssistanceEnabled"] = "isCalcAssistanceEnabled"; + // DPI_UseSecondaryCalc, having type bool + ParameterId["UseSecondaryCalc"] = "useSecondaryCalc"; + // DPI_CanLoad, having type bool + ParameterId["CanLoad"] = "canLoad"; + // DPI_DescriptionOnly, having type bool + ParameterId["DescriptionOnly"] = "descriptionOnly"; + // DPI_AreAliasesSupported, having type bool + ParameterId["AreAliasesSupported"] = "areAliasesSupported"; + // DPI_AreRefColumnsSupported, having type bool + ParameterId["AreRefColumnsSupported"] = "areRefColumnsSupported"; + // DPI_IsAggregated, having type bool + ParameterId["IsAggregated"] = "isAggregated"; + // DPI_IsExportSupported, having type bool + ParameterId["IsExportSupported"] = "isExportSupported"; + // DPI_IsMeasureNames, having type bool + ParameterId["IsMeasureNames"] = "isMeasureNames"; + // DPI_IsSummarySupported, having type bool + ParameterId["IsSummarySupported"] = "isSummarySupported"; + // DPI_IsTopNSupported, having type bool + ParameterId["IsTopNSupported"] = "isTopNSupported"; + // DPI_IsUnderlyingSupported, having type bool + ParameterId["IsUnderlyingSupported"] = "isUnderlyingSupported"; + // DPI_OnlyExportSummary, having type bool + ParameterId["OnlyExportSummary"] = "onlyExportSummary"; + // DPI_ShowAllFields, having type bool + ParameterId["ShowAllFields"] = "showAllFields"; + // DPI_UseTablePtrs, having type bool + ParameterId["UseTablePtrs"] = "useTablePtrs"; + // DPI_OnlyFetchSummary, having type bool + ParameterId["OnlyFetchSummary"] = "onlyFetchSummary"; + // DPI_IsDeviceLayoutCustomized, having type bool + ParameterId["IsDeviceLayoutCustomized"] = "isDeviceLayoutCustomized"; + // DPI_IsDeviceSizeCustomized, having type bool + ParameterId["IsDeviceSizeCustomized"] = "isDeviceSizeCustomized"; + // DPI_IsDeviceSupportedByMobileApp, having type bool + ParameterId["IsDeviceSupportedByMobileApp"] = "isDeviceSupportedByMobileApp"; + // DPI_IsPortrait, having type bool + ParameterId["IsPortrait"] = "isPortrait"; + // DPI_IsPortraitByDefault, having type bool + ParameterId["IsPortraitByDefault"] = "isPortraitByDefault"; + // DPI_IsUserCustomFormat, having type bool + ParameterId["IsUserCustomFormat"] = "isUserCustomFormat"; + // DPI_ShouldDisplayRebuildExtractMessage, having type bool + ParameterId["ShouldDisplayRebuildExtractMessage"] = "shouldDisplayRebuildExtractMessage"; + // DPI_SupportsCustomStartOfWeek, having type bool + ParameterId["SupportsCustomStartOfWeek"] = "supportsCustomStartOfWeek"; + // DPI_NeedsConnectPrompt, having type bool + ParameterId["NeedsConnectPrompt"] = "needsConnectPrompt"; + // DPI_NeedsCloseDataSourceErrorPrompt, having type bool + ParameterId["NeedsCloseDataSourceErrorPrompt"] = "needsCloseDsErrorPrompt"; + // DPI_ClearCurrentSelection, having type bool + ParameterId["ClearCurrentSelection"] = "clearCurrentSelection"; + // DPI_HasContains, having type bool + ParameterId["HasContains"] = "hasContains"; + // DPI_HasEndsWith, having type bool + ParameterId["HasEndsWith"] = "hasEndsWith"; + // DPI_HasReplaceSelection, having type bool + ParameterId["HasReplaceSelection"] = "hasReplaceSelection"; + // DPI_HasStartsWith, having type bool + ParameterId["HasStartsWith"] = "hasStartsWith"; + // DPI_IsLeafSelectionOnly, having type bool + ParameterId["IsLeafSelectionOnly"] = "isLeafSelectionOnly"; + // DPI_ReplaceSelection, having type bool + ParameterId["ReplaceSelection"] = "replaceSelection"; + // DPI_IsColorPaletteCustomized, having type bool + ParameterId["IsColorPaletteCustomized"] = "isColorPaletteCustomized"; + // DPI_ReversePaletteOrder, having type bool + ParameterId["ReversePaletteOrder"] = "reversePaletteOrder"; + // DPI_TriedToConnect, having type bool + ParameterId["TriedToConnect"] = "triedToConnect"; + // DPI_ScaleMarksInAxisUnits, having type bool + ParameterId["ScaleMarksInAxisUnits"] = "scaleMarksInAxisUnits"; + // DPI_ShowMarkSizingOptions, having type bool + ParameterId["ShowMarkSizingOptions"] = "showMarkSizingOptions"; + // DPI_UseSizeFieldCaption, having type bool + ParameterId["UseSizeFieldCaption"] = "useSizeFieldCaption"; + // DPI_IsLicensedAndRegistered, having type bool + ParameterId["IsLicensedAndRegistered"] = "isLicensedAndRegistered"; + // DPI_SetNewDatasourceActive, having type bool + ParameterId["SetNewDatasourceActive"] = "setNewDatasourceActive"; + // DPI_AllowCustomLabel, having type bool + ParameterId["AllowCustomLabel"] = "allowCustomLabel"; + // DPI_IsMostRecentModeValid, having type bool + ParameterId["IsMostRecentModeValid"] = "isMostRecentModeValid"; + // DPI_MustShowLabels, having type bool + ParameterId["MustShowLabels"] = "mustShowLabels"; + // DPI_ShowRunningOrderLabels, having type bool + ParameterId["ShowRunningOrderLabels"] = "showRunningOrderLabels"; + // DPI_IsDroppedFile, having type bool + ParameterId["IsDroppedFile"] = "isDroppedFile"; + // DPI_IsInitialized, having type bool + ParameterId["IsInitialized"] = "isInitialized"; + // DPI_IncludeDashboard, having type bool + ParameterId["IncludeDashboard"] = "includeDashboard"; + // DPI_ChildrenCanResize, having type bool + ParameterId["ChildrenCanResize"] = "childrenCanResize"; + // DPI_BoolMap, having type Dictionary(of bool) + ParameterId["BoolMap"] = "boolMap"; + // DPI_CheckedMenuItems, having type bool[] + ParameterId["CheckedMenuItems"] = "checkedMenuItems"; + // DPI_IncludedSheetValues, having type bool[] + ParameterId["IncludedSheetValues"] = "includedSheetValues"; + // DPI_SortOrderVector, having type bool[] + ParameterId["SortOrderVector"] = "sortOrderVector"; + // DPI_ActionName, having type string + ParameterId["ActionName"] = "actionName"; + // DPI_ActionSourceText, having type string + ParameterId["ActionSourceText"] = "actionSourceText"; + // DPI_ActionTypeAsString, having type string + ParameterId["ActionTypeAsString"] = "actionTypeAsString"; + // DPI_ActiveTab, having type string + ParameterId["ActiveTab"] = "active_tab"; + // DPI_AddInFeatureName, having type string + ParameterId["AddInFeatureName"] = "addInFeatureName"; + // DPI_AddInId, having type string + ParameterId["AddInId"] = "addInId"; + // DPI_AddInstanceId, having type string + ParameterId["AddInstanceId"] = "addInInstanceId"; + // DPI_AddInName, having type string + ParameterId["AddInName"] = "addInName"; + // DPI_AddInLocale, having type string + ParameterId["AddInLocale"] = "addInLocale"; + // DPI_AddInLanguage, having type string + ParameterId["AddInLanguage"] = "addInLanguage"; + // DPI_APIVersion, having type string + ParameterId["APIVersion"] = "apiVersion"; + // DPI_Alias, having type string + ParameterId["Alias"] = "alias"; + // DPI_AnchorDate, having type string + ParameterId["AnchorDate"] = "anchorDate"; + // DPI_AnnotationRes, having type string + ParameterId["AnnotationRes"] = "annotationRes"; + // DPI_ReadId, having type string + ParameterId["ReadId"] = "readId"; + // DPI_AnnotationText, having type string + ParameterId["AnnotationText"] = "annotationText"; + // DPI_ArchiveDirectory, having type string + ParameterId["ArchiveDirectory"] = "archiveDirectory"; + // DPI_ArchiveFullPath, having type string + ParameterId["ArchiveFullPath"] = "archiveFullPath"; + // DPI_AtTheLevelInvalidFieldCaption, having type string + ParameterId["AtTheLevelInvalidFieldCaption"] = "atTheLevelInvalidFieldCaption"; + // DPI_AutoCompleteSubstring, having type string + ParameterId["AutoCompleteSubstring"] = "acSubstring"; + // DPI_AutosaveFileId, having type string + ParameterId["AutosaveFileId"] = "autosaveFileId"; + // DPI_AutosaveTimerInterval, having type string + ParameterId["AutosaveTimerInterval"] = "autosaveTimerInterval"; + // DPI_BaseColumnCaption, having type string + ParameterId["BaseColumnCaption"] = "baseColumnCaption"; + // DPI_ButtonObjectClickAction, having type string + ParameterId["ButtonObjectClickAction"] = "buttonObjectClickAction"; + // DPI_ButtonObjectImagePath, having type string + ParameterId["ButtonObjectImagePath"] = "buttonObjectImagePath"; + // DPI_ClearButtonText, having type string + ParameterId["ClearButtonText"] = "clearButtonText"; + // DPI_ColorPaletteId, having type string + ParameterId["ColorPaletteId"] = "colorPaletteId"; + // DPI_ColorPaletteName, having type string + ParameterId["ColorPaletteName"] = "colorPaletteName"; + // DPI_ColorSwatch, having type string + ParameterId["ColorSwatch"] = "colorSwatch"; + // DPI_CommandName, having type string + ParameterId["CommandName"] = "commandName"; + // DPI_ConfidenceLevelValue, having type string + ParameterId["ConfidenceLevelValue"] = "confidenceLevelValue"; + // DPI_CountDistinctStr, having type string + ParameterId["CountDistinctStr"] = "countDistinctStr"; + // DPI_CrossTabFilepath, having type string + ParameterId["CrossTabFilepath"] = "crossTabFilepath"; + // DPI_CSSMargin, having type string + ParameterId["CSSMargin"] = "cssMargin"; + // DPI_CSSWhitespace, having type string + ParameterId["CSSWhitespace"] = "cssWhitespace"; + // DPI_DBPassword, having type string + ParameterId["DBPassword"] = "dbPassword"; + // DPI_DBUsername, having type string + ParameterId["DBUsername"] = "dbUsername"; + // DPI_DataAlertConditionText, having type string + ParameterId["DataAlertConditionText"] = "dataAlertConditionText"; + // DPI_DataAlertMeasureText, having type string + ParameterId["DataAlertMeasureText"] = "dataAlertMeasureText"; + // DPI_DataAlertSpecSerializedText, having type string + ParameterId["DataAlertSpecSerializedText"] = "dataAlertSpecSerializedText"; + // DPI_DataAlertDefaultSubject, having type string + ParameterId["DataAlertDefaultSubject"] = "dataAlertDefaultSubject"; + // DPI_DataAlertThresholdText, having type string + ParameterId["DataAlertThresholdText"] = "dataAlertThresholdText"; + // DPI_DataGridSortColumnName, having type string + ParameterId["DataGridSortColumnName"] = "datagridSortColumnName"; + // DPI_DataServerConnectionError, having type string + ParameterId["DataServerConnectionError"] = "dataServerConnectionError"; + // DPI_DatabaseFilter, having type string + ParameterId["DatabaseFilter"] = "databaseFilter"; + // DPI_DatabaseFilterPrompt, having type string + ParameterId["DatabaseFilterPrompt"] = "databaseFilterPrompt"; + // DPI_DatasourceRanking, having type string + ParameterId["DatasourceRanking"] = "datasourceRanking"; + // DPI_DatasourceUrl, having type string + ParameterId["DatasourceUrl"] = "datasourceUrl"; + // DPI_DatasourceUsername, having type string + ParameterId["DatasourceUsername"] = "datasourceUsername"; + // DPI_DateFormat, having type string + ParameterId["DateFormat"] = "dateFormat"; + // DPI_DatePart, having type string + ParameterId["DatePart"] = "datePart"; + // DPI_DatePartAbbrev, having type string + ParameterId["DatePartAbbrev"] = "datePartAbbrev"; + // DPI_DefaultHierarchyName, having type string + ParameterId["DefaultHierarchyName"] = "defaultHierarchyName"; + // DPI_DefaultMenuItemKey, having type string + ParameterId["DefaultMenuItemKey"] = "defaultMenuItemKey"; + // DPI_Delimiter, having type string + ParameterId["Delimiter"] = "delimiter"; + // DPI_DeviceName, having type string + ParameterId["DeviceName"] = "deviceName"; + // DPI_DeviceType, having type string + ParameterId["DeviceType"] = "deviceType"; + // DPI_DisplayPath, having type string + ParameterId["DisplayPath"] = "displayPath"; + // DPI_DistributionValueString, having type string + ParameterId["DistributionValueString"] = "distributionValueString"; + // DPI_DrillPathName, having type string + ParameterId["DrillPathName"] = "drillPathName"; + // DPI_EmbeddedTitle, having type string + ParameterId["EmbeddedTitle"] = "embeddedTitle"; + // DPI_EnterValueText, having type string + ParameterId["EnterValueText"] = "enterValueText"; + // DPI_EscapeString, having type string + ParameterId["EscapeString"] = "escapeString"; + // DPI_ExtSvcConfigHost, having type string + ParameterId["ExtSvcConfigHost"] = "extSvcConfigHost"; + // DPI_ExtSvcConfigPassword, having type string + ParameterId["ExtSvcConfigPassword"] = "extSvcConfigPassword"; + // DPI_ExtSvcConfigPort, having type string + ParameterId["ExtSvcConfigPort"] = "extSvcConfigPort"; + // DPI_ExtSvcConfigConnectTimeout, having type string + ParameterId["ExtSvcConfigConnectTimeout"] = "extSvcConnectTimeout"; + // DPI_ExtSvcConfigPrevHost, having type string + ParameterId["ExtSvcConfigPrevHost"] = "extSvcConfigPrevHost"; + // DPI_ExtSvcConfigUsername, having type string + ParameterId["ExtSvcConfigUsername"] = "extSvcConfigUsername"; + // DPI_ExtractUpdateTime, having type string + ParameterId["ExtractUpdateTime"] = "extractUpdateTime"; + // DPI_FieldFolderName, having type string + ParameterId["FieldFolderName"] = "fieldFolderName"; + // DPI_FieldNameString, having type string + ParameterId["FieldNameString"] = "fieldName"; + // DPI_FilterSearchDomain, having type string + ParameterId["FilterSearchDomain"] = "filterSearchDomain"; + // DPI_FilterSpec, having type string + ParameterId["FilterSpec"] = "filterSpec"; + // DPI_FirstValue, having type string + ParameterId["FirstValue"] = "firstValue"; + // DPI_FolderName, having type string + ParameterId["FolderName"] = "folderName"; + // DPI_FontName, having type string + ParameterId["FontName"] = "fontName"; + // DPI_FormatString, having type string + ParameterId["FormatString"] = "formatString"; + // DPI_FormattedDisplayString, having type string + ParameterId["FormattedDisplayString"] = "formattedDisplayString"; + // DPI_FormattedIncrementValue, having type string + ParameterId["FormattedIncrementValue"] = "formattedIncrement"; + // DPI_FormattedMaxValue, having type string + ParameterId["FormattedMaxValue"] = "formattedMax"; + // DPI_FormattedMinValue, having type string + ParameterId["FormattedMinValue"] = "formattedMin"; + // DPI_FormattedValue, having type string + ParameterId["FormattedValue"] = "formattedValue"; + // DPI_FormattedCenterValue, having type string + ParameterId["FormattedCenterValue"] = "formattedCenter"; + // DPI_FormattedEndValue, having type string + ParameterId["FormattedEndValue"] = "formattedEnd"; + // DPI_FormattedStartValue, having type string + ParameterId["FormattedStartValue"] = "formattedStart"; + // DPI_PairedFormattedValue, having type string + ParameterId["PairedFormattedValue"] = "pairedFormattedValue"; + // DPI_FrameAttributes, having type string + ParameterId["FrameAttributes"] = "frameAttr"; + // DPI_GUID, having type string + ParameterId["GUID"] = "guid"; + // DPI_GeographicSearchCandidateDisplayName, having type string + ParameterId["GeographicSearchCandidateDisplayName"] = "geographicSearchCandidateDisplayName"; + // DPI_GeographicSearchCandidateParentName, having type string + ParameterId["GeographicSearchCandidateParentName"] = "geographicSearchCandidateParentName"; + // DPI_GeographicSearchCandidateType, having type string + ParameterId["GeographicSearchCandidateType"] = "geographicSearchCandidateType"; + // DPI_GeographicSearchLocale, having type string + ParameterId["GeographicSearchLocale"] = "geographicSearchLocale"; + // DPI_GeographicSearchQueryString, having type string + ParameterId["GeographicSearchQueryString"] = "geographicSearchSearchString"; + // DPI_GeographicSearchUILocale, having type string + ParameterId["GeographicSearchUILocale"] = "geographicSearchUilocale"; + // DPI_IconRes, having type string + ParameterId["IconRes"] = "iconRes"; + // DPI_ImageHash, having type string + ParameterId["ImageHash"] = "imageHash"; + // DPI_ImageName, having type string + ParameterId["ImageName"] = "imageName"; + // DPI_ImageRes, having type string + ParameterId["ImageRes"] = "imageRes"; + // DPI_IncludesSiblingsPrompt, having type string + ParameterId["IncludesSiblingsPrompt"] = "includesSiblingsPrompt"; + // DPI_IncludesSubfoldersPrompt, having type string + ParameterId["IncludesSubfoldersPrompt"] = "includesSubfoldersPrompt"; + // DPI_IncrementalScheduleIDs, having type string + ParameterId["IncrementalScheduleIDs"] = "incrementalScheduleIds"; + // DPI_InvariantKeyword, having type string + ParameterId["InvariantKeyword"] = "invariantKeyword"; + // DPI_JoinOperator, having type string + ParameterId["JoinOperator"] = "joinOperator"; + // DPI_JoinExpression, having type string + ParameterId["JoinExpression"] = "joinExpression"; + // DPI_Key, having type string + ParameterId["Key"] = "keyId"; + // DPI_Label, having type string + ParameterId["Label"] = "label"; + // DPI_PairedLabel, having type string + ParameterId["PairedLabel"] = "pairedLabel"; + // DPI_LayoutID, having type string + ParameterId["LayoutID"] = "layoutId"; + // DPI_LeftJoinExpression, having type string + ParameterId["LeftJoinExpression"] = "leftJoinExpression"; + // DPI_LimitCountExpression, having type string + ParameterId["LimitCountExpression"] = "limitCountExpression"; + // DPI_LinkTarget, having type string + ParameterId["LinkTarget"] = "linkTarget"; + // DPI_Locale, having type string + ParameterId["Locale"] = "locale"; + // DPI_LocalizedKeyword, having type string + ParameterId["LocalizedKeyword"] = "localizedKeyword"; + // DPI_MapBoxGLStyleId, having type string + ParameterId["MapBoxGLStyleId"] = "mapboxGlStyleId"; + // DPI_MapBoxStyleUrl, having type string + ParameterId["MapBoxStyleUrl"] = "mapboxStyleUrl"; + // DPI_MapBoxUsername, having type string + ParameterId["MapBoxUsername"] = "mapboxUsername"; + // DPI_MapScaleReadoutString, having type string + ParameterId["MapScaleReadoutString"] = "mapScaleReadoutString"; + // DPI_MapScaleTooltipString, having type string + ParameterId["MapScaleTooltipString"] = "mapScaleTooltipString"; + // DPI_MapSourceName, having type string + ParameterId["MapSourceName"] = "mapSourceName"; + // DPI_MaxLabel, having type string + ParameterId["MaxLabel"] = "maxLabel"; + // DPI_MinLabel, having type string + ParameterId["MinLabel"] = "minLabel"; + // DPI_ModelDescriptionParagraph, having type string + ParameterId["ModelDescriptionParagraph"] = "modelDescriptionParagraph"; + // DPI_NameTemplate, having type string + ParameterId["NameTemplate"] = "nameTemplate"; + // DPI_NewDrillPath, having type string + ParameterId["NewDrillPath"] = "newDrillPath"; + // DPI_NewFieldFolderName, having type string + ParameterId["NewFieldFolderName"] = "newFieldFolderName"; + // DPI_NewTableAlias, having type string + ParameterId["NewTableAlias"] = "newTableAlias"; + // DPI_NonFormattedValue, having type string + ParameterId["NonFormattedValue"] = "unformattedValue"; + // DPI_OAuthUserName, having type string + ParameterId["OAuthUserName"] = "oauthUsername"; + // DPI_ObjectName, having type string + ParameterId["ObjectName"] = "objectName"; + // DPI_ObjectOverrideMessage, having type string + ParameterId["ObjectOverrideMessage"] = "objectOverrideMessage"; + // DPI_OldTableAlias, having type string + ParameterId["OldTableAlias"] = "oldTableAlias"; + // DPI_OperatingSystem, having type string + ParameterId["OperatingSystem"] = "operatingSystem"; + // DPI_OriginalFilePath, having type string + ParameterId["OriginalFilePath"] = "originalFilePath"; + // DPI_OriginalFileVersion, having type string + ParameterId["OriginalFileVersion"] = "originalFileVersion"; + // DPI_PaneDescriptorKey, having type string + ParameterId["PaneDescriptorKey"] = "paneDescrKey"; + // DPI_ParentName, having type string + ParameterId["ParentName"] = "parentName"; + // DPI_ParentTable, having type string + ParameterId["ParentTable"] = "parentTable"; + // DPI_PatternFilterString, having type string + ParameterId["PatternFilterString"] = "patternFilterString"; + // DPI_PendingCalcName, having type string + ParameterId["PendingCalcName"] = "pendingCalcName"; + // DPI_PercentilesString, having type string + ParameterId["PercentilesString"] = "percentilesString"; + // DPI_ProjectName, having type string + ParameterId["ProjectName"] = "projectName"; + // DPI_PropertyName, having type string + ParameterId["PropertyName"] = "propertyName"; + // DPI_QuickFilterTitleCaption, having type string + ParameterId["QuickFilterTitleCaption"] = "quickFilterTitleCaption"; + // DPI_RangeDiffStr, having type string + ParameterId["RangeDiffStr"] = "diffValue"; + // DPI_RangeMaxStr, having type string + ParameterId["RangeMaxStr"] = "maxValue"; + // DPI_RangeMinStr, having type string + ParameterId["RangeMinStr"] = "minValue"; + // DPI_RecoveredFilePath, having type string + ParameterId["RecoveredFilePath"] = "recoveredFilePath"; + // DPI_ReferenceLineSpecificationId, having type string + ParameterId["ReferenceLineSpecificationId"] = "referenceLineId"; + // DPI_ReplaceFieldPrompt, having type string + ParameterId["ReplaceFieldPrompt"] = "replaceFieldPrompt"; + // DPI_RightJoinExpression, having type string + ParameterId["RightJoinExpression"] = "rightJoinExpression"; + // DPI_RootPath, having type string + ParameterId["RootPath"] = "rootPath"; + // DPI_RuntimeFinalDatastore, having type string + ParameterId["RuntimeFinalDatastore"] = "runtimeFinalDatastore"; + // DPI_RuntimeInitialDatastore, having type string + ParameterId["RuntimeInitialDatastore"] = "runtimeInitialDatastore"; + // DPI_RuntimeVTL, having type string + ParameterId["RuntimeVTL"] = "runtimeVtl"; + // DPI_SampleDataString, having type string + ParameterId["SampleDataString"] = "sampleData"; + // DPI_ScheduleIDs, having type string + ParameterId["ScheduleIDs"] = "scheduleIds"; + // DPI_SchemaFieldIconResource, having type string + ParameterId["SchemaFieldIconResource"] = "fieldIconRes"; + // DPI_ScreenName, having type string + ParameterId["ScreenName"] = "screenName"; + // DPI_ScriptCommand, having type string + ParameterId["ScriptCommand"] = "command"; + // DPI_SecondValue, having type string + ParameterId["SecondValue"] = "secondValue"; + // DPI_SelectedValue, having type string + ParameterId["SelectedValue"] = "selectedValue"; + // DPI_ShapeName, having type string + ParameterId["ShapeName"] = "shapeName"; + // DPI_SheetId, having type string + ParameterId["SheetId"] = "sheetId"; + // DPI_ShowDataTable, having type string + ParameterId["ShowDataTable"] = "showDataTable"; + // DPI_SimpleCommand, having type string + ParameterId["SimpleCommand"] = "simpleCommand"; + // DPI_SortModeCaption, having type string + ParameterId["SortModeCaption"] = "sortModeCaption"; + // DPI_SourceName, having type string + ParameterId["SourceName"] = "sourceName"; + // DPI_SourceText, having type string + ParameterId["SourceText"] = "sourceText"; + // DPI_SpecialValueText, having type string + ParameterId["SpecialValueText"] = "specialValueText"; + // DPI_StaticImage, having type string + ParameterId["StaticImage"] = "staticImage"; + // DPI_StoryPointBase, having type string + ParameterId["StoryPointBase"] = "storyPointBase"; + // DPI_StoryPointCaption, having type string + ParameterId["StoryPointCaption"] = "storyPointCaption"; + // DPI_Storyboard, having type string + ParameterId["Storyboard"] = "storyboard"; + // DPI_StyledLabel, having type string + ParameterId["StyledLabel"] = "styledLabel"; + // DPI_SummaryCaption, having type string + ParameterId["SummaryCaption"] = "summaryCaption"; + // DPI_SummaryField, having type string + ParameterId["SummaryField"] = "summaryField"; + // DPI_TableauVersion, having type string + ParameterId["TableauVersion"] = "tableauVersion"; + // DPI_TableFilter, having type string + ParameterId["TableFilter"] = "tableFilter"; + // DPI_TableFilterPrompt, having type string + ParameterId["TableFilterPrompt"] = "tableFilterPrompt"; + // DPI_TagsLabel, having type string + ParameterId["TagsLabel"] = "tagsLabel"; + // DPI_Target, having type string + ParameterId["Target"] = "target"; + // DPI_ThumbnailGroup, having type string + ParameterId["ThumbnailGroup"] = "thumbnailGroup"; + // DPI_ThumbnailUser, having type string + ParameterId["ThumbnailUser"] = "thumbnailUser"; + // DPI_TimeFormat, having type string + ParameterId["TimeFormat"] = "timeFormat"; + // DPI_TrendLineErrorString, having type string + ParameterId["TrendLineErrorString"] = "trendLineErrorString"; + // DPI_TrendLineModelFormula, having type string + ParameterId["TrendLineModelFormula"] = "trendLineModelFormula"; + // DPI_URLString, having type string + ParameterId["URLString"] = "urlString"; + // DPI_URLTest, having type string + ParameterId["URLTest"] = "urlTest"; + // DPI_ValidationMessage, having type string + ParameterId["ValidationMessage"] = "validationMessage"; + // DPI_ValueStr, having type string + ParameterId["ValueStr"] = "valueString"; + // DPI_VerifiedNonFormattedValue, having type string + ParameterId["VerifiedNonFormattedValue"] = "verifiedUnformattedValue"; + // DPI_WorkbookFullPath, having type string + ParameterId["WorkbookFullPath"] = "workbookFullPath"; + // DPI_WindowTitle, having type string + ParameterId["WindowTitle"] = "windowTitle"; + // DPI_ZoneName, having type string + ParameterId["ZoneName"] = "zoneName"; + // DPI_ZoneParam, having type string + ParameterId["ZoneParam"] = "zoneParam"; + // DPI_DataAlertErrorText, having type string + ParameterId["DataAlertErrorText"] = "dataAlertErrorText"; + // DPI_ExtractTempDirectory, having type string + ParameterId["ExtractTempDirectory"] = "extractTempDir"; + // DPI_DSSubClass, having type string + ParameterId["DSSubClass"] = "dsSubClass"; + // DPI_DbgCommandLine, having type string + ParameterId["DbgCommandLine"] = "debugCommandLine"; + // DPI_DbgLogPath, having type string + ParameterId["DbgLogPath"] = "debugLogPath"; + // DPI_DbgOSVersion, having type string + ParameterId["DbgOSVersion"] = "debugOsVersion"; + // DPI_DbgUserName, having type string + ParameterId["DbgUserName"] = "debugUsername"; + // DPI_ErrorMsg, having type string + ParameterId["ErrorMsg"] = "errorMessage"; + // DPI_ErrorStackTrace, having type string + ParameterId["ErrorStackTrace"] = "errorStackTrace"; + // DPI_ErrorStr, having type string + ParameterId["ErrorStr"] = "errorString"; + // DPI_EventMessage, having type string + ParameterId["EventMessage"] = "eventMessage"; + // DPI_EventTimestamp, having type string + ParameterId["EventTimestamp"] = "eventTimestamp"; + // DPI_ExtractDeltaPath, having type string + ParameterId["ExtractDeltaPath"] = "extractDeltaPath"; + // DPI_ExtractPath, having type string + ParameterId["ExtractPath"] = "extractPath"; + // DPI_ExtractSuggestedPath, having type string + ParameterId["ExtractSuggestedPath"] = "suggestedExtractPath"; + // DPI_ExtractTaskSummary, having type string + ParameterId["ExtractTaskSummary"] = "extractTaskSummary"; + // DPI_FactorsString, having type string + ParameterId["FactorsString"] = "factorsStr"; + // DPI_FormattedFamilyName, having type string + ParameterId["FormattedFamilyName"] = "formattedFamilyName"; + // DPI_FunctionSignature, having type string + ParameterId["FunctionSignature"] = "funcSig"; + // DPI_FunctionTooltip, having type string + ParameterId["FunctionTooltip"] = "funcTooltip"; + // DPI_HelpContents, having type string + ParameterId["HelpContents"] = "helpContents"; + // DPI_MapAttributionText, having type string + ParameterId["MapAttributionText"] = "mapAttributionText"; + // DPI_MapAttributionTextSize, having type string + ParameterId["MapAttributionTextSize"] = "mapAttributionTextSize"; + // DPI_MapAttributionUrl, having type string + ParameterId["MapAttributionUrl"] = "mapAttributionUrl"; + // DPI_MapBoxErrorMessage, having type string + ParameterId["MapBoxErrorMessage"] = "mapboxErrorMessage"; + // DPI_MapBoxOldStyleName, having type string + ParameterId["MapBoxOldStyleName"] = "mapboxOldStyleName"; + // DPI_MapBoxSelectedStyle, having type string + ParameterId["MapBoxSelectedStyle"] = "mapboxSelectedStyle"; + // DPI_MapBoxStyleName, having type string + ParameterId["MapBoxStyleName"] = "mapboxStyleName"; + // DPI_MapLayerRequest, having type string + ParameterId["MapLayerRequest"] = "mapLayerRequest"; + // DPI_MapServerKey, having type string + ParameterId["MapServerKey"] = "mapServerKey"; + // DPI_MapTileServer, having type string + ParameterId["MapTileServer"] = "mapTileServer"; + // DPI_MapTileUrl, having type string + ParameterId["MapTileUrl"] = "mapTileUrl"; + // DPI_PercentagesString, having type string + ParameterId["PercentagesString"] = "percentagesStr"; + // DPI_PublishErrorMessage, having type string + ParameterId["PublishErrorMessage"] = "publishErrorMessage"; + // DPI_TdePath, having type string + ParameterId["TdePath"] = "tdePath"; + // DPI_UIAutomationComponentName, having type string + ParameterId["UIAutomationComponentName"] = "uiAutomationComponentName"; + // DPI_UIAutomationEndTime, having type string + ParameterId["UIAutomationEndTime"] = "uiAutomationEndTime"; + // DPI_UIAutomationName, having type string + ParameterId["UIAutomationName"] = "uiAutomationName"; + // DPI_UIAutomationStartTime, having type string + ParameterId["UIAutomationStartTime"] = "uiAutomationStartTime"; + // DPI_UIAutomationValue, having type string + ParameterId["UIAutomationValue"] = "uiAutomationValue"; + // DPI_WMSConnectionName, having type string + ParameterId["WMSConnectionName"] = "wmsConnectionName"; + // DPI_WMSOldConnectionName, having type string + ParameterId["WMSOldConnectionName"] = "wmsOldConnectionName"; + // DPI_WMSServerUrl, having type string + ParameterId["WMSServerUrl"] = "wmsServerUrl"; + // DPI_AboutBuildVersion, having type string + ParameterId["AboutBuildVersion"] = "aboutBuildVersion"; + // DPI_ActionFields, having type string + ParameterId["ActionFields"] = "actionFields"; + // DPI_AddVariableLabel, having type string + ParameterId["AddVariableLabel"] = "addVariableLabel"; + // DPI_AddVariableTooltip, having type string + ParameterId["AddVariableTooltip"] = "addVariableTooltip"; + // DPI_AllowedDataSourcesByName, having type string + ParameterId["AllowedDataSourcesByName"] = "allowedDataSourcesByName"; + // DPI_AppAboutVersion, having type string + ParameterId["AppAboutVersion"] = "appAboutVersion"; + // DPI_AppBuildBranchName, having type string + ParameterId["AppBuildBranchName"] = "appBuildBranchName"; + // DPI_AppBuildVersion, having type string + ParameterId["AppBuildVersion"] = "appBuildVersion"; + // DPI_AppExternalVersion, having type string + ParameterId["AppExternalVersion"] = "appExternalVersion"; + // DPI_AppName, having type string + ParameterId["AppName"] = "appName"; + // DPI_AppProductVersion, having type string + ParameterId["AppProductVersion"] = "appProductVersion"; + // DPI_OriginalVersion, having type string + ParameterId["OriginalVersion"] = "originalVersion"; + // DPI_AtTheLevelSpecialCaption, having type string + ParameterId["AtTheLevelSpecialCaption"] = "atTheLevelSpecialCaption"; + // DPI_AutoCompleteCalc, having type string + ParameterId["AutoCompleteCalc"] = "acCalc"; + // DPI_CSVPath, having type string + ParameterId["CSVPath"] = "csvPath"; + // DPI_CommandNamespace, having type string + ParameterId["CommandNamespace"] = "commandNamespace"; + // DPI_Condition, having type string + ParameterId["Condition"] = "condition"; + // DPI_ConditionSummary, having type string + ParameterId["ConditionSummary"] = "conditionSummary"; + // DPI_ConfirmationMsg, having type string + ParameterId["ConfirmationMsg"] = "confirmationMsg"; + // DPI_DashboardTypeText, having type string + ParameterId["DashboardTypeText"] = "dashboardType"; + // DPI_DataserverPublicAddress, having type string + ParameterId["DataserverPublicAddress"] = "dataserverPublicAddress"; + // DPI_DatasourceFileName, having type string + ParameterId["DatasourceFileName"] = "datasourceFileName"; + // DPI_DecimalMark, having type string + ParameterId["DecimalMark"] = "decimalMark"; + // DPI_DeleteVariableTooltip, having type string + ParameterId["DeleteVariableTooltip"] = "deleteVariableTooltip"; + // DPI_DialogTitle, having type string + ParameterId["DialogTitle"] = "dialogTitle"; + // DPI_DisplayValue, having type string + ParameterId["DisplayValue"] = "displayValue"; + // DPI_TooltipValue, having type string + ParameterId["TooltipValue"] = "tooltipValue"; + // DPI_DstPath, having type string + ParameterId["DstPath"] = "dstPath"; + // DPI_EditWidgetHeader, having type string + ParameterId["EditWidgetHeader"] = "editWidgetHeader"; + // DPI_EditWidgetInstruction, having type string + ParameterId["EditWidgetInstruction"] = "editWidgetInstruction"; + // DPI_EndSelectionCaption, having type string + ParameterId["EndSelectionCaption"] = "endSelectionCaption"; + // DPI_ErrorConfirmationQuestion, having type string + ParameterId["ErrorConfirmationQuestion"] = "errorConfirmationQuestion"; + // DPI_ErrorDialogTitle, having type string + ParameterId["ErrorDialogTitle"] = "errorDialogTitle"; + // DPI_ErrorHelpLink, having type string + ParameterId["ErrorHelpLink"] = "errorHelpLink"; + // DPI_ErrorShortMessage, having type string + ParameterId["ErrorShortMessage"] = "errorShortMessage"; + // DPI_FilterSearchQuery, having type string + ParameterId["FilterSearchQuery"] = "filterSearchQuery"; + // DPI_FromLabel, having type string + ParameterId["FromLabel"] = "fromLabel"; + // DPI_FunctionHelp, having type string + ParameterId["FunctionHelp"] = "functionHelp"; + // DPI_Instructions, having type string + ParameterId["Instructions"] = "instructions"; + // DPI_LargeUnitDisplay, having type string + ParameterId["LargeUnitDisplay"] = "largeUnitDisplay"; + // DPI_Limit, having type string + ParameterId["Limit"] = "limit"; + // DPI_ListViewNameLabel, having type string + ParameterId["ListViewNameLabel"] = "listViewNameLabel"; + // DPI_ListViewValueLabel, having type string + ParameterId["ListViewValueLabel"] = "listViewValueLabel"; + // DPI_MapScaleReadoutUnit, having type string + ParameterId["MapScaleReadoutUnit"] = "mapScaleReadoutUnit"; + // DPI_MeasureDimension, having type string + ParameterId["MeasureDimension"] = "measuresDimension"; + // DPI_MimeType, having type string + ParameterId["MimeType"] = "mimeType"; + // DPI_NotificationMsg, having type string + ParameterId["NotificationMsg"] = "notificationMsg"; + // DPI_OperationName, having type string + ParameterId["OperationName"] = "operationName"; + // DPI_PageTitle, having type string + ParameterId["PageTitle"] = "pageTitle"; + // DPI_PatternSummary, having type string + ParameterId["PatternSummary"] = "patternSummary"; + // DPI_ReferenceLineId, having type string + ParameterId["ReferenceLineId"] = "refLineId"; + // DPI_ReferenceLinePairedId, having type string + ParameterId["ReferenceLinePairedId"] = "refLinePairedId"; + // DPI_ReplaceText, having type string + ParameterId["ReplaceText"] = "replaceText"; + // DPI_RequiredVariableMessage, having type string + ParameterId["RequiredVariableMessage"] = "requiredVariableMessage"; + // DPI_RestartEverySpecialCaption, having type string + ParameterId["RestartEverySpecialCaption"] = "restartEverySpecialCaption"; + // DPI_Root, having type string + ParameterId["Root"] = "root"; + // DPI_SelectionSummary, having type string + ParameterId["SelectionSummary"] = "selectionSummary"; + // DPI_SessionAttributeKey, having type string + ParameterId["SessionAttributeKey"] = "sessionAttributeKey"; + // DPI_SessionAttributeValue, having type string + ParameterId["SessionAttributeValue"] = "sessionAttributeValue"; + // DPI_SheetAttributeKey, having type string + ParameterId["SheetAttributeKey"] = "baseSheetAttributeKey"; + // DPI_SheetAttributeValue, having type string + ParameterId["SheetAttributeValue"] = "baseSheetAttributeValue"; + // DPI_SmallUnitDisplay, having type string + ParameterId["SmallUnitDisplay"] = "smallUnitDisplay"; + // DPI_SourceCaption, having type string + ParameterId["SourceCaption"] = "sourceCaption"; + // DPI_SrcPath, having type string + ParameterId["SrcPath"] = "srcPath"; + // DPI_StartSelectionCaption, having type string + ParameterId["StartSelectionCaption"] = "startSelectionCaption"; + // DPI_Subtitle, having type string + ParameterId["Subtitle"] = "subtitle"; + // DPI_TableauServerSiteName, having type string + ParameterId["TableauServerSiteName"] = "tableauServerSiteName"; + // DPI_TargetCaption, having type string + ParameterId["TargetCaption"] = "targetCaption"; + // DPI_ThumbnailPath, having type string + ParameterId["ThumbnailPath"] = "thumbnailPath"; + // DPI_ToLabel, having type string + ParameterId["ToLabel"] = "toLabel"; + // DPI_URLAddress, having type string + ParameterId["URLAddress"] = "urlAddress"; + // DPI_UrlRoot, having type string + ParameterId["UrlRoot"] = "urlRoot"; + // DPI_ValuesTableHeader, having type string + ParameterId["ValuesTableHeader"] = "valuesTableHeader"; + // DPI_ValuesTableHeader2, having type string + ParameterId["ValuesTableHeader2"] = "valuesTableHeader2"; + // DPI_VariableDescription, having type string + ParameterId["VariableDescription"] = "variableDescription"; + // DPI_VariableDisplayName, having type string + ParameterId["VariableDisplayName"] = "variableDisplayName"; + // DPI_VariableGUID, having type string + ParameterId["VariableGUID"] = "variableGuid"; + // DPI_VerboseName, having type string + ParameterId["VerboseName"] = "verboseName"; + // DPI_ViewId, having type string + ParameterId["ViewId"] = "viewId"; + // DPI_Warning1, having type string + ParameterId["Warning1"] = "warning1"; + // DPI_Warning2, having type string + ParameterId["Warning2"] = "warning2"; + // DPI_RefreshToken, having type string + ParameterId["RefreshToken"] = "refresh_token"; + // DPI_TokenType, having type string + ParameterId["TokenType"] = "token_type"; + // DPI_XSRFToken, having type string + ParameterId["XSRFToken"] = "xsrf_token"; + // DPI_AxisSubtitle, having type string + ParameterId["AxisSubtitle"] = "axisSubtitle"; + // DPI_AxisTitle, having type string + ParameterId["AxisTitle"] = "axisTitle"; + // DPI_TickMarkOriginDataValue, having type string + ParameterId["TickMarkOriginDataValue"] = "tickMarkOriginDataValue"; + // DPI_TickMarkOriginDataValueNoTime, having type string + ParameterId["TickMarkOriginDataValueNoTime"] = "tickMarkOriginDataValueNoTime"; + // DPI_TickMarkSpacingDataValue, having type string + ParameterId["TickMarkSpacingDataValue"] = "tickMarkSpacingDataValue"; + // DPI_ExtractActionLocalized, having type string + ParameterId["ExtractActionLocalized"] = "extractActionLocalized"; + // DPI_ExtractSource, having type string + ParameterId["ExtractSource"] = "extractSource"; + // DPI_FileContents, having type string + ParameterId["FileContents"] = "fileContents"; + // DPI_SaveImagePath, having type string + ParameterId["SaveImagePath"] = "saveImagePath"; + // DPI_WidgetUID, having type string + ParameterId["WidgetUID"] = "widgetUniqueId"; + // DPI_DatePropertiesDisplayText, having type string + ParameterId["DatePropertiesDisplayText"] = "datePropertiesDisplayText"; + // DPI_DatePropertiesHelperText, having type string + ParameterId["DatePropertiesHelperText"] = "datePropertiesHelperText"; + // DPI_EventName, having type string + ParameterId["EventName"] = "eventName"; + // DPI_ExceptionType, having type string + ParameterId["ExceptionType"] = "exceptionType"; + // DPI_SearchPlaceholder, having type string + ParameterId["SearchPlaceholder"] = "searchPlaceholder"; + // DPI_TargetVersion, having type string + ParameterId["TargetVersion"] = "targetVersion"; + // DPI_DataValueDisplayString, having type string + ParameterId["DataValueDisplayString"] = "dataValueDisplayString"; + // DPI_DomainString, having type string + ParameterId["DomainString"] = "domainString"; + // DPI_RawDataValueString, having type string + ParameterId["RawDataValueString"] = "rawDataValueString"; + // DPI_RichTextDialogTitle, having type string + ParameterId["RichTextDialogTitle"] = "richTextDialogTitle"; + // DPI_RichTextContent, having type string + ParameterId["RichTextContent"] = "richTextContent"; + // DPI_MarkSizeAsString, having type string + ParameterId["MarkSizeAsString"] = "markSizeAsString"; + // DPI_UnitsLabel, having type string + ParameterId["UnitsLabel"] = "unitsLabel"; + // DPI_EmailAddress, having type string + ParameterId["EmailAddress"] = "emailAddress"; + // DPI_FirstName, having type string + ParameterId["FirstName"] = "firstName"; + // DPI_LastName, having type string + ParameterId["LastName"] = "lastName"; + // DPI_SummaryCardAvg, having type string + ParameterId["SummaryCardAvg"] = "summaryCardAvg"; + // DPI_SummaryCardCaption, having type string + ParameterId["SummaryCardCaption"] = "summaryCardCaption"; + // DPI_SummaryCardCount, having type string + ParameterId["SummaryCardCount"] = "summaryCardCount"; + // DPI_SummaryCardKurtosis, having type string + ParameterId["SummaryCardKurtosis"] = "summaryCardKurtosis"; + // DPI_SummaryCardMax, having type string + ParameterId["SummaryCardMax"] = "summaryCardMax"; + // DPI_SummaryCardMedian, having type string + ParameterId["SummaryCardMedian"] = "summaryCardMedian"; + // DPI_SummaryCardMin, having type string + ParameterId["SummaryCardMin"] = "summaryCardMin"; + // DPI_SummaryCardQuart1, having type string + ParameterId["SummaryCardQuart1"] = "summaryCardQuart1"; + // DPI_SummaryCardQuart3, having type string + ParameterId["SummaryCardQuart3"] = "summaryCardQuart3"; + // DPI_SummaryCardSkewness, having type string + ParameterId["SummaryCardSkewness"] = "summaryCardSkewness"; + // DPI_SummaryCardStdev, having type string + ParameterId["SummaryCardStdev"] = "summaryCardStdev"; + // DPI_SummaryCardSum, having type string + ParameterId["SummaryCardSum"] = "summaryCardSum"; + // DPI_ValueClassAttr, having type string + ParameterId["ValueClassAttr"] = "valueClassAttr"; + // DPI_TrendLineDialogTitle, having type string + ParameterId["TrendLineDialogTitle"] = "trendLineDialogTitle"; + // DPI_LinearFitTypeLabel, having type string + ParameterId["LinearFitTypeLabel"] = "linearFitTypeLabel"; + // DPI_LogFitTypeLabel, having type string + ParameterId["LogFitTypeLabel"] = "logFitTypeLabel"; + // DPI_ExpFitTypeLabel, having type string + ParameterId["ExpFitTypeLabel"] = "expFitTypeLabel"; + // DPI_PowerFitTypeLabel, having type string + ParameterId["PowerFitTypeLabel"] = "powerFitTypeLabel"; + // DPI_PolynomialFitTypeLabel, having type string + ParameterId["PolynomialFitTypeLabel"] = "polynomialFitTypeLabel"; + // DPI_ExcludeColorLabel, having type string + ParameterId["ExcludeColorLabel"] = "excludeColorLabel"; + // DPI_EnableConfidenceBandsLabel, having type string + ParameterId["EnableConfidenceBandsLabel"] = "enableConfidenceBandsLabel"; + // DPI_ForceInterceptZeroLabel, having type string + ParameterId["ForceInterceptZeroLabel"] = "forceInterceptZero label"; + // DPI_EnableInstantAnalyticsLabel, having type string + ParameterId["EnableInstantAnalyticsLabel"] = "enableInstantAnalyticsLabel"; + // DPI_EnableTooltipsLabel, having type string + ParameterId["EnableTooltipsLabel"] = "enableTooltipLabel"; + // DPI_AuthenticationSummary, having type string + ParameterId["AuthenticationSummary"] = "authenticationSummary"; + // DPI_BtnCancelText, having type string + ParameterId["BtnCancelText"] = "btnCancelText"; + // DPI_BtnOkText, having type string + ParameterId["BtnOkText"] = "btnOkText"; + // DPI_ButtonText, having type string + ParameterId["ButtonText"] = "buttonText"; + // DPI_CalculationCaption, having type string + ParameterId["CalculationCaption"] = "calculationCaption"; + // DPI_CalculationDependencies, having type string + ParameterId["CalculationDependencies"] = "calculationDependencies"; + // DPI_CalculationFormula, having type string + ParameterId["CalculationFormula"] = "calculationFormula"; + // DPI_CheckPublishMessage, having type string + ParameterId["CheckPublishMessage"] = "checkPublishSummary"; + // DPI_ClusterModelText, having type string + ParameterId["ClusterModelText"] = "clusterModelText"; + // DPI_ClusterSummaryScaledText, having type string + ParameterId["ClusterSummaryScaledText"] = "clusterSummaryScaledText"; + // DPI_ClusterSummaryText, having type string + ParameterId["ClusterSummaryText"] = "clusterSummaryText"; + // DPI_ColumnCaption, having type string + ParameterId["ColumnCaption"] = "columnCaption"; + // DPI_DatasourceCaption, having type string + ParameterId["DatasourceCaption"] = "datasourceCaption"; + // DPI_DefaultCaption, having type string + ParameterId["DefaultCaption"] = "defaultCaption"; + // DPI_DisplayString, having type string + ParameterId["DisplayString"] = "displayText"; + // DPI_DragDescription, having type string + ParameterId["DragDescription"] = "dragDescription"; + // DPI_ExceptionMessage, having type string + ParameterId["ExceptionMessage"] = "exceptionMessage"; + // DPI_Explanation, having type string + ParameterId["Explanation"] = "explanation"; + // DPI_FieldCaption, having type string + ParameterId["FieldCaption"] = "fieldCaption"; + // DPI_FieldSummary, having type string + ParameterId["FieldSummary"] = "fieldSummary"; + // DPI_FieldSummaryLabel, having type string + ParameterId["FieldSummaryLabel"] = "fieldSummaryLabel"; + // DPI_FilterDescription, having type string + ParameterId["FilterDescription"] = "filterDescription"; + // DPI_FilterName, having type string + ParameterId["FilterName"] = "filterName"; + // DPI_ForecastModelText, having type string + ParameterId["ForecastModelText"] = "forecastModelText"; + // DPI_ForecastSummaryPctText, having type string + ParameterId["ForecastSummaryPctText"] = "forecastSummaryPctText"; + // DPI_ForecastSummaryText, having type string + ParameterId["ForecastSummaryText"] = "forecastSummaryText"; + // DPI_HasActiveExtractText, having type string + ParameterId["HasActiveExtractText"] = "hasActiveExtractText"; + // DPI_HtmlColor, having type string + ParameterId["HtmlColor"] = "htmlColor"; + // DPI_IncludeLocalFilesCheckedWarning, having type string + ParameterId["IncludeLocalFilesCheckedWarning"] = "includeLocalFilesCheckedWarning"; + // DPI_IncludeLocalFilesWarning, having type string + ParameterId["IncludeLocalFilesWarning"] = "includeLocalFilesWarning"; + // DPI_InvalidFieldCaption, having type string + ParameterId["InvalidFieldCaption"] = "invalidFieldCaption"; + // DPI_LimitSummary, having type string + ParameterId["LimitSummary"] = "limitSummary"; + // DPI_LoadedExistingObjectWarning, having type string + ParameterId["LoadedExistingObjectWarning"] = "loadedExistingObjectWarning"; + // DPI_ManageDatasourcesSummary, having type string + ParameterId["ManageDatasourcesSummary"] = "manageDatasourcesSummary"; + // DPI_ModalDialog, having type string + ParameterId["ModalDialog"] = "modalDialog"; + // DPI_NewDatasourceCaption, having type string + ParameterId["NewDatasourceCaption"] = "newDatasourceCaption"; + // DPI_PermissionsButtonLabel, having type string + ParameterId["PermissionsButtonLabel"] = "permissionsButtonLabel"; + // DPI_PermissionsEditorRoleId, having type string + ParameterId["PermissionsEditorRoleId"] = "permissionsEditorRoleId"; + // DPI_PermissionsLabel, having type string + ParameterId["PermissionsLabel"] = "permissionsLabel"; + // DPI_PerspectiveCaption, having type string + ParameterId["PerspectiveCaption"] = "perspectiveCaption"; + // DPI_PublishButtonLabel, having type string + ParameterId["PublishButtonLabel"] = "publishButtonLabel"; + // DPI_PublishChoiceLabel, having type string + ParameterId["PublishChoiceLabel"] = "publishChoiceLabel"; + // DPI_PublishObjectViewsSummary, having type string + ParameterId["PublishObjectViewsSummary"] = "publishObjectViewsSummary"; + // DPI_QualifiedFieldCaption, having type string + ParameterId["QualifiedFieldCaption"] = "qualifiedFieldCaption"; + // DPI_RelationshipTooltipText, having type string + ParameterId["RelationshipTooltipText"] = "relationshipTooltipText"; + // DPI_ResetObjectAttributesWarning, having type string + ParameterId["ResetObjectAttributesWarning"] = "resetObjectAttributesWarning"; + // DPI_RowCountCaption, having type string + ParameterId["RowCountCaption"] = "rowCountCaption"; + // DPI_ServerCaption, having type string + ParameterId["ServerCaption"] = "serverCaption"; + // DPI_SizeModeName, having type string + ParameterId["SizeModeName"] = "sizeModeName"; + // DPI_SummaryText, having type string + ParameterId["SummaryText"] = "summaryText"; + // DPI_SyncClientUseExtractLabel, having type string + ParameterId["SyncClientUseExtractLabel"] = "syncClientUseExtractLabel"; + // DPI_Text, having type string + ParameterId["Text"] = "text"; + // DPI_TextDropdownControlLabel, having type string + ParameterId["TextDropdownControlLabel"] = "controlLabel"; + // DPI_ThumbnailUserName, having type string + ParameterId["ThumbnailUserName"] = "thumbnailUserName"; + // DPI_TitleString, having type string + ParameterId["TitleString"] = "titleString"; + // DPI_TooltipText, having type string + ParameterId["TooltipText"] = "tooltipText"; + // DPI_UpdatedCalcCaption, having type string + ParameterId["UpdatedCalcCaption"] = "updatedCalculationCaption"; + // DPI_UpdatedCalcFormula, having type string + ParameterId["UpdatedCalcFormula"] = "updatedCalculationFormula"; + // DPI_UserCaption, having type string + ParameterId["UserCaption"] = "userCaption"; + // DPI_WarningTooltipText, having type string + ParameterId["WarningTooltipText"] = "warningTooltipText"; + // DPI_DatasourceFile, having type string + ParameterId["DatasourceFile"] = "datasourceFile"; + // DPI_File, having type string + ParameterId["File"] = "file"; + // DPI_FileNameBase, having type string + ParameterId["FileNameBase"] = "filenameBase"; + // DPI_NewFile, having type string + ParameterId["NewFile"] = "newFile"; + // DPI_OriginalFile, having type string + ParameterId["OriginalFile"] = "originalFile"; + // DPI_OutputFile, having type string + ParameterId["OutputFile"] = "outputFile"; + // DPI_SampleFileName, having type string + ParameterId["SampleFileName"] = "sampleFilename"; + // DPI_WorkbookFile, having type string + ParameterId["WorkbookFile"] = "workbookFile"; + // DPI_ImageKey, having type string + ParameterId["ImageKey"] = "imageKey"; + // DPI_OverlayImageKey, having type string + ParameterId["OverlayImageKey"] = "overlayImageKey"; + // DPI_TempFileKey, having type string + ParameterId["TempFileKey"] = "tempfileKey"; + // DPI_CapturedSheet, having type string + ParameterId["CapturedSheet"] = "capturedSheet"; + // DPI_CurrentSheet, having type string + ParameterId["CurrentSheet"] = "currentSheet"; + // DPI_Dashboard, having type string + ParameterId["Dashboard"] = "dashboard"; + // DPI_EnsureSheet, having type string + ParameterId["EnsureSheet"] = "ensureSheetName"; + // DPI_NewSheet, having type string + ParameterId["NewSheet"] = "newSheet"; + // DPI_Sheet, having type string + ParameterId["Sheet"] = "sheet"; + // DPI_SheetName, having type string + ParameterId["SheetName"] = "sheetName"; + // DPI_SourceDashboard, having type string + ParameterId["SourceDashboard"] = "sourceDashboard"; + // DPI_SourceSheet, having type string + ParameterId["SourceSheet"] = "sourceSheet"; + // DPI_TargetSheet, having type string + ParameterId["TargetSheet"] = "targetSheet"; + // DPI_WorkbookName, having type string + ParameterId["WorkbookName"] = "workbookName"; + // DPI_Worksheet, having type string + ParameterId["Worksheet"] = "worksheet"; + // DPI_BaseViewThumbLink, having type string + ParameterId["BaseViewThumbLink"] = "baseViewThumbLink"; + // DPI_BlogLink, having type string + ParameterId["BlogLink"] = "blogLink"; + // DPI_CacheUrl, having type string + ParameterId["CacheUrl"] = "cacheUrl"; + // DPI_DownloadLink, having type string + ParameterId["DownloadLink"] = "downloadLink"; + // DPI_RepositoryUrl, having type string + ParameterId["RepositoryUrl"] = "repositoryUrl"; + // DPI_ShareLink, having type string + ParameterId["ShareLink"] = "shareLink"; + // DPI_URL, having type string + ParameterId["URL"] = "url"; + // DPI_ClusterModelHtml, having type string + ParameterId["ClusterModelHtml"] = "clusterModelHtml"; + // DPI_ClusterSummaryHtml, having type string + ParameterId["ClusterSummaryHtml"] = "clusterSummaryHtml"; + // DPI_ClusterSummaryScaledHtml, having type string + ParameterId["ClusterSummaryScaledHtml"] = "clusterSummaryScaledHtml"; + // DPI_FieldDescription, having type string + ParameterId["FieldDescription"] = "fieldDescription"; + // DPI_ForecastModelHtml, having type string + ParameterId["ForecastModelHtml"] = "forecastModelHtml"; + // DPI_ForecastSummaryHtml, having type string + ParameterId["ForecastSummaryHtml"] = "forecastSummaryHtml"; + // DPI_ForecastSummaryPctHtml, having type string + ParameterId["ForecastSummaryPctHtml"] = "forecastSummaryPctHtml"; + // DPI_Html, having type string + ParameterId["Html"] = "html"; + // DPI_HtmlSelection, having type string + ParameterId["HtmlSelection"] = "htmlSelection"; + // DPI_HtmlTooltip, having type string + ParameterId["HtmlTooltip"] = "htmlTooltip"; + // DPI_HtmlTooltipModified, having type string + ParameterId["HtmlTooltipModified"] = "htmlTooltipModified"; + // DPI_TitleHtml, having type string + ParameterId["TitleHtml"] = "titleHtml"; + // DPI_CacheUrlInfoJson, having type string + ParameterId["CacheUrlInfoJson"] = "cacheUrlInfoJson"; + // DPI_FilterSearchJson, having type string + ParameterId["FilterSearchJson"] = "filterSearchJson"; + // DPI_FilterSearchWithIndexJson, having type string + ParameterId["FilterSearchWithIndexJson"] = "filterSearchWithIndexJson"; + // DPI_FilterShowChildrenJson, having type string + ParameterId["FilterShowChildrenJson"] = "filterShowChildrenJson"; + // DPI_FiltersJson, having type string + ParameterId["FiltersJson"] = "filtersJson"; + // DPI_FrameJson, having type string + ParameterId["FrameJson"] = "frameJson"; + // DPI_GeometryJson, having type string + ParameterId["GeometryJson"] = "geometryJson"; + // DPI_GetFilterItemsJson, having type string + ParameterId["GetFilterItemsJson"] = "getFilterItemsJson"; + // DPI_KeepOnlyResponseJson, having type string + ParameterId["KeepOnlyResponseJson"] = "keepOnlyResponseJson"; + // DPI_MenuCommandsJson, having type string + ParameterId["MenuCommandsJson"] = "menuCommandsJson"; + // DPI_ModifiedSheetsJson, having type string + ParameterId["ModifiedSheetsJson"] = "modifiedSheetsJson"; + // DPI_ParameterCtrlJson, having type string + ParameterId["ParameterCtrlJson"] = "parameterCtrlJson"; + // DPI_ViewJson, having type string + ParameterId["ViewJson"] = "viewJson"; + // DPI_CustomizedViewXML, having type string + ParameterId["CustomizedViewXML"] = "customizedViewXml"; + // DPI_DatasourceDeltaXML, having type string + ParameterId["DatasourceDeltaXML"] = "datasourceDeltaXml"; + // DPI_DatasourceXML, having type string + ParameterId["DatasourceXML"] = "datasourceXml"; + // DPI_KeychainXML, having type string + ParameterId["KeychainXML"] = "keychainXml"; + // DPI_PermissionsModelXML, having type string + ParameterId["PermissionsModelXML"] = "permissionsModelXml"; + // DPI_SharedViewsXML, having type string + ParameterId["SharedViewsXML"] = "sharedViewsXml"; + // DPI_TargetURL, having type string + ParameterId["TargetURL"] = "targetUrl"; + // DPI_Anchor, having type string + ParameterId["Anchor"] = "anchor"; + // DPI_CenterValue, having type string + ParameterId["CenterValue"] = "centerValue"; + // DPI_ComputedBinSize, having type string + ParameterId["ComputedBinSize"] = "computedBinSize"; + // DPI_ConstantValue, having type string + ParameterId["ConstantValue"] = "constantValue"; + // DPI_PairedConstantValue, having type string + ParameterId["PairedConstantValue"] = "pairedConstantValue"; + // DPI_CountDistinct, having type string + ParameterId["CountDistinct"] = "countDistinct"; + // DPI_DataMax, having type string + ParameterId["DataMax"] = "dataMax"; + // DPI_DataMin, having type string + ParameterId["DataMin"] = "dataMin"; + // DPI_DataValueString, having type string + ParameterId["DataValueString"] = "dataValueStr"; + // DPI_EndValue, having type string + ParameterId["EndValue"] = "endValue"; + // DPI_RangeMax, having type string + ParameterId["RangeMax"] = "rangeMax"; + // DPI_RangeMin, having type string + ParameterId["RangeMin"] = "rangeMin"; + // DPI_RangeStepSize, having type string + ParameterId["RangeStepSize"] = "rangeStepSize"; + // DPI_StartValue, having type string + ParameterId["StartValue"] = "startValue"; + // DPI_TargetValue, having type string + ParameterId["TargetValue"] = "targetValue"; + // DPI_ValueInc, having type string + ParameterId["ValueInc"] = "valueInc"; + // DPI_ValueMax, having type string + ParameterId["ValueMax"] = "valueMax"; + // DPI_ValueMin, having type string + ParameterId["ValueMin"] = "valueMin"; + // DPI_QuantilesValue, having type string + ParameterId["QuantilesValue"] = "quantilesValue"; + // DPI_UserInputBinSize, having type string + ParameterId["UserInputBinSize"] = "userBinSize"; + // DPI_AddedDataSources, having type string[] + ParameterId["AddedDataSources"] = "addedDataSourceNames"; + // DPI_AddressingCaptions, having type string[] + ParameterId["AddressingCaptions"] = "addressingCaptions"; + // DPI_AggregationCaptions, having type string[] + ParameterId["AggregationCaptions"] = "aggregationCaptions"; + // DPI_AtTheLevelCaptions, having type string[] + ParameterId["AtTheLevelCaptions"] = "atTheLevelCaptions"; + // DPI_AuthenticationSettingLabels, having type string[] + ParameterId["AuthenticationSettingLabels"] = "authenticationSettingLabels"; + // DPI_AutosaveFileIdsVector, having type string[] + ParameterId["AutosaveFileIdsVector"] = "autosaveFileIdsVector"; + // DPI_ChangedTuples, having type string[] + ParameterId["ChangedTuples"] = "changedTuples"; + // DPI_CharsetsAvailable, having type string[] + ParameterId["CharsetsAvailable"] = "charsetsAvailable"; + // DPI_CharsetDisplayNames, having type string[] + ParameterId["CharsetDisplayNames"] = "charsetDisplayNames"; + // DPI_ColorFactors, having type string[] + ParameterId["ColorFactors"] = "colorFactors"; + // DPI_ColumnFullNames, having type string[] + ParameterId["ColumnFullNames"] = "columnFullNames"; + // DPI_ConnectionNames, having type string[] + ParameterId["ConnectionNames"] = "connectionNames"; + // DPI_ConnectionCaptions, having type string[] + ParameterId["ConnectionCaptions"] = "connectionCaptions"; + // DPI_ConnectionBigQueryLegacySQLCheckBox, having type string[] + ParameterId["ConnectionBigQueryLegacySQLCheckBox"] = "connectionBigqueryLegacySqlCheckbox"; + // DPI_CustomFieldOrder, having type string[] + ParameterId["CustomFieldOrder"] = "customFieldOrder"; + // DPI_DataSourceClasses, having type string[] + ParameterId["DataSourceClasses"] = "dataSourceClasses"; + // DPI_DataSourceNames, having type string[] + ParameterId["DataSourceNames"] = "dataSourceNames"; + // DPI_DataSourceNames2, having type string[] + ParameterId["DataSourceNames2"] = "dataSourceNames2"; + // DPI_DataSourcesWithEmptyRelation, having type string[] + ParameterId["DataSourcesWithEmptyRelation"] = "dataSourcesWithEmptyRelation"; + // DPI_DataSourceCreationErrors, having type string[] + ParameterId["DataSourceCreationErrors"] = "dataSourceCreationErrors"; + // DPI_DateFormats, having type string[] + ParameterId["DateFormats"] = "dateFormats"; + // DPI_DayNames, having type string[] + ParameterId["DayNames"] = "dayNames"; + // DPI_DrillPathVector, having type string[] + ParameterId["DrillPathVector"] = "drillpathVector"; + // DPI_ErrorDetails, having type string[] + ParameterId["ErrorDetails"] = "errorDetails"; + // DPI_ExceptionMessageParams, having type string[] + ParameterId["ExceptionMessageParams"] = "exceptionMessageParams"; + // DPI_ExcludedSheets, having type string[] + ParameterId["ExcludedSheets"] = "excludeSheets"; + // DPI_FieldDisplayNames, having type string[] + ParameterId["FieldDisplayNames"] = "fieldDisplayNames"; + // DPI_FieldFolderVector, having type string[] + ParameterId["FieldFolderVector"] = "fieldFolderVector"; + // DPI_FileIds, having type string[] + ParameterId["FileIds"] = "fileIds"; + // DPI_FilePaths, having type string[] + ParameterId["FilePaths"] = "filePaths"; + // DPI_FileNames, having type string[] + ParameterId["FileNames"] = "fileNames"; + // DPI_FilterAdd, having type string[] + ParameterId["FilterAdd"] = "filterAdd"; + // DPI_FilterAliases, having type string[] + ParameterId["FilterAliases"] = "filterValues"; + // DPI_FilterRemove, having type string[] + ParameterId["FilterRemove"] = "filterRemove"; + // DPI_FixedCaptions, having type string[] + ParameterId["FixedCaptions"] = "fixedCaptions"; + // DPI_FontFamilies, having type string[] + ParameterId["FontFamilies"] = "fontFamilies"; + // DPI_FormatStrings, having type string[] + ParameterId["FormatStrings"] = "formatStrings"; + // DPI_FormattedValues, having type string[] + ParameterId["FormattedValues"] = "formattedValues"; + // DPI_FoundTuples, having type string[] + ParameterId["FoundTuples"] = "foundTuples"; + // DPI_FullSchedulesLabels, having type string[] + ParameterId["FullSchedulesLabels"] = "fullSchedulesLabels"; + // DPI_ImageResourceList, having type string[] + ParameterId["ImageResourceList"] = "imageResources"; + // DPI_IncludeList, having type string[] + ParameterId["IncludeList"] = "includeList"; + // DPI_IncrSchedulesLabels, having type string[] + ParameterId["IncrSchedulesLabels"] = "incrSchedulesLabels"; + // DPI_InvalidDates, having type string[] + ParameterId["InvalidDates"] = "invalidDates"; + // DPI_InvalidValues, having type string[] + ParameterId["InvalidValues"] = "invalidValues"; + // DPI_ItemValues, having type string[] + ParameterId["ItemValues"] = "itemValues"; + // DPI_JoinEditableProps, having type string[] + ParameterId["JoinEditableProps"] = "joinEditableProps"; + // DPI_JoinFieldCaptions, having type string[] + ParameterId["JoinFieldCaptions"] = "joinFieldCaptions"; + // DPI_LocaleOptions, having type string[] + ParameterId["LocaleOptions"] = "localeOptions"; + // DPI_LocaleDisplayNames, having type string[] + ParameterId["LocaleDisplayNames"] = "localeDisplayNames"; + // DPI_MapBoxStyleMaps, having type string[] + ParameterId["MapBoxStyleMaps"] = "mapboxStyleMaps"; + // DPI_MapConnectionErrorDetails, having type string[] + ParameterId["MapConnectionErrorDetails"] = "mapConnectionErrorDetails"; + // DPI_SheetNames, having type string[] + ParameterId["SheetNames"] = "sheetNames"; + // DPI_MapSourceNames, having type string[] + ParameterId["MapSourceNames"] = "mapSourceNames"; + // DPI_MarkGeometries, having type string[] + ParameterId["MarkGeometries"] = "markGeometries"; + // DPI_MenuItems, having type string[] + ParameterId["MenuItems"] = "menuItems"; + // DPI_Modes, having type string[] + ParameterId["Modes"] = "modes"; + // DPI_MonthNames, having type string[] + ParameterId["MonthNames"] = "monthNames"; + // DPI_NumberFormats, having type string[] + ParameterId["NumberFormats"] = "numberFormats"; + // DPI_ObjectTextIDs, having type string[] + ParameterId["ObjectTextIDs"] = "objectTextIds"; + // DPI_OldExtracts, having type string[] + ParameterId["OldExtracts"] = "oldExtracts"; + // DPI_OrderingTypeCaptions, having type string[] + ParameterId["OrderingTypeCaptions"] = "orderingTypeCaptions"; + // DPI_PageNames, having type string[] + ParameterId["PageNames"] = "pageNames"; + // DPI_PaneDescriptorKeys, having type string[] + ParameterId["PaneDescriptorKeys"] = "paneDescriptorKeys"; + // DPI_ParamCaptions, having type string[] + ParameterId["ParamCaptions"] = "paramCaptions"; + // DPI_PrecannedDataValues, having type string[] + ParameterId["PrecannedDataValues"] = "precannedDataValues"; + // DPI_PublishChoiceLabels, having type string[] + ParameterId["PublishChoiceLabels"] = "publishChoiceLabels"; + // DPI_RankTypeCaptions, having type string[] + ParameterId["RankTypeCaptions"] = "rankTypeCaptions"; + // DPI_RecentTags, having type string[] + ParameterId["RecentTags"] = "recentTags"; + // DPI_RelativeCaptions, having type string[] + ParameterId["RelativeCaptions"] = "relativeCaptions"; + // DPI_RemovedDataSources, having type string[] + ParameterId["RemovedDataSources"] = "removedDataSourceNames"; + // DPI_RepresentativeTuple, having type string[] + ParameterId["RepresentativeTuple"] = "representativeTuple"; + // DPI_RestartEveryCaptions, having type string[] + ParameterId["RestartEveryCaptions"] = "restartEveryCaptions"; + // DPI_SchemaMemberGlobalNames, having type string[] + ParameterId["SchemaMemberGlobalNames"] = "schemaMemberGlobalNames"; + // DPI_SelectValuesList, having type string[] + ParameterId["SelectValuesList"] = "selectValues"; + // DPI_SelectionValueList, having type string[] + ParameterId["SelectionValueList"] = "selectionValueList"; + // DPI_SortAggCaptions, having type string[] + ParameterId["SortAggCaptions"] = "sortAggCaptions"; + // DPI_SortDirectionCaptions, having type string[] + ParameterId["SortDirectionCaptions"] = "sortDirectionCaptions"; + // DPI_SortFieldCaptions, having type string[] + ParameterId["SortFieldCaptions"] = "sortFieldCaptions"; + // DPI_SortFieldNameVector, having type string[] + ParameterId["SortFieldNameVector"] = "sortFieldnameVector"; + // DPI_SupportedJoinOperators, having type string[] + ParameterId["SupportedJoinOperators"] = "supportedJoinOperators"; + // DPI_TableCalcTypeCaptions, having type string[] + ParameterId["TableCalcTypeCaptions"] = "tableCalcTypeCaptions"; + // DPI_Tags, having type string[] + ParameterId["Tags"] = "tags"; + // DPI_TermVec, having type string[] + ParameterId["TermVec"] = "termVector"; + // DPI_UIAutomationList, having type string[] + ParameterId["UIAutomationList"] = "uiAutomationList"; + // DPI_ReferenceLineValidCustomLabelTags, having type string[] + ParameterId["ReferenceLineValidCustomLabelTags"] = "validReferenceLineCustomLabelTags"; + // DPI_LocalizedKeywords, having type string[] + ParameterId["LocalizedKeywords"] = "localizedKeywords"; + // DPI_AvailableCalendars, having type string[] + ParameterId["AvailableCalendars"] = "availableCalendars"; + // DPI_SheetsToBeDeletedOrHidden, having type string[] + ParameterId["SheetsToBeDeletedOrHidden"] = "sheetsToBeDeletedOrHidden"; + // DPI_AddSheets, having type string[] + ParameterId["AddSheets"] = "addSheets"; + // DPI_NamesOfSubsheets, having type string[] + ParameterId["NamesOfSubsheets"] = "namesOfSubsheets"; + // DPI_RemoveSheets, having type string[] + ParameterId["RemoveSheets"] = "removeSheets"; + // DPI_ScrollOffsetSheets, having type string[] + ParameterId["ScrollOffsetSheets"] = "scrollOffsetSheets"; + // DPI_Sheets, having type string[] + ParameterId["Sheets"] = "sheets"; + // DPI_SourceWorksheets, having type string[] + ParameterId["SourceWorksheets"] = "sourceWorksheets"; + // DPI_TargetExcludes, having type string[] + ParameterId["TargetExcludes"] = "targetExclude"; + // DPI_TargetWorksheets, having type string[] + ParameterId["TargetWorksheets"] = "targetWorksheets"; + // DPI_TileURLs, having type string[] + ParameterId["TileURLs"] = "tileUrls"; + // DPI_Details, having type string[] + ParameterId["Details"] = "details"; + // DPI_FieldCaptions, having type string[] + ParameterId["FieldCaptions"] = "fieldCaptions"; + // DPI_HighlightCaptions, having type string[] + ParameterId["HighlightCaptions"] = "highlightCaptions"; + // DPI_LevelCaptions, having type string[] + ParameterId["LevelCaptions"] = "levelCaptions"; + // DPI_LevelLeafValues, having type string[] + ParameterId["LevelLeafValues"] = "levelLeafValues"; + // DPI_SubstitutionVariables, having type string[] + ParameterId["SubstitutionVariables"] = "substitutionVariables"; + // DPI_SubstitutionVariableValues, having type string[] + ParameterId["SubstitutionVariableValues"] = "substitutionVariableValues"; + // DPI_HtmlTooltips, having type string[] + ParameterId["HtmlTooltips"] = "htmlTooltips"; + // DPI_InvalidFields, having type string[] + ParameterId["InvalidFields"] = "invalidFields"; + // DPI_NamesOfColumns, having type string[] + ParameterId["NamesOfColumns"] = "namesOfColumns"; + // DPI_NamesOfFields, having type string[] + ParameterId["NamesOfFields"] = "namesOfFields"; + // DPI_ReferencedDatasources, having type string[] + ParameterId["ReferencedDatasources"] = "referencedDataSourceList"; + // DPI_CSSAttrs, having type Dictionary(of string) + ParameterId["CSSAttrs"] = "cssAttrs"; + // DPI_DataSourceMap, having type Dictionary(of string) + ParameterId["DataSourceMap"] = "dataSourceMap"; + // DPI_EventParameters, having type Dictionary(of string) + ParameterId["EventParameters"] = "eventParameters"; + // DPI_ExceptionAttrs, having type Dictionary(of string) + ParameterId["ExceptionAttrs"] = "exceptionAttrs"; + // DPI_InvalidSheetMessage, having type Dictionary(of string) + ParameterId["InvalidSheetMessage"] = "invalidSheetMessages"; + // DPI_MapBoxDefaultStyle, having type Dictionary(of string) + ParameterId["MapBoxDefaultStyle"] = "mapboxDefaultStyles"; + // DPI_PaneFormattings, having type Dictionary(of string) + ParameterId["PaneFormattings"] = "paneFormattings"; + // DPI_SourceNameWithCaption, having type Dictionary(of string) + ParameterId["SourceNameWithCaption"] = "sourceNameWithCaption"; + // DPI_ConnectionColorMap, having type Dictionary(of string) + ParameterId["ConnectionColorMap"] = "connectionColorMap"; + // DPI_TargetNameWithCaption, having type Dictionary(of string) + ParameterId["TargetNameWithCaption"] = "targetNameWithCaption"; + // DPI_ViewIds, having type Dictionary(of string) + ParameterId["ViewIds"] = "viewIds"; + // DPI_AddInSettings, having type Dictionary(of string) + ParameterId["AddInSettings"] = "addInSettings"; + // DPI_DatasourceIcons, having type Dictionary(of string) + ParameterId["DatasourceIcons"] = "datasourceIcons"; + // DPI_FormattedText, having type string + ParameterId["FormattedText"] = "formattedText"; + // DPI_IconTooltip, having type string + ParameterId["IconTooltip"] = "iconTooltip"; + // DPI_Title, having type string + ParameterId["Title"] = "title"; + // DPI_Tooltip, having type string + ParameterId["Tooltip"] = "tooltip"; + // DPI_ZoneText, having type string + ParameterId["ZoneText"] = "zoneText"; + // DPI_AlignmentFlags, having type int + ParameterId["AlignmentFlags"] = "alignmentFlags"; + // DPI_AlphaLevel, having type int + ParameterId["AlphaLevel"] = "alphaLevel"; + // DPI_AnovaDF, having type int + ParameterId["AnovaDF"] = "anovaDf"; + // DPI_AtTheLevelIndex, having type int + ParameterId["AtTheLevelIndex"] = "atTheLevelIndex"; + // DPI_AutomaticDrillIdxInVector, having type int + ParameterId["AutomaticDrillIdxInVector"] = "automaticDrillIdxVector"; + // DPI_AutoSize, having type int + ParameterId["AutoSize"] = "automaticSize"; + // DPI_BaseCoord, having type int + ParameterId["BaseCoord"] = "baseCoord"; + // DPI_CalcEditorCursorPosPostDrop, having type int + ParameterId["CalcEditorCursorPosPostDrop"] = "calcEditorCursorPosPostDrop"; + // DPI_CalcEditorDropPos, having type int + ParameterId["CalcEditorDropPos"] = "calcEditorDropPos"; + // DPI_CalcEditorTextSelectionEndPos, having type int + ParameterId["CalcEditorTextSelectionEndPos"] = "calcEditorTextSelectionEndPos"; + // DPI_CalcEditorTextSelectionStartPos, having type int + ParameterId["CalcEditorTextSelectionStartPos"] = "calcEditorTextSelectionStartPos"; + // DPI_CategoricalBinId, having type int + ParameterId["CategoricalBinId"] = "categoricalBinId"; + // DPI_CategoricalFindControllerId, having type int + ParameterId["CategoricalFindControllerId"] = "categoricalFindControllerId"; + // DPI_ClauseToModifyIndex, having type int + ParameterId["ClauseToModifyIndex"] = "clauseToModifyIndex"; + // DPI_ClientRenderPixelLimit, having type int + ParameterId["ClientRenderPixelLimit"] = "clientRenderPixelLimit"; + // DPI_ColCount, having type int + ParameterId["ColCount"] = "colCount"; + // DPI_ColWidth, having type int + ParameterId["ColWidth"] = "colWidth"; + // DPI_ColumnLevels, having type int + ParameterId["ColumnLevels"] = "columnLevels"; + // DPI_ColumnNumber, having type int + ParameterId["ColumnNumber"] = "columnNumber"; + // DPI_ColumnWidth, having type int + ParameterId["ColumnWidth"] = "columnWidth"; + // DPI_ContentHeight, having type int + ParameterId["ContentHeight"] = "contentH"; + // DPI_ContentWidth, having type int + ParameterId["ContentWidth"] = "contentW"; + // DPI_ContentX, having type int + ParameterId["ContentX"] = "contentX"; + // DPI_ContentY, having type int + ParameterId["ContentY"] = "contentY"; + // DPI_Coordinate, having type int + ParameterId["Coordinate"] = "coord"; + // DPI_CurDateAgg, having type int + ParameterId["CurDateAgg"] = "curDateAgg"; + // DPI_CurrentCustViewId, having type int + ParameterId["CurrentCustViewId"] = "currentCustomViewId"; + // DPI_CustomSplitCharacterCountSeparator, having type int + ParameterId["CustomSplitCharacterCountSeparator"] = "customSplitCharacterCountSeparator"; + // DPI_CustomSplitDesiredSplitCount, having type int + ParameterId["CustomSplitDesiredSplitCount"] = "customSplitDesiredSplitCount"; + // DPI_DashboardGridSize, having type int + ParameterId["DashboardGridSize"] = "dashboardGridSize"; + // DPI_DataIndex, having type int + ParameterId["DataIndex"] = "dataIndex"; + // DPI_DecimalPlaces, having type int + ParameterId["DecimalPlaces"] = "decimalPlaces"; + // DPI_DeltaTime, having type int + ParameterId["DeltaTime"] = "deltaTime"; + // DPI_DestPix, having type int + ParameterId["DestPix"] = "destPix"; + // DPI_DeviceIndex, having type int + ParameterId["DeviceIndex"] = "deviceIndex"; + // DPI_Duration, having type int + ParameterId["Duration"] = "duration"; + // DPI_EndPtX, having type int + ParameterId["EndPtX"] = "endX"; + // DPI_EndPtY, having type int + ParameterId["EndPtY"] = "endY"; + // DPI_ErrorLen, having type int + ParameterId["ErrorLen"] = "lengthOfCalcOfError"; + // DPI_ErrorPos, having type int + ParameterId["ErrorPos"] = "startPositionForError"; + // DPI_ExceptionErrorMessageId, having type int + ParameterId["ExceptionErrorMessageId"] = "exceptionErrorMessageId"; + // DPI_ExtentsH, having type int + ParameterId["ExtentsH"] = "extentsHeight"; + // DPI_ExtentsW, having type int + ParameterId["ExtentsW"] = "extentsWidth"; + // DPI_ExtentsX, having type int + ParameterId["ExtentsX"] = "extentsX"; + // DPI_ExtentsY, having type int + ParameterId["ExtentsY"] = "extentsY"; + // DPI_FieldIndex, having type int + ParameterId["FieldIndex"] = "fieldIndex"; + // DPI_FieldNameId, having type int + ParameterId["FieldNameId"] = "fieldNameId"; + // DPI_FirstDayOfWeek, having type int + ParameterId["FirstDayOfWeek"] = "firstDayOfWeek"; + // DPI_FirstLinkedLevel, having type int + ParameterId["FirstLinkedLevel"] = "firstLinkedLevel"; + // DPI_FirstValueIndex, having type int + ParameterId["FirstValueIndex"] = "firstValueIndex"; + // DPI_FixedSizePresetIndex, having type int + ParameterId["FixedSizePresetIndex"] = "fixedSizePresetIndex"; + // DPI_FocusItemIndex, having type int + ParameterId["FocusItemIndex"] = "focusItemIndex"; + // DPI_FontSize, having type int + ParameterId["FontSize"] = "fontSize"; + // DPI_ForecastIntRangeEnd, having type int + ParameterId["ForecastIntRangeEnd"] = "forecastIntRangeEnd"; + // DPI_ForecastIntRangeStart, having type int + ParameterId["ForecastIntRangeStart"] = "forecastIntRangeStart"; + // DPI_FunctionHelpIndex, having type int + ParameterId["FunctionHelpIndex"] = "functionHelpIndex"; + // DPI_GeographicSearchMaxResults, having type int + ParameterId["GeographicSearchMaxResults"] = "geographicSearchMaxResults"; + // DPI_Height, having type int + ParameterId["Height"] = "h"; + // DPI_HierarchyLevel, having type int + ParameterId["HierarchyLevel"] = "hierarchyLevel"; + // DPI_HierarchyLevelLoaded, having type int + ParameterId["HierarchyLevelLoaded"] = "hierarchyLevelLoaded"; + // DPI_HierarchyLevelMinimum, having type int + ParameterId["HierarchyLevelMinimum"] = "hierarchyLevelMinimum"; + // DPI_HierarchyLoadLimit, having type int + ParameterId["HierarchyLoadLimit"] = "hierarchyLoadLimit"; + // DPI_HierarchySelectControllerId, having type int + ParameterId["HierarchySelectControllerId"] = "hierarchySelectControllerId"; + // DPI_HorzTextCell, having type int + ParameterId["HorzTextCell"] = "horzTextCell"; + // DPI_ImageIndex, having type int + ParameterId["ImageIndex"] = "imageIndex"; + // DPI_ImageSizeLimit, having type int + ParameterId["ImageSizeLimit"] = "imageSizeLimit"; + // DPI_TransparentLineMarksLimit, having type int + ParameterId["TransparentLineMarksLimit"] = "transparentLineMarksLimit"; + // DPI_Indent, having type int + ParameterId["Indent"] = "indent"; + // DPI_Index, having type int + ParameterId["Index"] = "idx"; + // DPI_IndexFrom, having type int + ParameterId["IndexFrom"] = "indexFrom"; + // DPI_IndexOffset, having type int + ParameterId["IndexOffset"] = "indexOffset"; + // DPI_IndexRelativeDateField, having type int + ParameterId["IndexRelativeDateField"] = "indiexRelativeDateField"; + // DPI_IndexSelectedItem, having type int + ParameterId["IndexSelectedItem"] = "indexSelectedItem"; + // DPI_IndexTo, having type int + ParameterId["IndexTo"] = "indexTo"; + // DPI_InlineConnectionRenameRow, having type int + ParameterId["InlineConnectionRenameRow"] = "inlineConnectionRenameRow"; + // DPI_InsertPos, having type int + ParameterId["InsertPos"] = "insertPos"; + // DPI_IsHasDataSupported, having type int + ParameterId["IsHasDataSupported"] = "isHasDataSupported"; + // DPI_LeftMargin, having type int + ParameterId["LeftMargin"] = "leftMargin"; + // DPI_LeftRightBorderWidth, having type int + ParameterId["LeftRightBorderWidth"] = "leftRightBorderWidth"; + // DPI_LevelNumber, having type int + ParameterId["LevelNumber"] = "levelNumber"; + // DPI_LowerBound, having type int + ParameterId["LowerBound"] = "lowerBound"; + // DPI_MapRequestPixels, having type int + ParameterId["MapRequestPixels"] = "mapRequestPixels"; + // DPI_MapScaleFontSizePixels, having type int + ParameterId["MapScaleFontSizePixels"] = "mapScaleFontSizePixels"; + // DPI_MapScaleReadoutNumber, having type int + ParameterId["MapScaleReadoutNumber"] = "mapScaleReadoutNumber"; + // DPI_MapScaleWidth, having type int + ParameterId["MapScaleWidth"] = "mapScaleWidth"; + // DPI_MapTileSize, having type int + ParameterId["MapTileSize"] = "mapTileSize"; + // DPI_Margin, having type int + ParameterId["Margin"] = "margin"; + // DPI_MarginBottom, having type int + ParameterId["MarginBottom"] = "marginBottom"; + // DPI_MarginLeft, having type int + ParameterId["MarginLeft"] = "marginLeft"; + // DPI_MarginRight, having type int + ParameterId["MarginRight"] = "marginRight"; + // DPI_MarginTop, having type int + ParameterId["MarginTop"] = "marginTop"; + // DPI_MaxCell, having type int + ParameterId["MaxCell"] = "maxCell"; + // DPI_MaxItemSpan, having type int + ParameterId["MaxItemSpan"] = "maxItemSpan"; + // DPI_MaxPolynomialDegree, having type int + ParameterId["MaxPolynomialDegree"] = "maxDegree"; + // DPI_MaxPosition, having type int + ParameterId["MaxPosition"] = "maxPosition"; + // DPI_MaxSize, having type int + ParameterId["MaxSize"] = "maxSize"; + // DPI_MinCell, having type int + ParameterId["MinCell"] = "minCell"; + // DPI_MinPolynomialDegree, having type int + ParameterId["MinPolynomialDegree"] = "minDegree"; + // DPI_MinPosition, having type int + ParameterId["MinPosition"] = "minPosition"; + // DPI_MinSize, having type int + ParameterId["MinSize"] = "minSize"; + // DPI_ModelDF, having type int + ParameterId["ModelDF"] = "modelDf"; + // DPI_NewIndex, having type int + ParameterId["NewIndex"] = "newIndex"; + // DPI_NumDataSourcesUsingServer, having type int + ParameterId["NumDataSourcesUsingServer"] = "numDataSourcesUsingServer"; + // DPI_NumFilteredObs, having type int + ParameterId["NumFilteredObs"] = "filteredObservations"; + // DPI_NumModeledObs, having type int + ParameterId["NumModeledObs"] = "modeledObservations"; + // DPI_NumNotClustered, having type int + ParameterId["NumNotClustered"] = "numNotClustered"; + // DPI_NumNumericFields, having type int + ParameterId["NumNumericFields"] = "numNumericFields"; + // DPI_NumOutliers, having type int + ParameterId["NumOutliers"] = "numOutliers"; + // DPI_NumRows, having type int + ParameterId["NumRows"] = "numRows"; + // DPI_NumSelected, having type int + ParameterId["NumSelected"] = "numSelected"; + // DPI_OffsetX, having type int + ParameterId["OffsetX"] = "offsetX"; + // DPI_OffsetY, having type int + ParameterId["OffsetY"] = "offsetY"; + // DPI_Padding, having type int + ParameterId["Padding"] = "padding"; + // DPI_PaddingBottom, having type int + ParameterId["PaddingBottom"] = "paddingBottom"; + // DPI_PaddingLeft, having type int + ParameterId["PaddingLeft"] = "paddingLeft"; + // DPI_PaddingRight, having type int + ParameterId["PaddingRight"] = "paddingRight"; + // DPI_PaddingTop, having type int + ParameterId["PaddingTop"] = "paddingTop"; + // DPI_PageLoadPercentage, having type int + ParameterId["PageLoadPercentage"] = "pageLoadPercentage"; + // DPI_PaletteIndex, having type int + ParameterId["PaletteIndex"] = "paletteIndex"; + // DPI_PaneSpecificationId, having type int + ParameterId["PaneSpecificationId"] = "paneSpec"; + // DPI_ParameterCtrlIncrementsPerTick, having type int + ParameterId["ParameterCtrlIncrementsPerTick"] = "parameterControlIncrementMultiplier"; + // DPI_PolynomialDegree, having type int + ParameterId["PolynomialDegree"] = "degree"; + // DPI_Port, having type int + ParameterId["Port"] = "datasourcePort"; + // DPI_Position, having type int + ParameterId["Position"] = "position"; + // DPI_ParentProjectId, having type int + ParameterId["ParentProjectId"] = "parentProjectId"; + // DPI_Radius, having type int + ParameterId["Radius"] = "radius"; + // DPI_ReadoutOffset, having type int + ParameterId["ReadoutOffset"] = "readoutOffset"; + // DPI_ReferenceIndex, having type int + ParameterId["ReferenceIndex"] = "referenceIndex"; + // DPI_RegionHeight, having type int + ParameterId["RegionHeight"] = "regionHeight"; + // DPI_RegionWidth, having type int + ParameterId["RegionWidth"] = "regionWidth"; + // DPI_RemovedDatasourceCount, having type int + ParameterId["RemovedDatasourceCount"] = "removedDatasourceCount"; + // DPI_RemovedSheetCount, having type int + ParameterId["RemovedSheetCount"] = "removedSheetCount"; + // DPI_ResidualDF, having type int + ParameterId["ResidualDF"] = "residualDf"; + // DPI_ResizeColumn, having type int + ParameterId["ResizeColumn"] = "resizeColumn"; + // DPI_RestartEveryIndex, having type int + ParameterId["RestartEveryIndex"] = "restartEveryIndex"; + // DPI_RightMargin, having type int + ParameterId["RightMargin"] = "rightMargin"; + // DPI_RowCount, having type int + ParameterId["RowCount"] = "rowCount"; + // DPI_RowHeight, having type int + ParameterId["RowHeight"] = "rowHeight"; + // DPI_RowInnerLevels, having type int + ParameterId["RowInnerLevels"] = "rowInnerLevels"; + // DPI_RowLevels, having type int + ParameterId["RowLevels"] = "rowLevels"; + // DPI_RowNumber, having type int + ParameterId["RowNumber"] = "rowNumber"; + // DPI_RowWidth, having type int + ParameterId["RowWidth"] = "rowWidth"; + // DPI_SecondLinkedLevel, having type int + ParameterId["SecondLinkedLevel"] = "secondLinkedLevel"; + // DPI_SecondValueIndex, having type int + ParameterId["SecondValueIndex"] = "secondValueIndex"; + // DPI_SecondsAgo, having type int + ParameterId["SecondsAgo"] = "secondsAgo"; + // DPI_SelectionEnd, having type int + ParameterId["SelectionEnd"] = "selectionEnd"; + // DPI_SelectionStart, having type int + ParameterId["SelectionStart"] = "selectionStart"; + // DPI_ShapePaletteID, having type int + ParameterId["ShapePaletteID"] = "shapePaletteId"; + // DPI_SheetIndex, having type int + ParameterId["SheetIndex"] = "sheetIndex"; + // DPI_ShelfPositionIndex, having type int + ParameterId["ShelfPositionIndex"] = "shelfPosIndex"; + // DPI_Size, having type int + ParameterId["Size"] = "size"; + // DPI_SizeDifference, having type int + ParameterId["SizeDifference"] = "sizeDelta"; + // DPI_SnapDistance, having type int + ParameterId["SnapDistance"] = "snapDistance"; + // DPI_SnapLocation, having type int + ParameterId["SnapLocation"] = "snapLocation"; + // DPI_SolveOrder, having type int + ParameterId["SolveOrder"] = "solveOrder"; + // DPI_SpaceBetweenPoints, having type int + ParameterId["SpaceBetweenPoints"] = "spaceBetweenPoints"; + // DPI_StepSize, having type int + ParameterId["StepSize"] = "stepSize"; + // DPI_Steps, having type int + ParameterId["Steps"] = "steps"; + // DPI_StoryPointIndex, having type int + ParameterId["StoryPointIndex"] = "currentStorypointIndex"; + // DPI_StyleLen, having type int + ParameterId["StyleLen"] = "tokenLengthForStyle"; + // DPI_StylePos, having type int + ParameterId["StylePos"] = "tokenPositionForStyle"; + // DPI_SwatchAreaWidth, having type int + ParameterId["SwatchAreaWidth"] = "swatchWidth"; + // DPI_TargetBinId, having type int + ParameterId["TargetBinId"] = "targetBinId"; + // DPI_TargetPtX, having type int + ParameterId["TargetPtX"] = "targetX"; + // DPI_TargetPtY, having type int + ParameterId["TargetPtY"] = "targetY"; + // DPI_TileFactor, having type int + ParameterId["TileFactor"] = "tileFactor"; + // DPI_TitleHeight, having type int + ParameterId["TitleHeight"] = "titleHeight"; + // DPI_TitleWidth, having type int + ParameterId["TitleWidth"] = "titleWidth"; + // DPI_TopBottomBorderWidth, having type int + ParameterId["TopBottomBorderWidth"] = "topBottomBorderWidth"; + // DPI_UIAutomationLineSize, having type int + ParameterId["UIAutomationLineSize"] = "uiAutomationLineSize"; + // DPI_UIAutomationPageSize, having type int + ParameterId["UIAutomationPageSize"] = "uiAutomationPageSize"; + // DPI_UID, having type int + ParameterId["UID"] = "uid"; + // DPI_UpperBound, having type int + ParameterId["UpperBound"] = "upperBound"; + // DPI_VertTextCell, having type int + ParameterId["VertTextCell"] = "vertTextCell"; + // DPI_Width, having type int + ParameterId["Width"] = "w"; + // DPI_X, having type int + ParameterId["X"] = "x"; + // DPI_Y, having type int + ParameterId["Y"] = "y"; + // DPI_ZOrder, having type int + ParameterId["ZOrder"] = "zOrder"; + // DPI_ZoneIconIndex, having type int + ParameterId["ZoneIconIndex"] = "zoneIconIndex"; + // DPI_AliasIndices, having type int[] + ParameterId["AliasIndices"] = "aliasIndices"; + // DPI_AnovaDFVec, having type int[] + ParameterId["AnovaDFVec"] = "anovaDfVector"; + // DPI_ColumnIndices, having type int[] + ParameterId["ColumnIndices"] = "columnIndices"; + // DPI_DrillFieldIndices, having type int[] + ParameterId["DrillFieldIndices"] = "drillFieldIndices"; + // DPI_FilterMaxIndices, having type int[] + ParameterId["FilterMaxIndices"] = "filterMaxIndices"; + // DPI_FilterMinIndices, having type int[] + ParameterId["FilterMinIndices"] = "filterMinIndices"; + // DPI_FilterValuesIndices, having type int[] + ParameterId["FilterValuesIndices"] = "filterValueIndices"; + // DPI_FormatStringIndices, having type int[] + ParameterId["FormatStringIndices"] = "formatstrIndices"; + // DPI_FormattedValIndices, having type int[] + ParameterId["FormattedValIndices"] = "formatValIdxs"; + // DPI_PaletteIndices, having type int[] + ParameterId["PaletteIndices"] = "palettesIndices"; + // DPI_PaneIndices, having type int[] + ParameterId["PaneIndices"] = "paneIndices"; + // DPI_Points, having type int[] + ParameterId["Points"] = "points"; + // DPI_QuickFilterSettings, having type int[] + ParameterId["QuickFilterSettings"] = "quickFilterSettings"; + // DPI_SelectedIndices, having type int[] + ParameterId["SelectedIndices"] = "selectedIndices"; + // DPI_ShelfPositionIndices, having type int[] + ParameterId["ShelfPositionIndices"] = "shelfPosIndices"; + // DPI_TileBox, having type int[] + ParameterId["TileBox"] = "tileBox"; + // DPI_TrailOverride, having type int[] + ParameterId["TrailOverride"] = "trailOverride"; + // DPI_UIDs, having type int[] + ParameterId["UIDs"] = "uids"; + // DPI_ValueIndices, having type int[] + ParameterId["ValueIndices"] = "valueIndices"; + // DPI_XCellOffsets, having type int[] + ParameterId["XCellOffsets"] = "xCellOffsets"; + // DPI_XPixelOffsets, having type int[] + ParameterId["XPixelOffsets"] = "xPixelOffsets"; + // DPI_YCellOffsets, having type int[] + ParameterId["YCellOffsets"] = "yCellOffsets"; + // DPI_YPixelOffsets, having type int[] + ParameterId["YPixelOffsets"] = "yPixelOffsets"; + // DPI_IntMap, having type Dictionary(of int) + ParameterId["IntMap"] = "intMap"; + // DPI_SelectedAuthSettingIndices, having type Dictionary(of int) + ParameterId["SelectedAuthSettingIndices"] = "selectedAuthSettingIndices"; + // DPI_ActiveStoryPointID, having type uint + ParameterId["ActiveStoryPointID"] = "activeStoryPointId"; + // DPI_ActiveZoneID, having type uint + ParameterId["ActiveZoneID"] = "activeZoneId"; + // DPI_ActualSize, having type uint + ParameterId["ActualSize"] = "actualSize"; + // DPI_AddInDebugPort, having type uint + ParameterId["AddInDebugPort"] = "addInDebugPort"; + // DPI_AggregationIndex, having type uint + ParameterId["AggregationIndex"] = "aggregationIndex"; + // DPI_AnnotationID, having type uint + ParameterId["AnnotationID"] = "annotationId"; + // DPI_AssignedAliasCount, having type uint + ParameterId["AssignedAliasCount"] = "assignedAliasCount"; + // DPI_CapabilityId, having type uint + ParameterId["CapabilityId"] = "capabilityId"; + // DPI_CaretIndex, having type uint + ParameterId["CaretIndex"] = "caretIndex"; + // DPI_CellID, having type uint + ParameterId["CellID"] = "cellId"; + // DPI_ColumnIndex, having type uint + ParameterId["ColumnIndex"] = "columnIndex"; + // DPI_CommandID, having type uint + ParameterId["CommandID"] = "id"; + // DPI_CommandIndex, having type uint + ParameterId["CommandIndex"] = "index"; + // DPI_ControllerId, having type uint + ParameterId["ControllerId"] = "controllerId"; + // DPI_Count, having type uint + ParameterId["Count"] = "count"; + // DPI_URowCount, having type uint + ParameterId["URowCount"] = "uRowCount"; + // DPI_UColumnCount, having type uint + ParameterId["UColumnCount"] = "uColumnCount"; + // DPI_CurrentPage, having type uint + ParameterId["CurrentPage"] = "currentPage"; + // DPI_DatePeriodsCount, having type uint + ParameterId["DatePeriodsCount"] = "datePeriodsCount"; + // DPI_Decimals, having type uint + ParameterId["Decimals"] = "decimals"; + // DPI_DefaultHeight, having type uint + ParameterId["DefaultHeight"] = "defaultHeight"; + // DPI_DefaultItem, having type uint + ParameterId["DefaultItem"] = "defaultItem"; + // DPI_DefaultWidth, having type uint + ParameterId["DefaultWidth"] = "defaultWidth"; + // DPI_Depth, having type uint + ParameterId["Depth"] = "depth"; + // DPI_DetailID, having type uint + ParameterId["DetailID"] = "detailId"; + // DPI_DrillLevel, having type uint + ParameterId["DrillLevel"] = "drillLevel"; + // DPI_DuplicateIndex, having type uint + ParameterId["DuplicateIndex"] = "duplicateIndex"; + // DPI_EndIndex, having type uint + ParameterId["EndIndex"] = "endIndex"; + // DPI_FieldIconIdx, having type uint + ParameterId["FieldIconIdx"] = "fieldIconIdx"; + // DPI_FilterLevel, having type uint + ParameterId["FilterLevel"] = "filterLevel"; + // DPI_FilterTileSize, having type uint + ParameterId["FilterTileSize"] = "filterTileSize"; + // DPI_FiscalYearStart, having type uint + ParameterId["FiscalYearStart"] = "fiscalYearStart"; + // DPI_FitPagesAcross, having type uint + ParameterId["FitPagesAcross"] = "pageFitHorizontal"; + // DPI_FitPagesDown, having type uint + ParameterId["FitPagesDown"] = "pageFitVertical"; + // DPI_FixedIndex, having type uint + ParameterId["FixedIndex"] = "fixedIndex"; + // DPI_FlipboardZoneID, having type uint + ParameterId["FlipboardZoneID"] = "flipboardZoneId"; + // DPI_ForecastAutoRangeSize, having type uint + ParameterId["ForecastAutoRangeSize"] = "forecastAutoRangeSize"; + // DPI_ForecastEndOfRange, having type uint + ParameterId["ForecastEndOfRange"] = "forecastEndOfRange"; + // DPI_ForecastIgnoreLast, having type uint + ParameterId["ForecastIgnoreLast"] = "forecastIgnoreLast"; + // DPI_ForecastNextRangeSize, having type uint + ParameterId["ForecastNextRangeSize"] = "forecastNextRangeSize"; + // DPI_GroupFlags, having type uint + ParameterId["GroupFlags"] = "groupFlag"; + // DPI_HierarchyLevels, having type uint + ParameterId["HierarchyLevels"] = "hierarchyLevels"; + // DPI_HierarchyMemberId, having type uint + ParameterId["HierarchyMemberId"] = "hierarchyMemberId"; + // DPI_HitTestFlags, having type uint + ParameterId["HitTestFlags"] = "hitTestFlags"; + // DPI_ImageHeight, having type uint + ParameterId["ImageHeight"] = "imageHeight"; + // DPI_ImageWidth, having type uint + ParameterId["ImageWidth"] = "imageWidth"; + // DPI_ItemIndex, having type uint + ParameterId["ItemIndex"] = "itemIndex"; + // DPI_ItemIndex1, having type uint + ParameterId["ItemIndex1"] = "itemIndex1"; + // DPI_LineHeight, having type uint + ParameterId["LineHeight"] = "lineHeight"; + // DPI_MapIntermediateLevels, having type uint + ParameterId["MapIntermediateLevels"] = "mapIntermediateLevels"; + // DPI_MapWorldRepeats, having type uint + ParameterId["MapWorldRepeats"] = "mapWorldRepeats"; + // DPI_MaxAlpha, having type uint + ParameterId["MaxAlpha"] = "maxAlpha"; + // DPI_MaxHeight, having type uint + ParameterId["MaxHeight"] = "maxHeight"; + // DPI_MaxNumberWebListItems, having type uint + ParameterId["MaxNumberWebListItems"] = "maxNumberWebListItems"; + // DPI_MaxPrevOrNextValues, having type uint + ParameterId["MaxPrevOrNextValues"] = "maxPrevOrNextValues"; + // DPI_MaxRows, having type uint + ParameterId["MaxRows"] = "maxRows"; + // DPI_MaxTransparency, having type uint + ParameterId["MaxTransparency"] = "colorMaxTransparencyValue"; + // DPI_MaxWidth, having type uint + ParameterId["MaxWidth"] = "maxWidth"; + // DPI_MinColumns, having type uint + ParameterId["MinColumns"] = "minColumns"; + // DPI_MinHeight, having type uint + ParameterId["MinHeight"] = "minHeight"; + // DPI_MinPrevOrNextValues, having type uint + ParameterId["MinPrevOrNextValues"] = "minPrevOrNextValues"; + // DPI_MinTransparency, having type uint + ParameterId["MinTransparency"] = "colorMinTransparencyValue"; + // DPI_MinWidth, having type uint + ParameterId["MinWidth"] = "minWidth"; + // DPI_NestedCalcsIndex, having type uint + ParameterId["NestedCalcsIndex"] = "nestedCalcsIndex"; + // DPI_NextValues, having type uint + ParameterId["NextValues"] = "nextValues"; + // DPI_NodeLevel, having type uint + ParameterId["NodeLevel"] = "nodeLevel"; + // DPI_NumHighlighted, having type uint + ParameterId["NumHighlighted"] = "numHighlighted"; + // DPI_NumberOfNextValues, having type uint + ParameterId["NumberOfNextValues"] = "numberOfNextValues"; + // DPI_NumberOfPrevValues, having type uint + ParameterId["NumberOfPrevValues"] = "numberOfPrevValues"; + // DPI_ObjectID, having type uint + ParameterId["ObjectID"] = "objectId"; + // DPI_OrderingTypeIndex, having type uint + ParameterId["OrderingTypeIndex"] = "orderingTypeIndex"; + // DPI_PageCount, having type uint + ParameterId["PageCount"] = "pageCount"; + // DPI_PageFadeEnd, having type uint + ParameterId["PageFadeEnd"] = "fadeEnd"; + // DPI_PageFadeStart, having type uint + ParameterId["PageFadeStart"] = "fadeStart"; + // DPI_PageIndex, having type uint + ParameterId["PageIndex"] = "pageIndex"; + // DPI_PageNumber, having type uint + ParameterId["PageNumber"] = "pageNumber"; + // DPI_PageScalePercent, having type uint + ParameterId["PageScalePercent"] = "pageScalePercent"; + // DPI_PageTrailLength, having type uint + ParameterId["PageTrailLength"] = "historyLength"; + // DPI_PaletteFlagsVal, having type uint + ParameterId["PaletteFlagsVal"] = "paletteFlagsVal"; + // DPI_PaneIndex, having type uint + ParameterId["PaneIndex"] = "paneIndex"; + // DPI_ParamCtrlDisplayFlags, having type uint + ParameterId["ParamCtrlDisplayFlags"] = "paramDisplayFlags"; + // DPI_ParentZoneID, having type uint + ParameterId["ParentZoneID"] = "parentZoneId"; + // DPI_PercentileParam, having type uint + ParameterId["PercentileParam"] = "percentileParam"; + // DPI_PrevValues, having type uint + ParameterId["PrevValues"] = "prevValues"; + // DPI_PublishResultStringId, having type uint + ParameterId["PublishResultStringId"] = "publishResultStringId"; + // DPI_QRGBColor, having type uint + ParameterId["QRGBColor"] = "qrgbColor"; + // DPI_RangeN, having type uint + ParameterId["RangeN"] = "rangeN"; + // DPI_RankTypeIndex, having type uint + ParameterId["RankTypeIndex"] = "rankTypeIndex"; + // DPI_RenderComplexity, having type uint + ParameterId["RenderComplexity"] = "renderComplexityLimit"; + // DPI_RowIndex, having type uint + ParameterId["RowIndex"] = "rowIndex"; + // DPI_SelectedAuthSettingIndex, having type uint + ParameterId["SelectedAuthSettingIndex"] = "selectedAuthSettingIndex"; + // DPI_SelectedFullScheduleIndex, having type uint + ParameterId["SelectedFullScheduleIndex"] = "selectedFullScheduleIndex"; + // DPI_SelectedIncrScheduleIndex, having type uint + ParameterId["SelectedIncrScheduleIndex"] = "selectedIncrScheduleIndex"; + // DPI_SelectedPublishChoiceIndex, having type uint + ParameterId["SelectedPublishChoiceIndex"] = "selectedPublishChoiceIndex"; + // DPI_SelectedMemberCount, having type uint + ParameterId["SelectedMemberCount"] = "selectedMemberCount"; + // DPI_ShapeID, having type uint + ParameterId["ShapeID"] = "shapeId"; + // DPI_SheetUseCount, having type uint + ParameterId["SheetUseCount"] = "useCount"; + // DPI_ShelfItemID, having type uint + ParameterId["ShelfItemID"] = "shelfItemId"; + // DPI_SigFigs, having type uint + ParameterId["SigFigs"] = "sigFigs"; + // DPI_SortAggIndex, having type uint + ParameterId["SortAggIndex"] = "sortAggIndvValues"; + // DPI_SortColumnIndex, having type uint + ParameterId["SortColumnIndex"] = "sortColumnIndex"; + // DPI_SortDirectionIndex, having type uint + ParameterId["SortDirectionIndex"] = "sortDirectionIndex"; + // DPI_SortFieldIndex, having type uint + ParameterId["SortFieldIndex"] = "sortFieldIndex"; + // DPI_StartIndex, having type uint + ParameterId["StartIndex"] = "startIndex"; + // DPI_StartOfWeek, having type uint + ParameterId["StartOfWeek"] = "startOfWeek"; + // DPI_StoreId, having type uint + ParameterId["StoreId"] = "storeId"; + // DPI_StoryPointID, having type uint + ParameterId["StoryPointID"] = "storyPointId"; + // DPI_TableCalcTypeIndex, having type uint + ParameterId["TableCalcTypeIndex"] = "tableCalcTypeIndex"; + // DPI_TableCalcTypesUsed, having type uint + ParameterId["TableCalcTypesUsed"] = "tableCalcTypesUsed"; + // DPI_TemplateIndex, having type uint + ParameterId["TemplateIndex"] = "templateIndex"; + // DPI_TileCount, having type uint + ParameterId["TileCount"] = "tileCount"; + // DPI_TimeoutSeconds, having type uint + ParameterId["TimeoutSeconds"] = "timeoutSeconds"; + // DPI_TopN, having type uint + ParameterId["TopN"] = "topN"; + // DPI_TotalNumberOfItemsInSet, having type uint + ParameterId["TotalNumberOfItemsInSet"] = "totalNumberOfItemsInSet"; + // DPI_TotalMemberCount, having type uint + ParameterId["TotalMemberCount"] = "totalMemberCount"; + // DPI_Transparency, having type uint + ParameterId["Transparency"] = "colorTransparencyValue"; + // DPI_TupleID, having type uint + ParameterId["TupleID"] = "tupleId"; + // DPI_UIndex, having type uint + ParameterId["UIndex"] = "uindex"; + // DPI_UndoPosition, having type uint + ParameterId["UndoPosition"] = "undoPosition"; + // DPI_UnsignedWidth, having type uint + ParameterId["UnsignedWidth"] = "uw"; + // DPI_UnsignedWidthBottom, having type uint + ParameterId["UnsignedWidthBottom"] = "uwb"; + // DPI_UnsignedWidthLeft, having type uint + ParameterId["UnsignedWidthLeft"] = "uwl"; + // DPI_UnsignedWidthRight, having type uint + ParameterId["UnsignedWidthRight"] = "uwr"; + // DPI_UnsignedWidthTop, having type uint + ParameterId["UnsignedWidthTop"] = "uwt"; + // DPI_ValueIndex, having type uint + ParameterId["ValueIndex"] = "valueIndex"; + // DPI_ValueInt, having type uint + ParameterId["ValueInt"] = "valueInt"; + // DPI_WorldOffset, having type uint + ParameterId["WorldOffset"] = "worldOffset"; + // DPI_XDuplicateIndex, having type uint + ParameterId["XDuplicateIndex"] = "xDuplicateIndex"; + // DPI_XIndex, having type uint + ParameterId["XIndex"] = "xIndex"; + // DPI_YDuplicateIndex, having type uint + ParameterId["YDuplicateIndex"] = "yDuplicateIndex"; + // DPI_YIndex, having type uint + ParameterId["YIndex"] = "yIndex"; + // DPI_ZoneID, having type uint + ParameterId["ZoneID"] = "zoneId"; + // DPI_ZoneZOrder, having type uint + ParameterId["ZoneZOrder"] = "zoneZOrder"; + // DPI_ComponentID, having type uint + ParameterId["ComponentID"] = "componentId"; + // DPI_NonThreadPoolUseCount, having type uint + ParameterId["NonThreadPoolUseCount"] = "nonThreadPoolUseCount"; + // DPI_AddressingIndices, having type uint[] + ParameterId["AddressingIndices"] = "addressingIndices"; + // DPI_AddressingInvalidIndices, having type uint[] + ParameterId["AddressingInvalidIndices"] = "addressingInvalidIndices"; + // DPI_ChildZoneIds, having type uint[] + ParameterId["ChildZoneIds"] = "childZoneIds"; + // DPI_ColorList, having type uint[] + ParameterId["ColorList"] = "colorList"; + // DPI_DuplicateIndices, having type uint[] + ParameterId["DuplicateIndices"] = "duplicateIndices"; + // DPI_FilterAddIndices, having type uint[] + ParameterId["FilterAddIndices"] = "filterAddIndices"; + // DPI_FilterIndices, having type uint[] + ParameterId["FilterIndices"] = "filterIndices"; + // DPI_FilterLevelAdd, having type uint[] + ParameterId["FilterLevelAdd"] = "filterLevelAdd"; + // DPI_FilterLevelRemove, having type uint[] + ParameterId["FilterLevelRemove"] = "filterLevelRemove"; + // DPI_FilterLevels, having type uint[] + ParameterId["FilterLevels"] = "filterLevels"; + // DPI_FilterRemoveIndices, having type uint[] + ParameterId["FilterRemoveIndices"] = "filterRemoveIndices"; + // DPI_FixedValues, having type uint[] + ParameterId["FixedValues"] = "fixedValues"; + // DPI_HierarchyMemberIdList, having type uint[] + ParameterId["HierarchyMemberIdList"] = "hierarchyMemberIdList"; + // DPI_InvalidIndices, having type uint[] + ParameterId["InvalidIndices"] = "invalidIndices"; + // DPI_ItemIndices, having type uint[] + ParameterId["ItemIndices"] = "itemIndices"; + // DPI_LineTupleIDs, having type uint[] + ParameterId["LineTupleIDs"] = "lineTupleIds"; + // DPI_ObjectIDs, having type uint[] + ParameterId["ObjectIDs"] = "objectIds"; + // DPI_PageIndices, having type uint[] + ParameterId["PageIndices"] = "pageIndices"; + // DPI_QRGB, having type uint[] + ParameterId["QRGB"] = "qrgbList"; + // DPI_QRGBColors, having type uint[] + ParameterId["QRGBColors"] = "qrgbColors"; + // DPI_RefLineID, having type uint[] + ParameterId["RefLineID"] = "reflineId"; + // DPI_ShapeIDs, having type uint[] + ParameterId["ShapeIDs"] = "shapeIds"; + // DPI_ShelfSelection, having type uint[] + ParameterId["ShelfSelection"] = "shelfSelection"; + // DPI_StoryPointIDs, having type uint[] + ParameterId["StoryPointIDs"] = "storyPointIds"; + // DPI_TupleIDs, having type uint[] + ParameterId["TupleIDs"] = "tupleIds"; + // DPI_Widths, having type uint[] + ParameterId["Widths"] = "widths"; + // DPI_UintMap, having type Dictionary(of uint32_t) + ParameterId["UintMap"] = "uintMap"; + // DPI_Alpha, having type float + ParameterId["Alpha"] = "alpha"; + // DPI_Angle, having type float + ParameterId["Angle"] = "angle"; + // DPI_BreakPointValue, having type float + ParameterId["BreakPointValue"] = "breakPointValue"; + // DPI_DevicePixelRatio, having type float + ParameterId["DevicePixelRatio"] = "devicePixelRatio"; + // DPI_Distance, having type float + ParameterId["Distance"] = "distance"; + // DPI_FloatX, having type float + ParameterId["FloatX"] = "floatX"; + // DPI_FloatY, having type float + ParameterId["FloatY"] = "floatY"; + // DPI_FogDesaturation, having type float + ParameterId["FogDesaturation"] = "fogDesaturation"; + // DPI_MarkScale, having type float + ParameterId["MarkScale"] = "markScale"; + // DPI_MarkSizeInPixelUnits, having type float + ParameterId["MarkSizeInPixelUnits"] = "markSizeInPixelUnits"; + // DPI_PointSize, having type float + ParameterId["PointSize"] = "pointSize"; + // DPI_StrokeWidth, having type float + ParameterId["StrokeWidth"] = "strokeWidth"; + // DPI_TextRegionOrientation, having type float + ParameterId["TextRegionOrientation"] = "orientation"; + // DPI_TransformAngle, having type float + ParameterId["TransformAngle"] = "transformAngle"; + // DPI_ZoomLevel, having type float + ParameterId["ZoomLevel"] = "zoomLevel"; + // DPI_OldZoomLevel, having type float + ParameterId["OldZoomLevel"] = "oldZoomLevel"; + // DPI_NewZoomLevel, having type float + ParameterId["NewZoomLevel"] = "newZoomLevel"; + // DPI_AspectRatio, having type float + ParameterId["AspectRatio"] = "aspectRatio"; + // DPI_BottomPrintMargin, having type float + ParameterId["BottomPrintMargin"] = "bottomPrintMargin"; + // DPI_EarthRadius, having type float + ParameterId["EarthRadius"] = "earthRadius"; + // DPI_FloatHeight, having type float + ParameterId["FloatHeight"] = "floatHeight"; + // DPI_FloatLeft, having type float + ParameterId["FloatLeft"] = "floatLeft"; + // DPI_FloatRadius, having type float + ParameterId["FloatRadius"] = "floatRadius"; + // DPI_FloatTop, having type float + ParameterId["FloatTop"] = "floatTop"; + // DPI_FloatWidth, having type float + ParameterId["FloatWidth"] = "floatWidth"; + // DPI_LeftPrintMargin, having type float + ParameterId["LeftPrintMargin"] = "leftPrintMargin"; + // DPI_MapCenterLatitude, having type float + ParameterId["MapCenterLatitude"] = "mapCenterLatitude"; + // DPI_MapCenterLongitude, having type float + ParameterId["MapCenterLongitude"] = "mapCenterLongitude"; + // DPI_MapDisplayScale, having type float + ParameterId["MapDisplayScale"] = "mapDisplayScale"; + // DPI_MapMaxStretch, having type float + ParameterId["MapMaxStretch"] = "mapMaxStretch"; + // DPI_MapMaxZoom, having type float + ParameterId["MapMaxZoom"] = "mapMaxZoom"; + // DPI_MapMinShrink, having type float + ParameterId["MapMinShrink"] = "mapMinShrink"; + // DPI_MapMinZoom, having type float + ParameterId["MapMinZoom"] = "mapMinZoom"; + // DPI_MapRequestZoom, having type float + ParameterId["MapRequestZoom"] = "mapRequestZoom"; + // DPI_MapWashout, having type float + ParameterId["MapWashout"] = "mapWashout"; + // DPI_MaxLatitude, having type float + ParameterId["MaxLatitude"] = "maxLatitude"; + // DPI_MaxLongitude, having type float + ParameterId["MaxLongitude"] = "maxLongitude"; + // DPI_MinLatitude, having type float + ParameterId["MinLatitude"] = "minLatitude"; + // DPI_MinLongitude, having type float + ParameterId["MinLongitude"] = "minLongitude"; + // DPI_RightPrintMargin, having type float + ParameterId["RightPrintMargin"] = "rightPrintMargin"; + // DPI_TopPrintMargin, having type float + ParameterId["TopPrintMargin"] = "topPrintMargin"; + // DPI_UIAutomationMaximum, having type float + ParameterId["UIAutomationMaximum"] = "uiAutomationMaximum"; + // DPI_UIAutomationMinimum, having type float + ParameterId["UIAutomationMinimum"] = "uiAutomationMinimum"; + // DPI_UIAutomationOffset, having type float + ParameterId["UIAutomationOffset"] = "uiAutomationOffset"; + // DPI_UnitDivisor, having type float + ParameterId["UnitDivisor"] = "unitDivisor"; + // DPI_UnitTransition, having type float + ParameterId["UnitTransition"] = "unitTransition"; + // DPI_AutomaticDrillIdx, having type float[] + ParameterId["AutomaticDrillIdx"] = "automaticDrillIdx"; + // DPI_DestinationBox, having type float[] + ParameterId["DestinationBox"] = "destBox"; + // DPI_LowerEnd, having type float[] + ParameterId["LowerEnd"] = "lowerEnd"; + // DPI_OppositeAxis, having type float[] + ParameterId["OppositeAxis"] = "oppositeAxis"; + // DPI_PointsF, having type float[] + ParameterId["PointsF"] = "pointsF"; + // DPI_SourceBox, having type float[] + ParameterId["SourceBox"] = "sourceBox"; + // DPI_TransformOffset, having type float[] + ParameterId["TransformOffset"] = "transformOffset"; + // DPI_TransformScale, having type float[] + ParameterId["TransformScale"] = "transformScale"; + // DPI_UpperEnd, having type float[] + ParameterId["UpperEnd"] = "upperEnd"; + // DPI_FloatMap, having type Dictionary(of float) + ParameterId["FloatMap"] = "floatMap"; + // DPI_BGSS, having type double + ParameterId["BGSS"] = "betweenGroupSumOfSquares"; + // DPI_ConfidenceLevel, having type double + ParameterId["ConfidenceLevel"] = "confidenceLevel"; + // DPI_ConfidencePercentage, having type double + ParameterId["ConfidencePercentage"] = "confidencePercentage"; + // DPI_DoubleLeft, having type double + ParameterId["DoubleLeft"] = "doubleLeft"; + // DPI_DoubleTop, having type double + ParameterId["DoubleTop"] = "doubleTop"; + // DPI_DoubleValue, having type double + ParameterId["DoubleValue"] = "doubleValue"; + // DPI_DoubleX, having type double + ParameterId["DoubleX"] = "doubleX"; + // DPI_DoubleY, having type double + ParameterId["DoubleY"] = "doubleY"; + // DPI_FStatistic, having type double + ParameterId["FStatistic"] = "fStatistic"; + // DPI_FilterRangeMax, having type double + ParameterId["FilterRangeMax"] = "filterRangeMax"; + // DPI_FilterRangeMin, having type double + ParameterId["FilterRangeMin"] = "filterRangeMin"; + // DPI_GeographicSearchCandidateScore, having type double + ParameterId["GeographicSearchCandidateScore"] = "geographicSearchCandidateScore"; + // DPI_HeightD, having type double + ParameterId["HeightD"] = "height"; + // DPI_InflectionFraction, having type double + ParameterId["InflectionFraction"] = "inflectionFraction"; + // DPI_InflectionValue, having type double + ParameterId["InflectionValue"] = "inflectionValue"; + // DPI_MSE, having type double + ParameterId["MSE"] = "meanSquaredError"; + // DPI_MSM, having type double + ParameterId["MSM"] = "meanSquaredModel"; + // DPI_MapScaleMarginOfError, having type double + ParameterId["MapScaleMarginOfError"] = "mapScaleMarginOfError"; + // DPI_MarkSize, having type double + ParameterId["MarkSize"] = "markSize"; + // DPI_MaxMarkSize, having type double + ParameterId["MaxMarkSize"] = "maxMarkSize"; + // DPI_MinMarkSize, having type double + ParameterId["MinMarkSize"] = "minMarkSize"; + // DPI_NotchPosition, having type double + ParameterId["NotchPosition"] = "notchPosition"; + // DPI_NotchValue, having type double + ParameterId["NotchValue"] = "notchValue"; + // DPI_PValue, having type double + ParameterId["PValue"] = "pValue"; + // DPI_PercentDimensions, having type double + ParameterId["PercentDimensions"] = "percentDimensions"; + // DPI_PercentGroups, having type double + ParameterId["PercentGroups"] = "percentGroups"; + // DPI_PercentMeasures, having type double + ParameterId["PercentMeasures"] = "percentMeasures"; + // DPI_RSquared, having type double + ParameterId["RSquared"] = "rSquared"; + // DPI_SSE, having type double + ParameterId["SSE"] = "sumSquaredError"; + // DPI_SSM, having type double + ParameterId["SSM"] = "sumSquaredModel"; + // DPI_StandardError, having type double + ParameterId["StandardError"] = "standardError"; + // DPI_TSS, having type double + ParameterId["TSS"] = "totalSumOfSquares"; + // DPI_WGSS, having type double + ParameterId["WGSS"] = "withinGroupSumOfSquares"; + // DPI_WidthD, having type double + ParameterId["WidthD"] = "width"; + // DPI_ZoomFactor, having type double + ParameterId["ZoomFactor"] = "zoomFactor"; + // DPI_CoefficientPValueVec, having type double[] + ParameterId["CoefficientPValueVec"] = "coefficientPValueVector"; + // DPI_CoefficientStdErrVec, having type double[] + ParameterId["CoefficientStdErrVec"] = "coefficientStdErrorVector"; + // DPI_CoefficientTValueVec, having type double[] + ParameterId["CoefficientTValueVec"] = "coefficientTValueVector"; + // DPI_CoefficientVec, having type double[] + ParameterId["CoefficientVec"] = "coefficientVector"; + // DPI_FStatisticVec, having type double[] + ParameterId["FStatisticVec"] = "trendLineFStatisticVector"; + // DPI_Factors, having type double[] + ParameterId["Factors"] = "factors"; + // DPI_MSEVec, having type double[] + ParameterId["MSEVec"] = "meanSquaredErrorVector"; + // DPI_Means, having type double[] + ParameterId["Means"] = "means"; + // DPI_PValueVec, having type double[] + ParameterId["PValueVec"] = "pValueVector"; + // DPI_Percentages, having type double[] + ParameterId["Percentages"] = "percentages"; + // DPI_Percentiles, having type double[] + ParameterId["Percentiles"] = "percentiles"; + // DPI_SSEVec, having type double[] + ParameterId["SSEVec"] = "sumSquaredErrorVector"; + // DPI_StDevs, having type double[] + ParameterId["StDevs"] = "stdev"; + // DPI_UnscaledMeans, having type double[] + ParameterId["UnscaledMeans"] = "unscaledMeans"; + // DPI_DeltaTimeMs, having type long + ParameterId["DeltaTimeMs"] = "deltaTimeMs"; + // DPI_ExtractHistoryRowCount, having type long + ParameterId["ExtractHistoryRowCount"] = "extractRowCount"; + // DPI_ExtractHistoryRowsRemoved, having type long + ParameterId["ExtractHistoryRowsRemoved"] = "extractRowsRemoved"; + // DPI_ExtractsSize, having type long + ParameterId["ExtractsSize"] = "extractsSize"; + // DPI_OldExtractSize, having type long + ParameterId["OldExtractSize"] = "oldExtractSize"; + // DPI_RowsInserted, having type long + ParameterId["RowsInserted"] = "rowsInserted"; + // DPI_SampleSize, having type long + ParameterId["SampleSize"] = "sampleSize"; + // DPI_SampleSpace, having type long + ParameterId["SampleSpace"] = "sampleSpace"; + // DPI_ThreadPoolUseCount, having type long + ParameterId["ThreadPoolUseCount"] = "threadPoolUseCount"; + // DPI_ActionId, having type string + ParameterId["ActionId"] = "actionId"; + // DPI_AxisColumn, having type string + ParameterId["AxisColumn"] = "axisColumn"; + // DPI_BaseColumnName, having type string + ParameterId["BaseColumnName"] = "baseColumnName"; + // DPI_BreakPointFieldName, having type string + ParameterId["BreakPointFieldName"] = "breakPointFieldName"; + // DPI_PairedFieldName, having type string + ParameterId["PairedFieldName"] = "pairedFn"; + // DPI_FieldNameAllowEmpty, having type string + ParameterId["FieldNameAllowEmpty"] = "fieldNameAllowEmpty"; + // DPI_FieldNameDisAgg, having type string + ParameterId["FieldNameDisAgg"] = "fnDisagg"; + // DPI_FieldNameLocal, having type string + ParameterId["FieldNameLocal"] = "fieldNameLocal"; + // DPI_FieldNamePrev, having type string + ParameterId["FieldNamePrev"] = "fnPrev"; + // DPI_FieldNameSource, having type string + ParameterId["FieldNameSource"] = "fnSource"; + // DPI_FieldNameTarget, having type string + ParameterId["FieldNameTarget"] = "fnTarget"; + // DPI_FieldNameX, having type string + ParameterId["FieldNameX"] = "fnX"; + // DPI_FieldNameY, having type string + ParameterId["FieldNameY"] = "fnY"; + // DPI_FieldToSort, having type string + ParameterId["FieldToSort"] = "fieldToSort"; + // DPI_GlobalFieldName, having type string + ParameterId["GlobalFieldName"] = "globalFieldName"; + // DPI_HierarchyName, having type string + ParameterId["HierarchyName"] = "hierarchyName"; + // DPI_InvalidAggFieldName, having type string + ParameterId["InvalidAggFieldName"] = "invalidAggFieldName"; + // DPI_InvalidFieldName, having type string + ParameterId["InvalidFieldName"] = "invalidFieldName"; + // DPI_LimitParameterName, having type string + ParameterId["LimitParameterName"] = "limitParameterName"; + // DPI_LocalBaseColumnName, having type string + ParameterId["LocalBaseColumnName"] = "localBaseColumnName"; + // DPI_MeasureName, having type string + ParameterId["MeasureName"] = "measureName"; + // DPI_NestedCalcField, having type string + ParameterId["NestedCalcField"] = "nestedCalcFn"; + // DPI_ParameterName, having type string + ParameterId["ParameterName"] = "parameterName"; + // DPI_ReferenceParam, having type string + ParameterId["ReferenceParam"] = "referenceParam"; + // DPI_ReplacementFieldName, having type string + ParameterId["ReplacementFieldName"] = "replacementFieldName"; + // DPI_RHSTableAlias, having type string + ParameterId["RHSTableAlias"] = "rhsTableAlias"; + // DPI_SortMeasureName, having type string + ParameterId["SortMeasureName"] = "sortMeasureName"; + // DPI_UniqueName, having type string + ParameterId["UniqueName"] = "uniqueName"; + // DPI_ValueColumn, having type string + ParameterId["ValueColumn"] = "valueColumn"; + // DPI_PairedValueColumn, having type string + ParameterId["PairedValueColumn"] = "pairedValueColumn"; + // DPI_ActionIds, having type string[] + ParameterId["ActionIds"] = "actionIds"; + // DPI_AddressingValues, having type string[] + ParameterId["AddressingValues"] = "addressingValues"; + // DPI_AllColumns, having type string[] + ParameterId["AllColumns"] = "allColumns"; + // DPI_AtTheLevelValues, having type string[] + ParameterId["AtTheLevelValues"] = "atTheLevelValues"; + // DPI_AutomaticDrillFieldName, having type string[] + ParameterId["AutomaticDrillFieldName"] = "automaticDrillFieldName"; + // DPI_BlendingFieldCandidates, having type string[] + ParameterId["BlendingFieldCandidates"] = "blendingFieldCandidates"; + // DPI_Columns, having type string[] + ParameterId["Columns"] = "columns"; + // DPI_CurrentBlendingFields, having type string[] + ParameterId["CurrentBlendingFields"] = "currentBlendingFields"; + // DPI_DimensionsToSort, having type string[] + ParameterId["DimensionsToSort"] = "dimensionsToSort"; + // DPI_DrillFieldVector, having type string[] + ParameterId["DrillFieldVector"] = "drillFieldVector"; + // DPI_EncodingFieldVector, having type string[] + ParameterId["EncodingFieldVector"] = "encodingFieldVector"; + // DPI_FieldVector, having type string[] + ParameterId["FieldVector"] = "fieldVector"; + // DPI_FilterFields, having type string[] + ParameterId["FilterFields"] = "filterFields"; + // DPI_LODFieldVector, having type string[] + ParameterId["LODFieldVector"] = "lodFieldVector"; + // DPI_LegendColumns, having type string[] + ParameterId["LegendColumns"] = "legendColumns"; + // DPI_LegendNames, having type string[] + ParameterId["LegendNames"] = "legendNames"; + // DPI_NodeColumns, having type string[] + ParameterId["NodeColumns"] = "nodeColumns"; + // DPI_PageFields, having type string[] + ParameterId["PageFields"] = "pageFields"; + // DPI_ParamValues, having type string[] + ParameterId["ParamValues"] = "paramValues"; + // DPI_RefLineFields, having type string[] + ParameterId["RefLineFields"] = "reflineFields"; + // DPI_ReferencedColumns, having type string[] + ParameterId["ReferencedColumns"] = "referencedColumns"; + // DPI_RelatedFieldNames, having type string[] + ParameterId["RelatedFieldNames"] = "relatedFieldNames"; + // DPI_RemoveActionResults, having type string[] + ParameterId["RemoveActionResults"] = "removeActionResults"; + // DPI_ResponseVector, having type string[] + ParameterId["ResponseVector"] = "responseVector"; + // DPI_RestartEveryValues, having type string[] + ParameterId["RestartEveryValues"] = "restartEveryValues"; + // DPI_ResultFields, having type string[] + ParameterId["ResultFields"] = "resultFields"; + // DPI_SortFieldValues, having type string[] + ParameterId["SortFieldValues"] = "sortFieldValues"; + // DPI_XFields, having type string[] + ParameterId["XFields"] = "xFields"; + // DPI_YFields, having type string[] + ParameterId["YFields"] = "yFields"; + // DPI_ConnectionFullName, having type string + ParameterId["ConnectionFullName"] = "connectionFullName"; + // DPI_ConnectionFullNames, having type string[] + ParameterId["ConnectionFullNames"] = "connectionFullNames"; + // DPI_BoundDataValue, having type object + ParameterId["BoundDataValue"] = "boundDataValue"; + // DPI_DataValue, having type object + ParameterId["DataValue"] = "dataValue"; + // DPI_DataValueIncrement, having type object + ParameterId["DataValueIncrement"] = "dataValueIncrement"; + // DPI_DataValueLowerX, having type object + ParameterId["DataValueLowerX"] = "dataValueLowerX"; + // DPI_DataValueLowerY, having type object + ParameterId["DataValueLowerY"] = "dataValueLowerY"; + // DPI_DataValueUpperX, having type object + ParameterId["DataValueUpperX"] = "dataValueUpperX"; + // DPI_DataValueUpperY, having type object + ParameterId["DataValueUpperY"] = "dataValueUpperY"; + // DPI_DefaultDataValue, having type object + ParameterId["DefaultDataValue"] = "defaultDataValue"; + // DPI_MaxDataValue, having type object + ParameterId["MaxDataValue"] = "maxDataValue"; + // DPI_MinDataValue, having type object + ParameterId["MinDataValue"] = "minDataValue"; + // DPI_ValidatedDataValue, having type object + ParameterId["ValidatedDataValue"] = "validatedDataValue"; + // DPI_BinSize, having type object + ParameterId["BinSize"] = "binSize"; + // DPI_LimitCount, having type object + ParameterId["LimitCount"] = "limitCount"; + // DPI_DataValueList, having type object[] + ParameterId["DataValueList"] = "dataValueList"; + // DPI_FieldDisplayItem, having type FieldDisplayItemPresModel + ParameterId["FieldDisplayItem"] = "fieldDisplayItem"; + // DPI_FieldDisplayList, having type FieldDisplayItemPresModel[] + ParameterId["FieldDisplayList"] = "fieldDisplayList"; + // DPI_FieldCaptionPair, having type FieldCaptionPairPresModel + ParameterId["FieldCaptionPair"] = "fieldCaptionPair"; + // DPI_FieldCaptionPairs, having type FieldCaptionPairPresModel[] + ParameterId["FieldCaptionPairs"] = "fieldCaptionPairs"; + // DPI_ParameterCaptionPairs, having type FieldCaptionPairPresModel[] + ParameterId["ParameterCaptionPairs"] = "parameterCaptionPairs"; + // DPI_VaryingAttributeDimensions, having type FieldCaptionPairPresModel[] + ParameterId["VaryingAttributeDimensions"] = "varyingAttributeDimensions"; + // DPI_FieldCaptionPairState, having type FieldCaptionPairStatePresModel + ParameterId["FieldCaptionPairState"] = "fieldCaptionPairState"; + // DPI_FieldCaptionPairStates, having type FieldCaptionPairStatePresModel[] + ParameterId["FieldCaptionPairStates"] = "fieldCaptionPairStates"; + // DPI_DatasourceCaptionPair, having type DatasourceCaptionPairPresModel + ParameterId["DatasourceCaptionPair"] = "datasourceCaptionPair"; + // DPI_DatasourceCaptionPairs, having type DatasourceCaptionPairPresModel[] + ParameterId["DatasourceCaptionPairs"] = "datasourceCaptionPairs"; + // DPI_SheetNameInfoPair, having type SheetNameInfoPairPresModel + ParameterId["SheetNameInfoPair"] = "sheetNameInfoPair"; + // DPI_SheetNameInfoPairs, having type SheetNameInfoPairPresModel[] + ParameterId["SheetNameInfoPairs"] = "sheetNameInfoPairs"; + // DPI_BGActiveColor, having type string + ParameterId["BGActiveColor"] = "bgActiveColor"; + // DPI_BGColor, having type string + ParameterId["BGColor"] = "bgColor"; + // DPI_BGRestColor, having type string + ParameterId["BGRestColor"] = "bgRestColor"; + // DPI_BorderColor, having type string + ParameterId["BorderColor"] = "borderColor"; + // DPI_BorderColorBottom, having type string + ParameterId["BorderColorBottom"] = "borderColorBottom"; + // DPI_BorderColorLeft, having type string + ParameterId["BorderColorLeft"] = "borderColorLeft"; + // DPI_BorderColorRight, having type string + ParameterId["BorderColorRight"] = "borderColorRight"; + // DPI_BorderColorTop, having type string + ParameterId["BorderColorTop"] = "borderColorTop"; + // DPI_ButtonObjectBackgroundColor, having type string + ParameterId["ButtonObjectBackgroundColor"] = "buttonObjectBackgroundColor"; + // DPI_Color, having type string + ParameterId["Color"] = "color"; + // DPI_Color1, having type string + ParameterId["Color1"] = "color1"; + // DPI_Color2, having type string + ParameterId["Color2"] = "color2"; + // DPI_DefaultColor, having type string + ParameterId["DefaultColor"] = "defaultColor"; + // DPI_DistanceFontColor, having type string + ParameterId["DistanceFontColor"] = "distanceFontColor"; + // DPI_FillColor, having type string + ParameterId["FillColor"] = "fillColor"; + // DPI_FogColor, having type string + ParameterId["FogColor"] = "fogColor"; + // DPI_HeaderColor, having type string + ParameterId["HeaderColor"] = "headerColor"; + // DPI_HighlightBGColor, having type string + ParameterId["HighlightBGColor"] = "highlightBgColor"; + // DPI_HighlightTextColor, having type string + ParameterId["HighlightTextColor"] = "highlightTextColor"; + // DPI_HoverColor, having type string + ParameterId["HoverColor"] = "hoverColor"; + // DPI_HyperlinkColor, having type string + ParameterId["HyperlinkColor"] = "hyperlinkColor"; + // DPI_MapAttributionFill, having type string + ParameterId["MapAttributionFill"] = "mapAttributionFill"; + // DPI_MapAttributionTextColor, having type string + ParameterId["MapAttributionTextColor"] = "mapAttributionTextColor"; + // DPI_MapPaneBackgroundFill, having type string + ParameterId["MapPaneBackgroundFill"] = "mapPaneBackgroundFill"; + // DPI_MapScaleBorderColor, having type string + ParameterId["MapScaleBorderColor"] = "mapScaleBorderColor"; + // DPI_MapScaleColor, having type string + ParameterId["MapScaleColor"] = "mapScaleColor"; + // DPI_MapWaitTileFill, having type string + ParameterId["MapWaitTileFill"] = "mapWaitTileFill"; + // DPI_MarkColor, having type string + ParameterId["MarkColor"] = "markColor"; + // DPI_NavArrowDisabledColor, having type string + ParameterId["NavArrowDisabledColor"] = "navArrowDisabledColor"; + // DPI_NavArrowHoverColor, having type string + ParameterId["NavArrowHoverColor"] = "navArrowHoverColor"; + // DPI_NavArrowIdleColor, having type string + ParameterId["NavArrowIdleColor"] = "navArrowIdleColor"; + // DPI_NavArrowPressedColor, having type string + ParameterId["NavArrowPressedColor"] = "navArrowPressedColor"; + // DPI_PaneColor, having type string + ParameterId["PaneColor"] = "paneColor"; + // DPI_PressColor, having type string + ParameterId["PressColor"] = "pressColor"; + // DPI_ResizeBorderColor, having type string + ParameterId["ResizeBorderColor"] = "resizeBorderColor"; + // DPI_SelectBGColor, having type string + ParameterId["SelectBGColor"] = "selectBgColor"; + // DPI_SelectionTextColor, having type string + ParameterId["SelectionTextColor"] = "selectionTextColor"; + // DPI_SwatchBackgroundColor, having type string + ParameterId["SwatchBackgroundColor"] = "swatchBgColor"; + // DPI_SwatchBorderColor, having type string + ParameterId["SwatchBorderColor"] = "swatchBorderColor"; + // DPI_TabColor, having type string + ParameterId["TabColor"] = "tabColor"; + // DPI_Colors, having type string[] + ParameterId["Colors"] = "colors"; + // DPI_ColorMap, having type Dictionary(of string) + ParameterId["ColorMap"] = "colorMap"; + // DPI_Pixmap, having type string + ParameterId["Pixmap"] = "pixmap"; + // DPI_Image, having type string + ParameterId["Image"] = "image"; + // DPI_OverlayImage, having type string + ParameterId["OverlayImage"] = "overlayImage"; + // DPI_IconImage, having type string + ParameterId["IconImage"] = "iconImage"; + // DPI_ImageList, having type string[] + ParameterId["ImageList"] = "imageList"; + // DPI_ImageMap, having type Dictionary(of string) + ParameterId["ImageMap"] = "imageMap"; + // DPI_UUID, having type object + ParameterId["UUID"] = "uuid"; + // DPI_DashboardObjectHandle, having type object + ParameterId["DashboardObjectHandle"] = "dashboardObjectHandle"; + // DPI_DashboardObjectNewStateHandle, having type object + ParameterId["DashboardObjectNewStateHandle"] = "dashboardObjectNewStateHandle"; + // DPI_DashboardObjectCurrentStateHandle, having type object + ParameterId["DashboardObjectCurrentStateHandle"] = "dashboardObjectCurrentStateHandle"; + // DPI_Nanoseconds, having type object + ParameterId["Nanoseconds"] = "nanoseconds"; + // DPI_Microseconds, having type object + ParameterId["Microseconds"] = "microseconds"; + // DPI_Milliseconds, having type object + ParameterId["Milliseconds"] = "milliseconds"; + // DPI_TimeoutS, having type object + ParameterId["TimeoutS"] = "timeoutS"; + // DPI_Minutes, having type object + ParameterId["Minutes"] = "minutes"; + // DPI_Hours, having type object + ParameterId["Hours"] = "hours"; + // DPI_CardType, having type CardType + ParameterId["CardType"] = "cardType"; + // DPI_DocParameterID, having type string + ParameterId["DocParameterID"] = "type"; + // DPI_ArgumentParam, having type string + ParameterId["ArgumentParam"] = "argumentParam"; + // DPI_ArgumentParams, having type string[] + ParameterId["ArgumentParams"] = "argumentParams"; + // DPI_ActionType, having type ActionType + ParameterId["ActionType"] = "actionType"; + // DPI_AnnotateEnum, having type AnnotateEnum + ParameterId["AnnotateEnum"] = "annotateEnum"; + // DPI_JoinType, having type SQLJoinType + ParameterId["JoinType"] = "joinType"; + // DPI_SupportedJoinTypes, having type SQLJoinType[] + ParameterId["SupportedJoinTypes"] = "supportedJoinTypes"; + // DPI_Rounding, having type Rounding + ParameterId["Rounding"] = "roundingEnum"; + // DPI_BodyType, having type BodyType + ParameterId["BodyType"] = "bodyType"; + // DPI_LineEnd, having type LineEnd + ParameterId["LineEnd"] = "lineEndEnum"; + // DPI_LineEndSize, having type LineEndSize + ParameterId["LineEndSize"] = "lineEndSizeEnum"; + // DPI_BrushSpecialFields, having type BrushSpecialFields + ParameterId["BrushSpecialFields"] = "specialFields"; + // DPI_CellSizeChange, having type CellSizeChange + ParameterId["CellSizeChange"] = "cellSizeChange"; + // DPI_CellType, having type CellType + ParameterId["CellType"] = "cellType"; + // DPI_ConnectionAttemptResult, having type ConnectionAttemptResult + ParameterId["ConnectionAttemptResult"] = "connectionAttemptResult"; + // DPI_ConnectionErrorStage, having type ConnectionErrorStage + ParameterId["ConnectionErrorStage"] = "connectionErrorStage"; + // DPI_ConnectionErrorType, having type ConnectionErrorType + ParameterId["ConnectionErrorType"] = "connectionErrorType"; + // DPI_DataServerConnectionResult, having type DataServerConnectionResult + ParameterId["DataServerConnectionResult"] = "dsConnectionResult"; + // DPI_DropWhen, having type DropWhen + ParameterId["DropWhen"] = "dropWhen"; + // DPI_DropType, having type DropFieldResult + ParameterId["DropType"] = "dropType"; + // DPI_EncodingType, having type EncodingType + ParameterId["EncodingType"] = "encodingType"; + // DPI_DropdownEncodingType, having type EncodingType + ParameterId["DropdownEncodingType"] = "dropdownEncodingType"; + // DPI_EncodingTypes, having type EncodingType[] + ParameterId["EncodingTypes"] = "encodingTypes"; + // DPI_FieldOrderType, having type FieldOrderType + ParameterId["FieldOrderType"] = "fieldOrderType"; + // DPI_FilterIconType, having type FilterIconType + ParameterId["FilterIconType"] = "filterIconType"; + // DPI_FilterIconTypes, having type FilterIconType[] + ParameterId["FilterIconTypes"] = "filterIconTypes"; + // DPI_FloatingToolbarVis, having type FloatingToolbarVisibility + ParameterId["FloatingToolbarVis"] = "toolbarVisibility"; + // DPI_FolderRole, having type FolderRole + ParameterId["FolderRole"] = "folderRole"; + // DPI_LegendType, having type Enum + ParameterId["LegendType"] = "legendType"; + // DPI_ForecastModelType, having type ForecastModelType + ParameterId["ForecastModelType"] = "forecastModelType"; + // DPI_ForecastTrendType, having type ForecastComponentType + ParameterId["ForecastTrendType"] = "forecastTrendType"; + // DPI_ForecastSeasonType, having type ForecastComponentType + ParameterId["ForecastSeasonType"] = "forecastSeasonType"; + // DPI_ForecastRangeType, having type ForecastRangeType + ParameterId["ForecastRangeType"] = "forecastRangeType"; + // DPI_ForecastStatus, having type ForecastStatus + ParameterId["ForecastStatus"] = "forecastStatus"; + // DPI_SheetForecastStatus, having type ForecastStatus + ParameterId["SheetForecastStatus"] = "sheetForecastStatus"; + // DPI_PDForecastStatusList, having type ForecastStatus[] + ParameterId["PDForecastStatusList"] = "paneDescriptorForecastStatusList"; + // DPI_ForecastColumnType, having type ForecastColumnType + ParameterId["ForecastColumnType"] = "forecastColumnType"; + // DPI_DataScaling, having type DataScaling + ParameterId["DataScaling"] = "dataScaling"; + // DPI_GetFilterItemsJsonResponse, having type GetJsonResponseEnum + ParameterId["GetFilterItemsJsonResponse"] = "getFilterItemsJsonResponse"; + // DPI_FilterSearchJsonResponse, having type GetJsonResponseEnum + ParameterId["FilterSearchJsonResponse"] = "filterSearchJsonResponse"; + // DPI_FilterSearchWithIndexJsonResponse, having type GetJsonResponseEnum + ParameterId["FilterSearchWithIndexJsonResponse"] = "filterSearchWithIndexJsonResponse"; + // DPI_FilterShowChildrenJsonResponse, having type GetJsonResponseEnum + ParameterId["FilterShowChildrenJsonResponse"] = "filterShowChildrenJsonResponse"; + // DPI_HAlignment, having type LabelHAlignment + ParameterId["HAlignment"] = "horizontalLabelAlignment"; + // DPI_JoinValidationError, having type JoinValidationError + ParameterId["JoinValidationError"] = "joinValidationError"; + // DPI_NameConflictResolution, having type NameConflictResolution + ParameterId["NameConflictResolution"] = "nameConflictResolution"; + // DPI_LabelDir, having type TextOrient + ParameterId["LabelDir"] = "labelDirection"; + // DPI_LabelAlign, having type TextAlign + ParameterId["LabelAlign"] = "labelAlignment"; + // DPI_LabelWrap, having type TextWrapMode + ParameterId["LabelWrap"] = "labelWrap"; + // DPI_WrapMode, having type TextWrapMode + ParameterId["WrapMode"] = "wrapMode"; + // DPI_MarkEnum, having type MarkEnum + ParameterId["MarkEnum"] = "markEnum"; + // DPI_PercentMode, having type PercentMode + ParameterId["PercentMode"] = "percentageMode"; + // DPI_ReferenceOptionsSet, having type ReferenceOptionsSet + ParameterId["ReferenceOptionsSet"] = "referenceOptionsSet"; + // DPI_ReferenceOptionsSets, having type ReferenceOptionsSet[] + ParameterId["ReferenceOptionsSets"] = "referenceOptionsSets"; + // DPI_RankType, having type RankType + ParameterId["RankType"] = "rankType"; + // DPI_RankTypeValues, having type RankType[] + ParameterId["RankTypeValues"] = "rankTypeValues"; + // DPI_SpecialValuesMode, having type SpecialValuesMode + ParameterId["SpecialValuesMode"] = "specialValuesMode"; + // DPI_VAlignment, having type LabelVAlignment + ParameterId["VAlignment"] = "verticalLabelAlignment"; + // DPI_ColorMode, having type ColorMode + ParameterId["ColorMode"] = "colorMode"; + // DPI_MarkLabelsMode, having type MarkLabelsMode + ParameterId["MarkLabelsMode"] = "markLabelsMode"; + // DPI_MarkLabelsScope, having type MarkLabelsScope + ParameterId["MarkLabelsScope"] = "markLabelsScope"; + // DPI_MarkLabelsVisibility, having type MarkLabelsVisibility + ParameterId["MarkLabelsVisibility"] = "markLabelsVisibility"; + // DPI_PrimitiveType, having type PrimitiveType + ParameterId["PrimitiveType"] = "primitiveType"; + // DPI_ActualPrimitiveType, having type PrimitiveType + ParameterId["ActualPrimitiveType"] = "actualPrimitiveType"; + // DPI_PrimitiveTypes, having type PrimitiveType[] + ParameterId["PrimitiveTypes"] = "primitiveTypes"; + // DPI_ShapeType, having type ShapeType + ParameterId["ShapeType"] = "shapeType"; + // DPI_SortType, having type SortType + ParameterId["SortType"] = "sortBy"; + // DPI_SortEnd, having type SortEnd + ParameterId["SortEnd"] = "sortEnd"; + // DPI_StackingMode, having type StackingMode + ParameterId["StackingMode"] = "stackingMode"; + // DPI_StyleTheme, having type StyleTheme + ParameterId["StyleTheme"] = "styleTheme"; + // DPI_TrendLineFitType, having type TrendLineFitType + ParameterId["TrendLineFitType"] = "fitType"; + // DPI_UpdateScope, having type UpdateScope + ParameterId["UpdateScope"] = "updateScope"; + // DPI_ParameterCtrlDisplayMode, having type DisplayMode + ParameterId["ParameterCtrlDisplayMode"] = "paramDisplayMode"; + // DPI_ParameterCtrlDisplayFlag, having type ParameterCtrlDisplayFlag + ParameterId["ParameterCtrlDisplayFlag"] = "paramDisplayFlag"; + // DPI_Included, having type QuantitativeIncludedValues + ParameterId["Included"] = "included"; + // DPI_CommandsType, having type CommandsType + ParameterId["CommandsType"] = "commandsType"; + // DPI_ParameterDomainType, having type DomainType + ParameterId["ParameterDomainType"] = "parameterDomainType"; + // DPI_FilterDomainType, having type DomainType + ParameterId["FilterDomainType"] = "filterDomainType"; + // DPI_FilterDomains, having type DomainType[] + ParameterId["FilterDomains"] = "filterDomains"; + // DPI_CategoricalFilterType, having type CategoricalFilterType + ParameterId["CategoricalFilterType"] = "categoricalFilterType"; + // DPI_FilterPatternType, having type PatternType + ParameterId["FilterPatternType"] = "filterPatternType"; + // DPI_FilterConditionType, having type ConditionType + ParameterId["FilterConditionType"] = "filterConditionType"; + // DPI_FiltersPresetType, having type PresetType + ParameterId["FiltersPresetType"] = "filtersPresetType"; + // DPI_FiltersRangeType, having type RangeType + ParameterId["FiltersRangeType"] = "filtersRangeType"; + // DPI_DateRangeType, having type RelativeDateRangeType + ParameterId["DateRangeType"] = "dateRangeType"; + // DPI_PageFlag, having type PageNavFlags + ParameterId["PageFlag"] = "pageFlag"; + // DPI_MarksToTrail, having type MarksToTrail + ParameterId["MarksToTrail"] = "marksToTrail"; + // DPI_TrailType, having type TrailType + ParameterId["TrailType"] = "trailType"; + // DPI_ChangePageDirection, having type ChangePageType + ParameterId["ChangePageDirection"] = "changeTo"; + // DPI_AnimationControl, having type PageAnimationControl + ParameterId["AnimationControl"] = "animationControl"; + // DPI_LinePattern, having type LinePattern + ParameterId["LinePattern"] = "linePattern"; + // DPI_LineCap, having type LineCap + ParameterId["LineCap"] = "lineCap"; + // DPI_LineJoin, having type LineJoin + ParameterId["LineJoin"] = "lineJoin"; + // DPI_LineAlignment, having type LineAlignment + ParameterId["LineAlignment"] = "lineAlignment"; + // DPI_FillMode, having type FillMode + ParameterId["FillMode"] = "fillMode"; + // DPI_CursorShape, having type CursorShape + ParameterId["CursorShape"] = "cursorShape"; + // DPI_ShowMeCommandType, having type ShowMeCommandType + ParameterId["ShowMeCommandType"] = "showMeCommandType"; + // DPI_ShelfIconType, having type ShelfIconType + ParameterId["ShelfIconType"] = "shelfIconType"; + // DPI_ShelfIconTypes, having type ShelfIconType[] + ParameterId["ShelfIconTypes"] = "shelfIconTypes"; + // DPI_ItemDrawStyle, having type ItemDrawStyle + ParameterId["ItemDrawStyle"] = "itemDrawStyle"; + // DPI_ScaleMode, having type ScaleMode + ParameterId["ScaleMode"] = "pageScaleMode"; + // DPI_PageOrientationOption, having type PageOrientation + ParameterId["PageOrientationOption"] = "pageOrientationOption"; + // DPI_PageSizeOption, having type PageSizeOption + ParameterId["PageSizeOption"] = "pageSizeOption"; + // DPI_SortRegionType, having type SortRegionType + ParameterId["SortRegionType"] = "sortRegion"; + // DPI_LegendItemLayout, having type LegendItemLayout + ParameterId["LegendItemLayout"] = "legendLayout"; + // DPI_LegendItemOrder, having type LegendItemOrder + ParameterId["LegendItemOrder"] = "legendOrder"; + // DPI_VizImageRegion, having type VizImageRegion + ParameterId["VizImageRegion"] = "r"; + // DPI_LegacyMenuName, having type LegacyMenuName + ParameterId["LegacyMenuName"] = "legacyMenuName"; + // DPI_LegacyMenuState, having type LegacyMenuState + ParameterId["LegacyMenuState"] = "legacyMenuState"; + // DPI_LegacyMenuStateList, having type LegacyMenuState[] + ParameterId["LegacyMenuStateList"] = "legacyMenuStates"; + // DPI_DimensionType, having type DimensionType + ParameterId["DimensionType"] = "dimensionType"; + // DPI_LayoutType, having type LayoutType + ParameterId["LayoutType"] = "layoutType"; + // DPI_ShelfType, having type ShelfType + ParameterId["ShelfType"] = "shelfType"; + // DPI_LastSelectionShelf, having type ShelfType + ParameterId["LastSelectionShelf"] = "lastShelf"; + // DPI_SchemaViewerDataSourceType, having type SchemaViewerDataSourceType + ParameterId["SchemaViewerDataSourceType"] = "schemaDatasourceType"; + // DPI_SchemaItemType, having type SchemaItemType + ParameterId["SchemaItemType"] = "schemaItemType"; + // DPI_HSMSelectionMode, having type SelectionMode + ParameterId["HSMSelectionMode"] = "hsmSelectionMode"; + // DPI_HSMDefaultMemberType, having type DefaultMemberType + ParameterId["HSMDefaultMemberType"] = "hsmDefaultMemberType"; + // DPI_HSMNotificationType, having type NotificationType + ParameterId["HSMNotificationType"] = "hsmNotificationType"; + // DPI_HSMSelectionRequestType, having type SelectionRequestType + ParameterId["HSMSelectionRequestType"] = "hsmSelectionRequestType"; + // DPI_HSMMemberSelectRequestType, having type MemberSelectRequestType + ParameterId["HSMMemberSelectRequestType"] = "hsmMemberSelectRequestType"; + // DPI_PivotStrategy, having type FieldPivotStrategy + ParameterId["PivotStrategy"] = "pivotStrategy"; + // DPI_AliasType, having type AliasType + ParameterId["AliasType"] = "aliasType"; + // DPI_DSODimensionSortOrder, having type DataSourceOrder + ParameterId["DSODimensionSortOrder"] = "dsoDimensionSortOrder"; + // DPI_DSOMeasureSortOrder, having type DataSourceOrder + ParameterId["DSOMeasureSortOrder"] = "dsoMeasureSortOrder"; + // DPI_DSOSortOrder, having type DataSourceOrder + ParameterId["DSOSortOrder"] = "dsoSortOrder"; + // DPI_VTAggType, having type VTAggType + ParameterId["VTAggType"] = "vtAggregation"; + // DPI_FieldTypeIconSet, having type FieldTypeIconSet + ParameterId["FieldTypeIconSet"] = "fieldIconSet"; + // DPI_VisualPart, having type VisualPart + ParameterId["VisualPart"] = "visualPart"; + // DPI_DefaultMapToolEnum, having type MapToolSelection + ParameterId["DefaultMapToolEnum"] = "defaultMapToolEnum"; + // DPI_DefaultMapUnitEnum, having type MapUnitSelectionEnum + ParameterId["DefaultMapUnitEnum"] = "defaultMapUnitEnum"; + // DPI_SceneModelDetail, having type Detail + ParameterId["SceneModelDetail"] = "sceneModelDetailEnum"; + // DPI_SceneModelHitType, having type HitType + ParameterId["SceneModelHitType"] = "sceneModelHitType"; + // DPI_HitTestStyle, having type HitTestStyle + ParameterId["HitTestStyle"] = "hitTestStyle"; + // DPI_MarkState, having type MarkState + ParameterId["MarkState"] = "markState"; + // DPI_SheetType, having type SheetType + ParameterId["SheetType"] = "sheetType"; + // DPI_DragSource, having type DragDropType + ParameterId["DragSource"] = "dragSource"; + // DPI_DropTarget, having type DragDropType + ParameterId["DropTarget"] = "dropTarget"; + // DPI_ShelfDropAction, having type ShelfDropAction + ParameterId["ShelfDropAction"] = "shelfDropAction"; + // DPI_ShelfDropContext, having type ShelfDropContext + ParameterId["ShelfDropContext"] = "shelfDropContext"; + // DPI_FilterSelectionTracking, having type SelectionTracking + ParameterId["FilterSelectionTracking"] = "filterSelectionTracking"; + // DPI_FilterUpdateType, having type FilterUpdateType + ParameterId["FilterUpdateType"] = "filterUpdateType"; + // DPI_FilterUpdateQualifierType, having type FilterUpdateQualifierType + ParameterId["FilterUpdateQualifierType"] = "filterUpdateQualifierType"; + // DPI_ParameterError, having type ParameterError + ParameterId["ParameterError"] = "parameterError"; + // DPI_SelectionType, having type SelectionType + ParameterId["SelectionType"] = "selectionType"; + // DPI_SelectionUpdateType, having type SelectionUpdateType + ParameterId["SelectionUpdateType"] = "selectionUpdateType"; + // DPI_SelectOptions, having type SelectOptions + ParameterId["SelectOptions"] = "selectOptions"; + // DPI_WhitespaceSelectionBehavior, having type WhitespaceSelectionBehavior + ParameterId["WhitespaceSelectionBehavior"] = "whitespaceSelectionBehavior"; + // DPI_AxisOrientation, having type Orientation + ParameterId["AxisOrientation"] = "axisOrientation"; + // DPI_DecimalMode, having type DecimalMode + ParameterId["DecimalMode"] = "decimalMode"; + // DPI_ActivationMethod, having type ActivationMethod + ParameterId["ActivationMethod"] = "activation"; + // DPI_SourceType, having type SourceType + ParameterId["SourceType"] = "sourceType"; + // DPI_OnClear, having type OnClear + ParameterId["OnClear"] = "onClear"; + // DPI_MergeOrSplit, having type MergeOrSplit + ParameterId["MergeOrSplit"] = "mergeOrSplit"; + // DPI_FilterMode, having type FilterMode + ParameterId["FilterMode"] = "filterMode"; + // DPI_FilterType, having type FilterType + ParameterId["FilterType"] = "filterType"; + // DPI_ZoneType, having type ZoneType + ParameterId["ZoneType"] = "zoneType"; + // DPI_ZoneLayoutType, having type ZoneLayoutType + ParameterId["ZoneLayoutType"] = "zoneLayoutType"; + // DPI_QuickTableCalcType, having type QuickTableCalcCommandType + ParameterId["QuickTableCalcType"] = "quickTableCalcType"; + // DPI_TableCalcCommandType, having type TableCalcCommandType + ParameterId["TableCalcCommandType"] = "tableCalcCommandType"; + // DPI_TableCalcAddressType, having type TableCalcAddressCommandType + ParameterId["TableCalcAddressType"] = "tableCalcAddressType"; + // DPI_MarkLayoutPrimitive, having type Primitive + ParameterId["MarkLayoutPrimitive"] = "markLayoutPrimitive"; + // DPI_MarkLayoutVizType, having type VizType + ParameterId["MarkLayoutVizType"] = "markLayoutVizType"; + // DPI_MarkAlignment, having type MarkAlignment + ParameterId["MarkAlignment"] = "markAlignment"; + // DPI_ModifyZoneZOrderType, having type ModifyZoneZOrderCommandType + ParameterId["ModifyZoneZOrderType"] = "modifyZoneZOrderType"; + // DPI_TextRegionHAlign, having type TextRegionHAlign + ParameterId["TextRegionHAlign"] = "halign"; + // DPI_TextRegionVAlign, having type TextRegionVAlign + ParameterId["TextRegionVAlign"] = "valign"; + // DPI_PathElement, having type PathElement + ParameterId["PathElement"] = "pathElement"; + // DPI_PathElements, having type PathElement[] + ParameterId["PathElements"] = "pathElements"; + // DPI_RenderMode, having type RenderMode + ParameterId["RenderMode"] = "renderMode"; + // DPI_FontStyle, having type TableauFontStyle + ParameterId["FontStyle"] = "fontStyle"; + // DPI_FontWeight, having type FontWeight + ParameterId["FontWeight"] = "fontWeight"; + // DPI_TextDecoration, having type TextDecoration + ParameterId["TextDecoration"] = "textDecoration"; + // DPI_BorderStyle, having type BorderStyle + ParameterId["BorderStyle"] = "borderStyle"; + // DPI_BorderStyleTop, having type BorderStyle + ParameterId["BorderStyleTop"] = "borderStyleTop"; + // DPI_BorderStyleRight, having type BorderStyle + ParameterId["BorderStyleRight"] = "borderStyleRight"; + // DPI_BorderStyleBottom, having type BorderStyle + ParameterId["BorderStyleBottom"] = "borderStyleBottom"; + // DPI_BorderStyleLeft, having type BorderStyle + ParameterId["BorderStyleLeft"] = "borderStyleLeft"; + // DPI_FloatingToolbarVisibility, having type FloatingToolbarVisibility + ParameterId["FloatingToolbarVisibility"] = "floatingToolbarVisibility"; + // DPI_GeoSearchVisibility, having type GeoSearchVisibility + ParameterId["GeoSearchVisibility"] = "geographicSearchVisibility"; + // DPI_MapScaleVisibility, having type MapScaleVisibility + ParameterId["MapScaleVisibility"] = "mapScaleVisibility"; + // DPI_VizNavigationSetting, having type VizNavigationSetting + ParameterId["VizNavigationSetting"] = "vizNavigationSetting"; + // DPI_AutoDrillVisibility, having type AutoDrillVisibility + ParameterId["AutoDrillVisibility"] = "autoDrillVisibility"; + // DPI_ClientUIMetricType, having type ClientUIMetricType + ParameterId["ClientUIMetricType"] = "clientUiMetricType"; + // DPI_SheetScrollDirection, having type SheetScrollDirection + ParameterId["SheetScrollDirection"] = "sheetScrollDirection"; + // DPI_SizeMode, having type SizeMode + ParameterId["SizeMode"] = "sizeMode"; + // DPI_PerspectiveAggregate, having type PerspectiveAggregate + ParameterId["PerspectiveAggregate"] = "perspectiveAggregation"; + // DPI_StyleAttribute, having type StyleAttribute + ParameterId["StyleAttribute"] = "styleAttribute"; + // DPI_StyleAttributes, having type StyleAttribute[] + ParameterId["StyleAttributes"] = "styleAttributes"; + // DPI_StyleElement, having type StyleElement + ParameterId["StyleElement"] = "styleElement"; + // DPI_StyleDataClass, having type StyleDataClass + ParameterId["StyleDataClass"] = "styleClass"; + // DPI_StyleFieldScope, having type StyleFieldScope + ParameterId["StyleFieldScope"] = "styleScope"; + // DPI_FormatControlType, having type FormatControlType + ParameterId["FormatControlType"] = "formatType"; + // DPI_LineInterpolationMode, having type LineInterpolationMode + ParameterId["LineInterpolationMode"] = "lineInterpolationMode"; + // DPI_LineMarkerPosition, having type LineMarkerPosition + ParameterId["LineMarkerPosition"] = "lineMarkerPosition"; + // DPI_MarkersMode, having type MarkMarkersMode + ParameterId["MarkersMode"] = "markersMode"; + // DPI_AppConfigEnum, having type AppConfigEnum + ParameterId["AppConfigEnum"] = "appConfigEnum"; + // DPI_ColorPaletteType, having type ColorPaletteType + ParameterId["ColorPaletteType"] = "colorPaletteType"; + // DPI_ExtractType, having type ExtractType + ParameterId["ExtractType"] = "extractType"; + // DPI_ActivityDisposition, having type ActivityDisposition + ParameterId["ActivityDisposition"] = "activityDisposition"; + // DPI_ActivityResult, having type ActivityResult + ParameterId["ActivityResult"] = "activityResult"; + // DPI_TooltipMode, having type TooltipMode + ParameterId["TooltipMode"] = "tooltipMode"; + // DPI_RuntimeOutput, having type RuntimeOutput + ParameterId["RuntimeOutput"] = "runtimeOutput"; + // DPI_AnalyticsObjectType, having type AnalyticsObjectType + ParameterId["AnalyticsObjectType"] = "analyticsObjectType"; + // DPI_UIAutomationStatus, having type UIAutomationCommandStatus + ParameterId["UIAutomationStatus"] = "uiAutomationStatus"; + // DPI_TableViewDataType, having type TableViewDataType + ParameterId["TableViewDataType"] = "tableViewerDataType"; + // DPI_UnitsFormat, having type UnitsFormatEnum + ParameterId["UnitsFormat"] = "unitsFormat"; + // DPI_FilterLimitType, having type LimitType + ParameterId["FilterLimitType"] = "filterLimitType"; + // DPI_DistributionSelectedType, having type DistributionType + ParameterId["DistributionSelectedType"] = "distributionSelectedType"; + // DPI_DistributionType, having type DistributionType + ParameterId["DistributionType"] = "distributionType"; + // DPI_TranslatedDistributionType, having type TranslatedDistributionTypePresModel + ParameterId["TranslatedDistributionType"] = "translatedDistributionType"; + // DPI_TranslatedDistributionTypes, having type TranslatedDistributionTypePresModel[] + ParameterId["TranslatedDistributionTypes"] = "translatedDistributionTypes"; + // DPI_RefLineFormulaGroup, having type FormulaGroup + ParameterId["RefLineFormulaGroup"] = "reflineFormulaGroup"; + // DPI_ReferenceLineScopeType, having type ScopeType + ParameterId["ReferenceLineScopeType"] = "referenceLineScopeType"; + // DPI_StDevType, having type StDevType + ParameterId["StDevType"] = "stdevType"; + // DPI_ShowBounds, having type ShowBounds + ParameterId["ShowBounds"] = "showBounds"; + // DPI_BoxplotWhiskerType, having type BoxplotWhiskerType + ParameterId["BoxplotWhiskerType"] = "boxplotWhiskerType"; + // DPI_ReferenceLineLabelType, having type LabelType + ParameterId["ReferenceLineLabelType"] = "referenceLineLabelType"; + // DPI_PairedReferenceLineLabelType, having type LabelType + ParameterId["PairedReferenceLineLabelType"] = "pairedReferenceLineLabelType"; + // DPI_ConfidenceIntervalSelectedState, having type ConfidenceIntervalState + ParameterId["ConfidenceIntervalSelectedState"] = "confidenceIntervalSelectedState"; + // DPI_ConfidenceIntervalState, having type ConfidenceIntervalState + ParameterId["ConfidenceIntervalState"] = "confidenceIntervalState"; + // DPI_TranslatedLabelType, having type TranslatedLabelTypePresModel + ParameterId["TranslatedLabelType"] = "translatedLabelType"; + // DPI_ReferenceLineValidLabelTypes, having type TranslatedLabelTypePresModel[] + ParameterId["ReferenceLineValidLabelTypes"] = "validReferenceLineLabelTypes"; + // DPI_ReferenceLineFormulaType, having type FormulaType + ParameterId["ReferenceLineFormulaType"] = "referenceLineFormulaType"; + // DPI_PairedReferenceLineFormulaType, having type FormulaType + ParameterId["PairedReferenceLineFormulaType"] = "pairedReferenceLineFormulaType"; + // DPI_TranslatedFormulaType, having type TranslatedFormulaTypePresModel + ParameterId["TranslatedFormulaType"] = "translatedFormulaType"; + // DPI_ReferenceLineValidFormulaTypes, having type TranslatedFormulaTypePresModel[] + ParameterId["ReferenceLineValidFormulaTypes"] = "validReferenceLineFormulaTypes"; + // DPI_ReferenceLineValidPairedFormulaTypes, having type TranslatedFormulaTypePresModel[] + ParameterId["ReferenceLineValidPairedFormulaTypes"] = "validReferenceLinePairedFormulaTypes"; + // DPI_TranslatedConfidenceIntervalState, having type TranslatedConfidenceIntervalStatePresModel + ParameterId["TranslatedConfidenceIntervalState"] = "translatedConfidenceIntervalState"; + // DPI_TranslatedConfidenceIntervalStates, having type TranslatedConfidenceIntervalStatePresModel[] + ParameterId["TranslatedConfidenceIntervalStates"] = "translatedConfidenceIntervalStates"; + // DPI_TranslatedStDevType, having type TranslatedStDevTypePresModel + ParameterId["TranslatedStDevType"] = "translatedStdevType"; + // DPI_TranslatedStDevTypes, having type TranslatedStDevTypePresModel[] + ParameterId["TranslatedStDevTypes"] = "translatedStdevTypes"; + // DPI_ReferenceLineLODCalcType, having type LODCalcType + ParameterId["ReferenceLineLODCalcType"] = "referenceLineLodCalcType"; + // DPI_ValueDomainType, having type ValueDomainType + ParameterId["ValueDomainType"] = "valueDomainType"; + // DPI_ValueDomainTypes, having type ValueDomainType[] + ParameterId["ValueDomainTypes"] = "valueDomainTypes"; + // DPI_OperationType, having type OperationType + ParameterId["OperationType"] = "operationType"; + // DPI_OperationTypes, having type OperationType[] + ParameterId["OperationTypes"] = "operationTypes"; + // DPI_ConnectionTypeCategory, having type ConnectionTypeCategory + ParameterId["ConnectionTypeCategory"] = "connectionTypeCategory"; + // DPI_ConnectionTypeGroup, having type ConnectionTypeGroup + ParameterId["ConnectionTypeGroup"] = "connectionTypeGroup"; + // DPI_CommandRedirectType, having type CommandRedirectType + ParameterId["CommandRedirectType"] = "commandRedirectType"; + // DPI_CustomSplitMode, having type SplitMode + ParameterId["CustomSplitMode"] = "customSplitMode"; + // DPI_CustomSplitSeparatorType, having type SeparatorType + ParameterId["CustomSplitSeparatorType"] = "customSplitSeparatorType"; + // DPI_LevelSelectionState, having type LevelSelectionState + ParameterId["LevelSelectionState"] = "levelSelectionState"; + // DPI_LevelSelectionStates, having type LevelSelectionState[] + ParameterId["LevelSelectionStates"] = "levelSelectionStates"; + // DPI_SourceDestIcon, having type SourceDestIcon + ParameterId["SourceDestIcon"] = "sourceDestIcon"; + // DPI_LegendLayout, having type LegendLayout + ParameterId["LegendLayout"] = "pageLegendLayout"; + // DPI_ImagesEditResultCode, having type ImagesEditResultCode + ParameterId["ImagesEditResultCode"] = "imagesEditResultCode"; + // DPI_CalculationContext, having type CalculationContext + ParameterId["CalculationContext"] = "calculationContext"; + // DPI_WorkgroupPublishErrorType, having type WorkgroupPublishErrorType + ParameterId["WorkgroupPublishErrorType"] = "workgroupPublishErrorType"; + // DPI_IsParameter, having type TriBool + ParameterId["IsParameter"] = "isParameter"; + // DPI_AddressingState, having type WidgetState + ParameterId["AddressingState"] = "addressingState"; + // DPI_AllPagesState, having type WidgetState + ParameterId["AllPagesState"] = "allPagesState"; + // DPI_AtTheLevelState, having type WidgetState + ParameterId["AtTheLevelState"] = "atTheLevelState"; + // DPI_ComputeCompoundedRateState, having type WidgetState + ParameterId["ComputeCompoundedRateState"] = "computeCompoundedRateState"; + // DPI_CustomNullIfIncompleteState, having type WidgetState + ParameterId["CustomNullIfIncompleteState"] = "customNullIfIncompleteState"; + // DPI_NestedCalcsState, having type WidgetState + ParameterId["NestedCalcsState"] = "nestedCalcsState"; + // DPI_RankTypeState, having type WidgetState + ParameterId["RankTypeState"] = "rankTypeState"; + // DPI_ReferenceOptionsState, having type WidgetState + ParameterId["ReferenceOptionsState"] = "referenceOptionsState"; + // DPI_RestartEveryState, having type WidgetState + ParameterId["RestartEveryState"] = "restartEveryState"; + // DPI_SortAggState, having type WidgetState + ParameterId["SortAggState"] = "sortAggState"; + // DPI_SortState, having type WidgetState + ParameterId["SortState"] = "sortState"; + // DPI_TableCalcTypeState, having type WidgetState + ParameterId["TableCalcTypeState"] = "tableCalcTypeState"; + // DPI_TableCalcAssistanceWidgetState, having type WidgetState + ParameterId["TableCalcAssistanceWidgetState"] = "tableCalcAssistanceWidgetState"; + // DPI_CalcNestingLevel, having type CalcNestingLevel + ParameterId["CalcNestingLevel"] = "calcNestingLevel"; + // DPI_DataProviderType, having type DataProviderType + ParameterId["DataProviderType"] = "dataProviderType"; + // DPI_HeuristicCommandReinterpretation, having type HeuristicCommandReinterpretation + ParameterId["HeuristicCommandReinterpretation"] = "heuristicCommandReinterpretation"; + // DPI_ExtractRefreshStatus, having type ExtractRefreshStatus + ParameterId["ExtractRefreshStatus"] = "extractRefreshStatus"; + // DPI_RichTextEditorWidgetKey, having type RichTextEditorWidgetKey + ParameterId["RichTextEditorWidgetKey"] = "richTextEditorWidgetKey"; + // DPI_RichTextWidgetKeys, having type RichTextEditorWidgetKey[] + ParameterId["RichTextWidgetKeys"] = "richTextWidgetKeys"; + // DPI_TypeOfFormatItem, having type TypeOfFormatItem + ParameterId["TypeOfFormatItem"] = "typeOfFormatItem"; + // DPI_TypeOfFormatContainer, having type TypeOfFormatContainer + ParameterId["TypeOfFormatContainer"] = "typeOfFormatContainer"; + // DPI_TypeOfFormatControl, having type TypeOfFormatControl + ParameterId["TypeOfFormatControl"] = "typeOfFormatControl"; + // DPI_FormatWidgetKey, having type FormatWidgetKey + ParameterId["FormatWidgetKey"] = "formatWidgetKey"; + // DPI_ColorSwatchType, having type ColorSwatchType + ParameterId["ColorSwatchType"] = "formatColorSwatchType"; + // DPI_PickerType, having type PickerType + ParameterId["PickerType"] = "pickerType"; + // DPI_ExtractHistoryRefreshType, having type RefreshType + ParameterId["ExtractHistoryRefreshType"] = "extractHistoryRefreshTypeEnum"; + // DPI_AxisFoldState, having type AxisFoldState + ParameterId["AxisFoldState"] = "axisFoldState"; + // DPI_TickMarkSpacingUnits, having type TickSpacingUnits + ParameterId["TickMarkSpacingUnits"] = "tickSpacingUnits"; + // DPI_TickMarkState, having type TickMarkState + ParameterId["TickMarkState"] = "tickMarkState"; + // DPI_AxisRangeType, having type AxisRangeType + ParameterId["AxisRangeType"] = "axisRangeType"; + // DPI_ScaleType, having type ScaleType + ParameterId["ScaleType"] = "scaleType"; + // DPI_DashboardDeviceLayout, having type DashboardDeviceLayout + ParameterId["DashboardDeviceLayout"] = "dashboardDeviceLayout"; + // DPI_ActivateDeviceLayout, having type DashboardDeviceLayout + ParameterId["ActivateDeviceLayout"] = "activateDeviceLayout"; + // DPI_DashboardDeviceLayouts, having type DashboardDeviceLayout[] + ParameterId["DashboardDeviceLayouts"] = "dashboardDeviceLayouts"; + // DPI_DeviceSource, having type DeviceSource + ParameterId["DeviceSource"] = "deviceSource"; + // DPI_DashboardSizingDimension, having type DashboardSizingDimension + ParameterId["DashboardSizingDimension"] = "dashboardSizingDimension"; + // DPI_GridOverlayMode, having type GridOverlayMode + ParameterId["GridOverlayMode"] = "gridOverlayMode"; + // DPI_DashboardSizingMode, having type DashboardSizingMode + ParameterId["DashboardSizingMode"] = "dashboardSizingMode"; + // DPI_FlipboardNavType, having type FlipboardNavType + ParameterId["FlipboardNavType"] = "flipboardNavType"; + // DPI_FieldPickerDialogUseCase, having type FieldPickerDialogUseCase + ParameterId["FieldPickerDialogUseCase"] = "fieldPickerDialogUseCase"; + // DPI_StartOfWeekEnum, having type SOWValue + ParameterId["StartOfWeekEnum"] = "startOfWeekEnum"; + // DPI_StartOfFiscalYear, having type FYSValues + ParameterId["StartOfFiscalYear"] = "startOfFiscalYear"; + // DPI_TotalsInclusionValue, having type TotalsInclusion + ParameterId["TotalsInclusionValue"] = "totalsInclusionValue"; + // DPI_FormatCode, having type FormatCode + ParameterId["FormatCode"] = "formatCode"; + // DPI_FindType, having type FindType + ParameterId["FindType"] = "findType"; + // DPI_PerspectiveType, having type PerspectiveType + ParameterId["PerspectiveType"] = "perspectiveType"; + // DPI_GeometryType, having type GeometryType + ParameterId["GeometryType"] = "geometryType"; + // DPI_PaneLabelComposition, having type PaneLabelComposition + ParameterId["PaneLabelComposition"] = "paneLabelComposition"; + // DPI_WarningType, having type WarningType + ParameterId["WarningType"] = "warningType"; + // DPI_UIMode, having type WorkbookUIMode + ParameterId["UIMode"] = "uiMode"; + // DPI_MenuItemId, having type TopLevelMenuItem + ParameterId["MenuItemId"] = "menuItemId"; + // DPI_CommandReturn, having type object + ParameterId["CommandReturn"] = "commandReturn"; + // DPI_LegacyPresModel, having type object + ParameterId["LegacyPresModel"] = "legacyPresModel"; + // DPI_PresentationModel, having type object + ParameterId["PresentationModel"] = "presModelHolder"; + // DPI_Event, having type object + ParameterId["Event"] = "eventContainer"; + // DPI_LineStyle, having type Array + ParameterId["LineStyle"] = "lineStyle"; + // DPI_StrokeStyle, having type Array + ParameterId["StrokeStyle"] = "strokeStyle"; + // DPI_Schema, having type Array + ParameterId["Schema"] = "schema"; + // DPI_StartTuple, having type Array + ParameterId["StartTuple"] = "startTuple"; + // DPI_EndTuple, having type Array + ParameterId["EndTuple"] = "endTuple"; + // DPI_Tuple, having type Array + ParameterId["Tuple"] = "tuple"; + // DPI_Tuples, having type Array[] + ParameterId["Tuples"] = "tuples"; + // DPI_CustomDomainTuples, having type Array[] + ParameterId["CustomDomainTuples"] = "customDomainTuples"; + // DPI_UpdatedTuples, having type Array[] + ParameterId["UpdatedTuples"] = "updatedTuples"; + // DPI_Table, having type Array + ParameterId["Table"] = "table"; + // DPI_AliasedValue, having type Array + ParameterId["AliasedValue"] = "valueAlias"; + // DPI_FirstAliasedValue, having type Array + ParameterId["FirstAliasedValue"] = "firstAlisedValue"; + // DPI_MaximumRange, having type Array + ParameterId["MaximumRange"] = "maximumRangeValue"; + // DPI_MinimumRange, having type Array + ParameterId["MinimumRange"] = "minimumRangeValue"; + // DPI_SecondAliasedValue, having type Array + ParameterId["SecondAliasedValue"] = "secondAlisedValue"; + // DPI_AliasedSelectionList, having type Array[] + ParameterId["AliasedSelectionList"] = "aliasedSelectionList"; + // DPI_AliasedValues, having type Array[] + ParameterId["AliasedValues"] = "valuesAliases"; + // DPI_VerboseAliasedRangeMax, having type Array + ParameterId["VerboseAliasedRangeMax"] = "verboseAliasedRangeMax"; + // DPI_VerboseAliasedValue, having type Array + ParameterId["VerboseAliasedValue"] = "verboseAliasedValue"; + // DPI_MultiBucket, having type MultiBucket + ParameterId["MultiBucket"] = "xValues"; + // DPI_PageName, having type PageName + ParameterId["PageName"] = "pageName"; + // DPI_Selector, having type object + ParameterId["Selector"] = "selector"; + // DPI_PaneId, having type object + ParameterId["PaneId"] = "paneId"; + // DPI_PaneIds, having type PaneId[] + ParameterId["PaneIds"] = "paneIds"; + // DPI_ImageRegionInfo, having type object + ParameterId["ImageRegionInfo"] = "vizRegionRect"; + // DPI_ImageRegionInfoList, having type object[] + ParameterId["ImageRegionInfoList"] = "vizRegionRectList"; + // DPI_VisualID, having type VisualID + ParameterId["VisualID"] = "visualId"; + // DPI_VisualIDPM, having type VisualIDPresModel + ParameterId["VisualIDPM"] = "visualIdPresModel"; + // DPI_InvalidSheets, having type VisualIDPresModel[] + ParameterId["InvalidSheets"] = "invalidSheets"; + // DPI_VisualIDPMs, having type VisualIDPresModel[] + ParameterId["VisualIDPMs"] = "visualIds"; + // DPI_SheetPathPM, having type SheetPathPresModel + ParameterId["SheetPathPM"] = "sheetPath"; + // DPI_CapturedSheetPM, having type SheetPathPresModel + ParameterId["CapturedSheetPM"] = "capturedSheetPm"; + // DPI_CurrentSheetPM, having type SheetPathPresModel + ParameterId["CurrentSheetPM"] = "currentSheetPm"; + // DPI_DashboardPM, having type SheetPathPresModel + ParameterId["DashboardPM"] = "dashboardPm"; + // DPI_NewSheetPM, having type SheetPathPresModel + ParameterId["NewSheetPM"] = "newSheetPm"; + // DPI_SheetNamePM, having type SheetPathPresModel + ParameterId["SheetNamePM"] = "sheetNamePm"; + // DPI_SheetPM, having type SheetPathPresModel + ParameterId["SheetPM"] = "sheetPm"; + // DPI_SourceDashboardPM, having type SheetPathPresModel + ParameterId["SourceDashboardPM"] = "sourceDashboardPm"; + // DPI_SourceSheetPM, having type SheetPathPresModel + ParameterId["SourceSheetPM"] = "sourceSheetPm"; + // DPI_TargetSheetPM, having type SheetPathPresModel + ParameterId["TargetSheetPM"] = "targetSheetPm"; + // DPI_WorksheetPM, having type SheetPathPresModel + ParameterId["WorksheetPM"] = "worksheetPm"; + // DPI_ModifiedSheets, having type SheetPathPresModel[] + ParameterId["ModifiedSheets"] = "modifiedSheets"; + // DPI_DataColumn, having type DataColumnPresModel + ParameterId["DataColumn"] = "dataColumn"; + // DPI_DataColumns, having type DataColumnPresModel[] + ParameterId["DataColumns"] = "dataColumns"; + // DPI_Addresses, having type DataColumnPresModel[] + ParameterId["Addresses"] = "addresses"; + // DPI_EncodingColumns, having type Dictionary(of DataColumnPresModel) + ParameterId["EncodingColumns"] = "encodingColumns"; + // DPI_TextRunColumns, having type Dictionary(of DataColumnPresModel) + ParameterId["TextRunColumns"] = "textRunColumns"; + // DPI_TextStyleColumns, having type Dictionary(of DataColumnPresModel) + ParameterId["TextStyleColumns"] = "textStyleColumns"; + // DPI_NamedDataColumn, having type NamedDataColumnPresModel + ParameterId["NamedDataColumn"] = "namedDataColumn"; + // DPI_NamedDataColumns, having type NamedDataColumnPresModel[] + ParameterId["NamedDataColumns"] = "namedDataColumns"; + // DPI_DataTable, having type DataTablePresModel + ParameterId["DataTable"] = "dataTable"; + // DPI_ActionSpecification, having type None + ParameterId["ActionSpecification"] = "actionSpec"; + // DPI_Column, having type Column + ParameterId["Column"] = "columnContext"; + // DPI_SetFunction, having type SetFunction + ParameterId["SetFunction"] = "setFunction"; + // DPI_SetFunctions, having type SetFunctions + ParameterId["SetFunctions"] = "setFunctions"; + // DPI_VisualProfileShowMe, having type VisualProfileShowMe + ParameterId["VisualProfileShowMe"] = "vpsm"; + // DPI_DataSourcePtr, having type DataSource + ParameterId["DataSourcePtr"] = "datasourcePtr"; + // DPI_WorkgroupConnection, having type WorkgroupConnection + ParameterId["WorkgroupConnection"] = "workgroupConnection"; + // DPI_Authenticator, having type AuthenticatorRawPtr + ParameterId["Authenticator"] = "authenticator"; + // DPI_UpgradeAttr, having type UpgradeAttr + ParameterId["UpgradeAttr"] = "upgradeAttr"; + // DPI_ExtractAttr, having type ExtractAttr + ParameterId["ExtractAttr"] = "extractAttr"; + // DPI_RefreshAttr, having type RefreshAttr + ParameterId["RefreshAttr"] = "refreshAttr"; + // DPI_ContextSpecification, having type ContextSpecification + ParameterId["ContextSpecification"] = "contextSpecification"; + // DPI_SchemaViewerSelector, having type SchemaViewerSelectorPtr + ParameterId["SchemaViewerSelector"] = "schemaViewerSelector"; + // DPI_Buckets, having type Buckets + ParameterId["Buckets"] = "buckets"; + // DPI_LegendItems, having type MultiBuckets + ParameterId["LegendItems"] = "legendItems"; + // DPI_LegendItem, having type MultiBucket + ParameterId["LegendItem"] = "legendItem"; + // DPI_SourceItem, having type MultiBucket + ParameterId["SourceItem"] = "sourceItem"; + // DPI_DestItem, having type MultiBucket + ParameterId["DestItem"] = "destItem"; + // DPI_IQuickSortState, having type IQuickSortState + ParameterId["IQuickSortState"] = "quickSortState"; + // DPI_AppBuildDate, having type DateTime + ParameterId["AppBuildDate"] = "appBuildDate"; + // DPI_ForecastDateRangeEnd, having type DateTime + ParameterId["ForecastDateRangeEnd"] = "forecastDateRangeEnd"; + // DPI_ForecastDateRangeStart, having type DateTime + ParameterId["ForecastDateRangeStart"] = "forecastDateRangeStart"; + // DPI_LastModified, having type DateTime + ParameterId["LastModified"] = "lastModified"; + // DPI_SearchDomainPtr, having type MultiDomain + ParameterId["SearchDomainPtr"] = "searchDomainPtr"; + // DPI_ResultsDomainPtr, having type MultiDomain + ParameterId["ResultsDomainPtr"] = "resultsDomainPtr"; + // DPI_Actions, having type object + ParameterId["Actions"] = "actions"; + // DPI_SRCommands, having type object + ParameterId["SRCommands"] = "selectionRelaxationCommands"; + // DPI_Commands, having type object + ParameterId["Commands"] = "commands"; + // DPI_DataTypeCommands, having type object + ParameterId["DataTypeCommands"] = "datatypeCommands"; + // DPI_MultiSelectCommands, having type object + ParameterId["MultiSelectCommands"] = "multiselectCommands"; + // DPI_NonVizCommands, having type object + ParameterId["NonVizCommands"] = "nonVizCommands"; + // DPI_QuickFilterCommands, having type object + ParameterId["QuickFilterCommands"] = "quickFilterCommands"; + // DPI_ShowMeCommands, having type object + ParameterId["ShowMeCommands"] = "showMeCommands"; + // DPI_SortIndicatorMenu, having type object + ParameterId["SortIndicatorMenu"] = "sortIndicatorMenu"; + // DPI_StandardCommands, having type object + ParameterId["StandardCommands"] = "standardCommands"; + // DPI_VizCommands, having type object + ParameterId["VizCommands"] = "vizCommands"; + // DPI_ZoneChromeCommands, having type object + ParameterId["ZoneChromeCommands"] = "zoneChromeCommands"; + // DPI_CommandItem, having type CommandsItem + ParameterId["CommandItem"] = "commandItem"; + // DPI_CommandItems, having type CommandsItem[] + ParameterId["CommandItems"] = "commandItems"; + // DPI_Command, having type SimpleCommandsPresModel + ParameterId["Command"] = "simpleCommandModel"; + // DPI_AddCommand, having type SimpleCommandsPresModel + ParameterId["AddCommand"] = "addSimpleCommandModel"; + // DPI_RemoveCommand, having type SimpleCommandsPresModel + ParameterId["RemoveCommand"] = "removeSimpleCommandModel"; + // DPI_AcceptCommand, having type SimpleCommandsPresModel + ParameterId["AcceptCommand"] = "acceptSimpleCommandModel"; + // DPI_DeclineCommand, having type SimpleCommandsPresModel + ParameterId["DeclineCommand"] = "declineSimpleCommandModel"; + // DPI_DropCommand, having type SimpleCommandsPresModel + ParameterId["DropCommand"] = "dropCommandModel"; + // DPI_EditCaptionCommand, having type SimpleCommandsPresModel + ParameterId["EditCaptionCommand"] = "editCaptionCommandModel"; + // DPI_FontCommand, having type SimpleCommandsPresModel + ParameterId["FontCommand"] = "fontCommandModel"; + // DPI_LineStyleCommand, having type SimpleCommandsPresModel + ParameterId["LineStyleCommand"] = "lineStyleCommandModel"; + // DPI_FormatCommand, having type SimpleCommandsPresModel + ParameterId["FormatCommand"] = "formatCommandModel"; + // DPI_DestructorCommand, having type SimpleCommandsPresModel + ParameterId["DestructorCommand"] = "destructorCommand"; + // DPI_ClearFormatCommand, having type SimpleCommandsPresModel + ParameterId["ClearFormatCommand"] = "clearFormatCommandModel"; + // DPI_RichTextCommand, having type SimpleCommandsPresModel + ParameterId["RichTextCommand"] = "richTextCommandModel"; + // DPI_SortIndicatorCommand, having type SimpleCommandsPresModel + ParameterId["SortIndicatorCommand"] = "sortIndicatorCommand"; + // DPI_ReleaseStoreCommand, having type SimpleCommandsPresModel + ParameterId["ReleaseStoreCommand"] = "releaseStoreCommand"; + // DPI_ConfirmationCommand, having type SimpleCommandsPresModel + ParameterId["ConfirmationCommand"] = "confirmationCommand"; + // DPI_CommandList, having type SimpleCommandsPresModel[] + ParameterId["CommandList"] = "commandList"; + // DPI_ParameterCtrl, having type ParameterCtrlPresModel + ParameterId["ParameterCtrl"] = "parameterControl"; + // DPI_ParameterCtrls, having type ParameterCtrlPresModel[] + ParameterId["ParameterCtrls"] = "parameterControls"; + // DPI_PageModel, having type PagePresModel + ParameterId["PageModel"] = "pageModel"; + // DPI_PageTrailOptions, having type PageTrailOptionsPresModel + ParameterId["PageTrailOptions"] = "pageTrailOptions"; + // DPI_Field, having type FieldPresModel + ParameterId["Field"] = "field"; + // DPI_FieldList, having type FieldPresModel[] + ParameterId["FieldList"] = "fieldList"; + // DPI_DimensionsFieldList, having type FieldPresModel[] + ParameterId["DimensionsFieldList"] = "dimensionsFieldList"; + // DPI_MeasuresFieldList, having type FieldPresModel[] + ParameterId["MeasuresFieldList"] = "measuresFieldList"; + // DPI_SetsFieldList, having type FieldPresModel[] + ParameterId["SetsFieldList"] = "setsFieldList"; + // DPI_ParametersFieldList, having type FieldPresModel[] + ParameterId["ParametersFieldList"] = "parametersFieldList"; + // DPI_FieldColumn, having type FieldColumnPresModel + ParameterId["FieldColumn"] = "column"; + // DPI_FieldColumnList, having type FieldColumnPresModel[] + ParameterId["FieldColumnList"] = "columnList"; + // DPI_StructuredMeasure, having type StructuredMeasurePresModel + ParameterId["StructuredMeasure"] = "structuredMeasure"; + // DPI_StructuredMeasureList, having type StructuredMeasurePresModel[] + ParameterId["StructuredMeasureList"] = "structuredMeasureList"; + // DPI_Level, having type LevelPresModel + ParameterId["Level"] = "level"; + // DPI_Parameter, having type ParameterPresModel + ParameterId["Parameter"] = "parameter"; + // DPI_BaseDimension, having type BaseDimensionPresModel + ParameterId["BaseDimension"] = "baseDimension"; + // DPI_Dimension, having type DimensionPresModel + ParameterId["Dimension"] = "dimension"; + // DPI_AttributeDimensionList, having type DimensionPresModel[] + ParameterId["AttributeDimensionList"] = "attributeDimensionList"; + // DPI_AttributeDimension, having type AttributeDimensionPresModel + ParameterId["AttributeDimension"] = "attributeDimension"; + // DPI_AttributeAttributeDimensionList, having type AttributeDimensionPresModel[] + ParameterId["AttributeAttributeDimensionList"] = "attributeAttributeDimensionList"; + // DPI_StandardDimension, having type StandardDimensionPresModel + ParameterId["StandardDimension"] = "standardDimension"; + // DPI_RelationalTable, having type RelationalTablePresModel + ParameterId["RelationalTable"] = "relationalTable"; + // DPI_DrillPath, having type DrillPathPresModel + ParameterId["DrillPath"] = "drillPath"; + // DPI_FieldFolder, having type FieldFolderPresModel + ParameterId["FieldFolder"] = "fieldFolder"; + // DPI_Group, having type GroupPresModel + ParameterId["Group"] = "group"; + // DPI_UserDefinedAttributeList, having type GroupPresModel[] + ParameterId["UserDefinedAttributeList"] = "userDefinedAttributeList"; + // DPI_Hierarchy, having type HierarchyPresModel + ParameterId["Hierarchy"] = "hierarchy"; + // DPI_HierarchyList, having type HierarchyPresModel[] + ParameterId["HierarchyList"] = "hierarchyList"; + // DPI_HierarchyMemberSelectedState, having type HierarchySelect_MemberSelectedStatePresModel + ParameterId["HierarchyMemberSelectedState"] = "hierarchyMemberSelectedState"; + // DPI_HierarchySelectionChanges, having type HierarchySelect_MemberSelectedStatePresModel[] + ParameterId["HierarchySelectionChanges"] = "hierarchySelectionChanges"; + // DPI_DisplayFolder, having type DisplayFolderPresModel + ParameterId["DisplayFolder"] = "displayFolder"; + // DPI_DisplayFolderList, having type DisplayFolderPresModel[] + ParameterId["DisplayFolderList"] = "displayFolderList"; + // DPI_DataSourceLayout, having type DataSourceLayoutPresModel + ParameterId["DataSourceLayout"] = "dataSourceLayout"; + // DPI_BaseDataSource, having type BaseDataSourcePresModel + ParameterId["BaseDataSource"] = "baseDataSource"; + // DPI_BaseDataSources, having type Dictionary(of BaseDataSourcePresModel) + ParameterId["BaseDataSources"] = "baseDataSources"; + // DPI_DataSource, having type DataSourcePresModel + ParameterId["DataSource"] = "dataSource"; + // DPI_DataSources, having type Dictionary(of DataSourcePresModel) + ParameterId["DataSources"] = "dataSources"; + // DPI_SchemaViewerDataSource, having type SchemaViewerDataSourcePresModel + ParameterId["SchemaViewerDataSource"] = "schemaViewerDataSource"; + // DPI_SchemaViewerDataSources, having type Dictionary(of SchemaViewerDataSourcePresModel) + ParameterId["SchemaViewerDataSources"] = "schemaViewerDataSources"; + // DPI_BaseDataSchema, having type BaseDataSchemaPresModel + ParameterId["BaseDataSchema"] = "baseDataSchema"; + // DPI_DataSchema, having type DataSchemaPresModel + ParameterId["DataSchema"] = "dataSchema"; + // DPI_SchemaViewerDataSchema, having type SchemaViewerDataSchemaPresModel + ParameterId["SchemaViewerDataSchema"] = "schemaViewerDataSchema"; + // DPI_SheetListItem, having type SheetListItemPresModel + ParameterId["SheetListItem"] = "sheetListItem"; + // DPI_SheetListItems, having type SheetListItemPresModel[] + ParameterId["SheetListItems"] = "sheetListItems"; + // DPI_SheetList, having type SheetListPresModel + ParameterId["SheetList"] = "sheetList"; + // DPI_SizeModeOption, having type SizeModeOptionPresModel + ParameterId["SizeModeOption"] = "sizeModeOption"; + // DPI_SizeModeOptions, having type SizeModeOptionPresModel[] + ParameterId["SizeModeOptions"] = "sizeModeOptions"; + // DPI_DashboardSizeControl, having type DashboardSizeControlPresModel + ParameterId["DashboardSizeControl"] = "dashboardSizeControl"; + // DPI_DeviceLayoutInfoItem, having type DeviceLayoutInfoItemPresModel + ParameterId["DeviceLayoutInfoItem"] = "deviceLayoutInfoItem"; + // DPI_DeviceLayoutInfoItems, having type DeviceLayoutInfoItemPresModel[] + ParameterId["DeviceLayoutInfoItems"] = "deviceLayoutInfoItems"; + // DPI_DeviceLayoutInfoList, having type DeviceLayoutInfoListPresModel + ParameterId["DeviceLayoutInfoList"] = "deviceLayoutInfoList"; + // DPI_SpecializedDeviceLayoutItem, having type SpecializedDeviceLayoutItemPresModel + ParameterId["SpecializedDeviceLayoutItem"] = "specializedDeviceLayoutItem"; + // DPI_SpecializedDeviceLayoutItems, having type SpecializedDeviceLayoutItemPresModel[] + ParameterId["SpecializedDeviceLayoutItems"] = "specializedDeviceLayoutItems"; + // DPI_SpecializedDeviceLayoutList, having type SpecializedDeviceLayoutListPresModel + ParameterId["SpecializedDeviceLayoutList"] = "specializedDeviceLayoutList"; + // DPI_SizeItem, having type SizeItemPresModel + ParameterId["SizeItem"] = "sizeItem"; + // DPI_SizeItems, having type SizeItemPresModel[] + ParameterId["SizeItems"] = "sizeItems"; + // DPI_DeviceSizesList, having type SizeItemListPresModel + ParameterId["DeviceSizesList"] = "deviceSizesList"; + // DPI_PresetSizesList, having type SizeItemListPresModel + ParameterId["PresetSizesList"] = "presetSizesList"; + // DPI_SizeItemList, having type SizeItemListPresModel + ParameterId["SizeItemList"] = "sizeItemList"; + // DPI_SubstitutionKeyword, having type SubstitutionKeywordPresModel + ParameterId["SubstitutionKeyword"] = "substitutionKeyword"; + // DPI_SubstitutionKeywords, having type SubstitutionKeywordPresModel[] + ParameterId["SubstitutionKeywords"] = "substitutionKeywords"; + // DPI_SubstitutionKeywordSubList, having type SubstitutionKeywordSubListPresModel + ParameterId["SubstitutionKeywordSubList"] = "substitutionKeywordsSublist"; + // DPI_SubstitutionKeywordSubLists, having type SubstitutionKeywordSubListPresModel[] + ParameterId["SubstitutionKeywordSubLists"] = "substitutionKeywordSublists"; + // DPI_SubstitutionKeywordList, having type SubstitutionKeywordListPresModel + ParameterId["SubstitutionKeywordList"] = "substitutionKeywordsList"; + // DPI_DeviceZoneListItem, having type DeviceZoneListItemPresModel + ParameterId["DeviceZoneListItem"] = "deviceZoneListItem"; + // DPI_DeviceZoneListItems, having type DeviceZoneListItemPresModel[] + ParameterId["DeviceZoneListItems"] = "deviceZoneListItems"; + // DPI_DeviceZoneList, having type DeviceZoneListPresModel + ParameterId["DeviceZoneList"] = "deviceZoneList"; + // DPI_ZoneSnapLineListItem, having type ZoneSnapLineListItemPresModel + ParameterId["ZoneSnapLineListItem"] = "snapLineListItem"; + // DPI_OuterHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["OuterHorizontalSnapLines"] = "outerHorizontalSnapLines"; + // DPI_OuterVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["OuterVerticalSnapLines"] = "outerVerticalSnapLines"; + // DPI_InnerHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["InnerHorizontalSnapLines"] = "innerHorizontalSnapLines"; + // DPI_InnerVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["InnerVerticalSnapLines"] = "innerVerticalSnapLines"; + // DPI_ZoneSnapLineList, having type ZoneSnapLineListPresModel + ParameterId["ZoneSnapLineList"] = "snapLineList"; + // DPI_DashboardZoneHierarchy, having type DashboardZoneHierarchyPresModel + ParameterId["DashboardZoneHierarchy"] = "dashboardZoneHierarchy"; + // DPI_DeviceZoneVisibilityListItem, having type DeviceZoneVisibilityListItemPresModel + ParameterId["DeviceZoneVisibilityListItem"] = "deviceZoneVisibilityListItem"; + // DPI_DeviceZoneVisibilityListItems, having type DeviceZoneVisibilityListItemPresModel[] + ParameterId["DeviceZoneVisibilityListItems"] = "deviceZoneVisibilityListItems"; + // DPI_DeviceZoneVisibilityList, having type DeviceZoneVisibilityListPresModel + ParameterId["DeviceZoneVisibilityList"] = "deviceZoneVisibilityList"; + // DPI_WorksheetDataSchema, having type WorksheetDataSchemaPresModel + ParameterId["WorksheetDataSchema"] = "worksheetDataSchema"; + // DPI_WorksheetDataSchemaMap, having type Dictionary(of WorksheetDataSchemaPresModel) + ParameterId["WorksheetDataSchemaMap"] = "worksheetDataSchemaMap"; + // DPI_Shelf, having type ShelfPresModel + ParameterId["Shelf"] = "shelf"; + // DPI_ShelfDetail, having type ShelfPresModel + ParameterId["ShelfDetail"] = "shelfDetail"; + // DPI_ShelfList, having type ShelfPresModel[] + ParameterId["ShelfList"] = "shelfList"; + // DPI_ShelfItem, having type ShelfItemPresModel + ParameterId["ShelfItem"] = "shelfItem"; + // DPI_ShelfItems, having type ShelfItemPresModel[] + ParameterId["ShelfItems"] = "shelfItems"; + // DPI_Shelves, having type ShelvesPresModel + ParameterId["Shelves"] = "shelves"; + // DPI_FieldEncoding, having type FieldEncodingPresModel + ParameterId["FieldEncoding"] = "fieldEncoding"; + // DPI_FieldEncodings, having type FieldEncodingPresModel[] + ParameterId["FieldEncodings"] = "fieldEncodings"; + // DPI_UberTip, having type UberTipPresModel + ParameterId["UberTip"] = "uberTip"; + // DPI_AnalyticsObjectDragInfo, having type AnalyticsObjectDragInfoPresModel + ParameterId["AnalyticsObjectDragInfo"] = "analyticsObjectDragInfo"; + // DPI_TrendLine, having type TrendLinePresModel + ParameterId["TrendLine"] = "trendLine"; + // DPI_TrendLineDialog, having type TrendLineDialogPresModel + ParameterId["TrendLineDialog"] = "trendLineDialog"; + // DPI_TrendLineDescribePresModel, having type TrendLineDescribePresModel + ParameterId["TrendLineDescribePresModel"] = "trendLineDescribePresModel"; + // DPI_TrendLineAOVModelPresModel, having type TrendLineAOVModelPresModel + ParameterId["TrendLineAOVModelPresModel"] = "trendLineAovModelPresModel"; + // DPI_TrendLineAOVModelsPresModel, having type TrendLineAOVModelPresModel[] + ParameterId["TrendLineAOVModelsPresModel"] = "trendModelDescriptionVector"; + // DPI_TrendLineLineCoefficientPresModel, having type TrendLineLineCoefficientPresModel + ParameterId["TrendLineLineCoefficientPresModel"] = "trendLineLineCoefficient"; + // DPI_TrendLineLineCoefficientsPresModel, having type TrendLineLineCoefficientPresModel[] + ParameterId["TrendLineLineCoefficientsPresModel"] = "trendLineLineCoefficientsPresModel"; + // DPI_TrendLineLinesPresModel, having type TrendLineLinesPresModel + ParameterId["TrendLineLinesPresModel"] = "trendLineLinesPresModel"; + // DPI_TrendLineAOVPresModel, having type TrendLineAOVPresModel + ParameterId["TrendLineAOVPresModel"] = "trendLineAnovaPresModel"; + // DPI_ReferenceLine, having type ReferenceLinePresModel + ParameterId["ReferenceLine"] = "referenceLine"; + // DPI_ReferenceLines, having type ReferenceLinePresModel[] + ParameterId["ReferenceLines"] = "referenceLines"; + // DPI_PercentileEditDataValue, having type EditDataValuePresModel + ParameterId["PercentileEditDataValue"] = "percentileEditDataValue"; + // DPI_LimitEditDataValue, having type EditDataValuePresModel + ParameterId["LimitEditDataValue"] = "limitEditDataValue"; + // DPI_ConfidenceLevelCombo, having type EditValueWidgetPresModel + ParameterId["ConfidenceLevelCombo"] = "confidenceLevelCombo"; + // DPI_DistributionQuantilesCombo, having type EditValueWidgetPresModel + ParameterId["DistributionQuantilesCombo"] = "distributionQuantilesLevelCombo"; + // DPI_PercentilesCombo, having type EditValueWidgetPresModel + ParameterId["PercentilesCombo"] = "distributionPercentilesLevelCombo"; + // DPI_NumericBinSizeCombo, having type EditValueWidgetPresModel + ParameterId["NumericBinSizeCombo"] = "numericBinSizeCombo"; + // DPI_FieldPickerField, having type FieldPickerFieldPresModel + ParameterId["FieldPickerField"] = "fieldPickerField"; + // DPI_FieldPickerFields, having type FieldPickerFieldPresModel[] + ParameterId["FieldPickerFields"] = "fieldPickerFields"; + // DPI_FieldPickerCombo, having type FieldPickerComboPresModel + ParameterId["FieldPickerCombo"] = "fieldPickerCombo"; + // DPI_PairedFieldPickerCombo, having type FieldPickerComboPresModel + ParameterId["PairedFieldPickerCombo"] = "pairedFieldPickerCombo"; + // DPI_ReferenceLineEditorPresModel, having type ReferenceLineEditorPresModel + ParameterId["ReferenceLineEditorPresModel"] = "referenceLineEditor"; + // DPI_CloseDataSourceErrorDialogPresModel, having type CloseDataSourceErrorDialogPresModel + ParameterId["CloseDataSourceErrorDialogPresModel"] = "closeDsErrorDialog"; + // DPI_EditReferenceLine, having type EditReferenceLinePresModel + ParameterId["EditReferenceLine"] = "editReferenceLine"; + // DPI_EditReferenceBand, having type EditReferenceBandPresModel + ParameterId["EditReferenceBand"] = "editReferenceBand"; + // DPI_EditDistribution, having type EditDistributionPresModel + ParameterId["EditDistribution"] = "editDistribution"; + // DPI_DistributionPercentages, having type DistributionPercentagesPresModel + ParameterId["DistributionPercentages"] = "distributionPercentages"; + // DPI_DistributionPercentiles, having type DistributionPercentilesPresModel + ParameterId["DistributionPercentiles"] = "distributionPercentiles"; + // DPI_DistributionQuantiles, having type DistributionQuantilesPresModel + ParameterId["DistributionQuantiles"] = "distributionQuantiles"; + // DPI_DistributionStandardDeviation, having type DistributionStandardDeviationPresModel + ParameterId["DistributionStandardDeviation"] = "distributionStddev"; + // DPI_SortIndicators, having type SortIndicatorsPresModel + ParameterId["SortIndicators"] = "sortIndicators"; + // DPI_SortIndicatorRegion, having type SortIndicatorRegionPresModel + ParameterId["SortIndicatorRegion"] = "sortIndicatorRegion"; + // DPI_SortIndicatorRegions, having type SortIndicatorRegionPresModel[] + ParameterId["SortIndicatorRegions"] = "sortIndicatorRegions"; + // DPI_SortIndicatorItem, having type SortIndicatorItemPresModel + ParameterId["SortIndicatorItem"] = "sortIndicatorItem"; + // DPI_SortIndicatorItems, having type SortIndicatorItemPresModel[] + ParameterId["SortIndicatorItems"] = "sortIndicatorItems"; + // DPI_BuilderConfig, having type BuilderConfigPresModel + ParameterId["BuilderConfig"] = "builderConfig"; + // DPI_SheetLayoutInfo, having type SheetLayoutInfoPresModel + ParameterId["SheetLayoutInfo"] = "sheetLayoutInfo"; + // DPI_AreaRect, having type RectanglePresModel + ParameterId["AreaRect"] = "areaRect"; + // DPI_Border, having type RectanglePresModel + ParameterId["Border"] = "borderRect"; + // DPI_BoundsRect, having type RectanglePresModel + ParameterId["BoundsRect"] = "boundsRect"; + // DPI_ButtonRect, having type RectanglePresModel + ParameterId["ButtonRect"] = "buttonRect"; + // DPI_DragRect, having type RectanglePresModel + ParameterId["DragRect"] = "dragRect"; + // DPI_FocusRect, having type RectanglePresModel + ParameterId["FocusRect"] = "focusRect"; + // DPI_ImageTileRect, having type RectanglePresModel + ParameterId["ImageTileRect"] = "tileRect"; + // DPI_ItemRect, having type RectanglePresModel + ParameterId["ItemRect"] = "itemRect"; + // DPI_LabelRect, having type RectanglePresModel + ParameterId["LabelRect"] = "labelRect"; + // DPI_MarkRect, having type RectanglePresModel + ParameterId["MarkRect"] = "markRect"; + // DPI_MarkTooltipRect, having type RectanglePresModel + ParameterId["MarkTooltipRect"] = "markTooltipRect"; + // DPI_MenuButtonRect, having type RectanglePresModel + ParameterId["MenuButtonRect"] = "menuButtonRect"; + // DPI_OutRegionRect, having type RectanglePresModel + ParameterId["OutRegionRect"] = "outRegionRect"; + // DPI_PaneRect, having type RectanglePresModel + ParameterId["PaneRect"] = "paneRect"; + // DPI_PixelExtents, having type RectanglePresModel + ParameterId["PixelExtents"] = "pixelExtents"; + // DPI_RectMaxLabel, having type RectanglePresModel + ParameterId["RectMaxLabel"] = "rectMaxLabel"; + // DPI_RectMinLabel, having type RectanglePresModel + ParameterId["RectMinLabel"] = "rectMinLabel"; + // DPI_RectRamp, having type RectanglePresModel + ParameterId["RectRamp"] = "rectRamp"; + // DPI_RectTitle, having type RectanglePresModel + ParameterId["RectTitle"] = "rectTitle"; + // DPI_RegionRect, having type RectanglePresModel + ParameterId["RegionRect"] = "regionRect"; + // DPI_SelectionRect, having type RectanglePresModel + ParameterId["SelectionRect"] = "selectionRect"; + // DPI_UnusedRect, having type RectanglePresModel + ParameterId["UnusedRect"] = "unusedRect"; + // DPI_ZoneEdgeRect, having type RectanglePresModel + ParameterId["ZoneEdgeRect"] = "zoneEdge"; + // DPI_ZoneEdgeRectPix, having type RectanglePresModel + ParameterId["ZoneEdgeRectPix"] = "zoneEdgePix"; + // DPI_ZoneEdgeRectPp, having type RectanglePresModel + ParameterId["ZoneEdgeRectPp"] = "zoneEdgePp"; + // DPI_UIAutomationLinkRect, having type RectanglePresModel + ParameterId["UIAutomationLinkRect"] = "linkRect"; + // DPI_Borders, having type RectanglePresModel[] + ParameterId["Borders"] = "borderRects"; + // DPI_UIAutomationLinkRects, having type RectanglePresModel[] + ParameterId["UIAutomationLinkRects"] = "linkRects"; + // DPI_DomainExtents, having type DoubleRectanglePresModel + ParameterId["DomainExtents"] = "domainExtents"; + // DPI_MapDomainExtents, having type DoubleRectanglePresModel + ParameterId["MapDomainExtents"] = "mapDomainExtents"; + // DPI_MapLatLongRect, having type MapRectPresModel + ParameterId["MapLatLongRect"] = "mapLatLongRect"; + // DPI_Center, having type PointPresModel + ParameterId["Center"] = "center"; + // DPI_CenterMarkLineBegin, having type PointPresModel + ParameterId["CenterMarkLineBegin"] = "centerMarkLineBegin"; + // DPI_CenterMarkLineEnd, having type PointPresModel + ParameterId["CenterMarkLineEnd"] = "centerMarkLineEnd"; + // DPI_DropLocation, having type PointPresModel + ParameterId["DropLocation"] = "dropLocation"; + // DPI_EndPt, having type PointPresModel + ParameterId["EndPt"] = "endPoint"; + // DPI_GrabLocation, having type PointPresModel + ParameterId["GrabLocation"] = "grabLocation"; + // DPI_GridOrigin, having type PointPresModel + ParameterId["GridOrigin"] = "gridOrigin"; + // DPI_LassoSelectionPoint, having type PointPresModel + ParameterId["LassoSelectionPoint"] = "lassoSelectionPoint"; + // DPI_MenuLocation, having type PointPresModel + ParameterId["MenuLocation"] = "menuLocation"; + // DPI_MoveOffset, having type PointPresModel + ParameterId["MoveOffset"] = "moveOffset"; + // DPI_OverlayAnchor, having type PointPresModel + ParameterId["OverlayAnchor"] = "overlayAnchor"; + // DPI_PanAmount, having type PointPresModel + ParameterId["PanAmount"] = "panAmount"; + // DPI_PanLocation, having type PointPresModel + ParameterId["PanLocation"] = "panLocation"; + // DPI_PaneResolverLocation, having type PointPresModel + ParameterId["PaneResolverLocation"] = "paneResolverLocation"; + // DPI_PixelExtentsOffset, having type PointPresModel + ParameterId["PixelExtentsOffset"] = "extentsOffset"; + // DPI_Point1, having type PointPresModel + ParameterId["Point1"] = "pt1"; + // DPI_Point2, having type PointPresModel + ParameterId["Point2"] = "pt2"; + // DPI_Point3, having type PointPresModel + ParameterId["Point3"] = "pt3"; + // DPI_RegionPoint, having type PointPresModel + ParameterId["RegionPoint"] = "regionPoint"; + // DPI_ScrollOffset, having type PointPresModel + ParameterId["ScrollOffset"] = "scrollOffset"; + // DPI_SelectAtPoint, having type PointPresModel + ParameterId["SelectAtPoint"] = "selectAtPoint"; + // DPI_SelectOffset, having type PointPresModel + ParameterId["SelectOffset"] = "selectOffset"; + // DPI_TargetPt, having type PointPresModel + ParameterId["TargetPt"] = "targetPoint"; + // DPI_TextOrigin, having type PointPresModel + ParameterId["TextOrigin"] = "textOrigin"; + // DPI_TooltipAnchorPoint, having type PointPresModel + ParameterId["TooltipAnchorPoint"] = "tooltipAnchorPoint"; + // DPI_TooltipOffset, having type PointPresModel + ParameterId["TooltipOffset"] = "tooltipOffset"; + // DPI_VizLocation, having type PointPresModel + ParameterId["VizLocation"] = "vizLocation"; + // DPI_ZoomAnchorPoint, having type PointPresModel + ParameterId["ZoomAnchorPoint"] = "zoomAnchorPoint"; + // DPI_MenuAnchorPoint, having type PointPresModel + ParameterId["MenuAnchorPoint"] = "menuAnchorPoint"; + // DPI_OverlayAnchors, having type PointPresModel[] + ParameterId["OverlayAnchors"] = "overlayAnchors"; + // DPI_LassoSelection, having type PointPresModel[] + ParameterId["LassoSelection"] = "lassoSelection"; + // DPI_ScrollOffsetPoints, having type PointPresModel[] + ParameterId["ScrollOffsetPoints"] = "scrollOffsetPoints"; + // DPI_RadialSelection, having type CirclePresModel + ParameterId["RadialSelection"] = "radialSelection"; + // DPI_DomainOrigin, having type FloatPointPresModel + ParameterId["DomainOrigin"] = "domainOrigin"; + // DPI_FloatCenter, having type FloatPointPresModel + ParameterId["FloatCenter"] = "floatCenter"; + // DPI_FloatPoint, having type FloatPointPresModel + ParameterId["FloatPoint"] = "floatPoint"; + // DPI_ClientAvailableSpace, having type SizePresModel + ParameterId["ClientAvailableSpace"] = "clientAvailableSpace"; + // DPI_DashboardPortSize, having type SizePresModel + ParameterId["DashboardPortSize"] = "dashboardPort"; + // DPI_LegendSize, having type SizePresModel + ParameterId["LegendSize"] = "legendSize"; + // DPI_StoryPortSize, having type SizePresModel + ParameterId["StoryPortSize"] = "storyPort"; + // DPI_SwatchAreaSize, having type SizePresModel + ParameterId["SwatchAreaSize"] = "areaSize"; + // DPI_SwatchImageSize, having type SizePresModel + ParameterId["SwatchImageSize"] = "imageSize"; + // DPI_ViewportSize, having type SizePresModel + ParameterId["ViewportSize"] = "viewportSize"; + // DPI_WorksheetPortSize, having type SizePresModel + ParameterId["WorksheetPortSize"] = "worksheetPort"; + // DPI_ResizeEntity, having type ResizeEntityPresModel + ParameterId["ResizeEntity"] = "resizeEntity"; + // DPI_RowResizers, having type ResizeEntityPresModel[] + ParameterId["RowResizers"] = "rowResizers"; + // DPI_ColResizers, having type ResizeEntityPresModel[] + ParameterId["ColResizers"] = "colResizers"; + // DPI_ResizeInfoPresModel, having type ResizeInfoPresModel + ParameterId["ResizeInfoPresModel"] = "resizeInfo"; + // DPI_ServerSheet, having type ServerSheetPresModel + ParameterId["ServerSheet"] = "serverSheet"; + // DPI_ServerSheets, having type ServerSheetPresModel[] + ParameterId["ServerSheets"] = "serverSheets"; + // DPI_SheetInfo, having type SheetInfoPresModel + ParameterId["SheetInfo"] = "sheetInfo"; + // DPI_SheetsInfo, having type SheetInfoPresModel[] + ParameterId["SheetsInfo"] = "sheetsInfo"; + // DPI_ServerWorkbook, having type ServerWorkbookPresModel + ParameterId["ServerWorkbook"] = "serverWorkbook"; + // DPI_PDFExportOptionsPresModel, having type PDFExportOptionsPresModel + ParameterId["PDFExportOptionsPresModel"] = "pdfExport"; + // DPI_ExportFileResultPresModel, having type ExportFileResultPresModel + ParameterId["ExportFileResultPresModel"] = "pdfResult"; + // DPI_PDFSheet, having type PDFSheetPresModel + ParameterId["PDFSheet"] = "pdfSheet"; + // DPI_SheetOptions, having type PDFSheetPresModel[] + ParameterId["SheetOptions"] = "sheetOptions"; + // DPI_ExportLayoutOptions, having type ExportLayoutOptionsPresModel + ParameterId["ExportLayoutOptions"] = "exportLayoutOptions"; + // DPI_DataAlertConditionOperationType, having type DataAlertConditionOperationType + ParameterId["DataAlertConditionOperationType"] = "dataAlertConditionOp"; + // DPI_DataAlertDialogPresModel, having type DataAlertDialogPresModel + ParameterId["DataAlertDialogPresModel"] = "dataAlertDialogPresModel"; + // DPI_DataAlertMeasure, having type DataAlertMeasurePresModel + ParameterId["DataAlertMeasure"] = "dataAlertMeasure"; + // DPI_DataAlertMeasures, having type DataAlertMeasurePresModel[] + ParameterId["DataAlertMeasures"] = "dataAlertMeasures"; + // DPI_DataAlertConstantCondition, having type DataAlertConstantConditionPresModel + ParameterId["DataAlertConstantCondition"] = "dataAlertConstantCondition"; + // DPI_DataAlertDialogMode, having type DataAlertDialogMode + ParameterId["DataAlertDialogMode"] = "dataAlertDialogMode"; + // DPI_LightweightMapOptions, having type LightweightMapOptionsPresModel + ParameterId["LightweightMapOptions"] = "lightweightMapOptions"; + // DPI_DataHighlighter, having type DataHighlighterPresModel + ParameterId["DataHighlighter"] = "dataHighlighter"; + // DPI_DataHighlighterItemSet, having type DataHighlighterItemSetPresModel + ParameterId["DataHighlighterItemSet"] = "dataHighlighterItemSet"; + // DPI_DataHighlighterItem, having type DataHighlighterItemPresModel + ParameterId["DataHighlighterItem"] = "dataHighlighterItem"; + // DPI_DataHighlighterItems, having type DataHighlighterItemPresModel[] + ParameterId["DataHighlighterItems"] = "dataHighlighterItems"; + // DPI_CategoricalLegendLayout, having type CategoricalLegendLayoutPresModel + ParameterId["CategoricalLegendLayout"] = "catLegendLayout"; + // DPI_CategoricalLegend, having type CategoricalLegendPresModel + ParameterId["CategoricalLegend"] = "categoricalLegend"; + // DPI_CategoricalLegends, having type CategoricalLegendPresModel[] + ParameterId["CategoricalLegends"] = "categoricalLegends"; + // DPI_CategoricalColorLegend, having type CategoricalColorLegendPresModel + ParameterId["CategoricalColorLegend"] = "colorLegend"; + // DPI_ColorLegendItem, having type CategoricalColorLegendItemPresModel + ParameterId["ColorLegendItem"] = "colorLegendItem"; + // DPI_ColorLegendItems, having type CategoricalColorLegendItemPresModel[] + ParameterId["ColorLegendItems"] = "colorLegendItems"; + // DPI_CategoricalShapeLegend, having type CategoricalShapeLegendPresModel + ParameterId["CategoricalShapeLegend"] = "categoricalShapeLegend"; + // DPI_ShapeLegendItem, having type CategoricalShapeLegendItemPresModel + ParameterId["ShapeLegendItem"] = "shapeLegendItem"; + // DPI_ShapeLegendItems, having type CategoricalShapeLegendItemPresModel[] + ParameterId["ShapeLegendItems"] = "shapeLegendItems"; + // DPI_CategoricalHighlightLegend, having type CategoricalHighlightLegendPresModel + ParameterId["CategoricalHighlightLegend"] = "categoricalHighlightLegend"; + // DPI_HighlightLegendItem, having type CategoricalLegendItemPresModel + ParameterId["HighlightLegendItem"] = "highlightLegendItem"; + // DPI_HighlightLegendItems, having type CategoricalLegendItemPresModel[] + ParameterId["HighlightLegendItems"] = "highlightLegendItems"; + // DPI_CategoricalSizeLegend, having type CategoricalSizeLegendPresModel + ParameterId["CategoricalSizeLegend"] = "categoricalSizeLegend"; + // DPI_SizeLegendItem, having type CategoricalSizeLegendItemPresModel + ParameterId["SizeLegendItem"] = "sizeLegendItem"; + // DPI_SizeLegendItems, having type CategoricalSizeLegendItemPresModel[] + ParameterId["SizeLegendItems"] = "sizeLegendItems"; + // DPI_CategoricalMapLegend, having type CategoricalMapLegendPresModel + ParameterId["CategoricalMapLegend"] = "categoricalMapLegend"; + // DPI_QuantitativeColorLegend, having type QuantitativeColorLegendPresModel + ParameterId["QuantitativeColorLegend"] = "quantitativeColorLegend"; + // DPI_QuantitativeColorLegends, having type QuantitativeColorLegendPresModel[] + ParameterId["QuantitativeColorLegends"] = "quantitativeColorLegends"; + // DPI_QuantitativeLegendLayout, having type QuantitativeLegendLayoutPresModel + ParameterId["QuantitativeLegendLayout"] = "quantitativeLegendLayout"; + // DPI_ServerRenderedLegend, having type ServerRenderedLegendPresModel + ParameterId["ServerRenderedLegend"] = "serverRenderedLegend"; + // DPI_CategoricalFilter, having type CategoricalFilterPresModel + ParameterId["CategoricalFilter"] = "categoricalFilter"; + // DPI_CategoricalFilterRelational, having type CategoricalFilterRelationalPresModel + ParameterId["CategoricalFilterRelational"] = "categoricalFilterRelational"; + // DPI_CategoricalFilterMemberDomainPage, having type CategoricalFilterMemberDomainPagePresModel + ParameterId["CategoricalFilterMemberDomainPage"] = "categoricalFilterMemberDomainPage"; + // DPI_CategoricalFilterCacheInfo, having type CategoricalFilterCacheInfoPresModel + ParameterId["CategoricalFilterCacheInfo"] = "categoricalFilterCacheInfo"; + // DPI_CategoricalFilterPatternDisplay, having type CategoricalFilterPatternDisplayPresModel + ParameterId["CategoricalFilterPatternDisplay"] = "categoricalFilterPatternDisplay"; + // DPI_CategoricalFilterPatternUpdate, having type CategoricalFilterPatternUpdatePresModel + ParameterId["CategoricalFilterPatternUpdate"] = "categoricalFilterPatternUpdate"; + // DPI_CategoricalFilterConditionDisplay, having type CategoricalFilterConditionDisplayPresModel + ParameterId["CategoricalFilterConditionDisplay"] = "categoricalFilterConditionDisplay"; + // DPI_CategoricalFilterConditionUpdate, having type CategoricalFilterConditionUpdatePresModel + ParameterId["CategoricalFilterConditionUpdate"] = "categoricalFilterConditionUpdate"; + // DPI_CategoricalFilterLimitDisplay, having type CategoricalFilterLimitDisplayPresModel + ParameterId["CategoricalFilterLimitDisplay"] = "categoricalFilterLimitDisplay"; + // DPI_CategoricalFilterLimitUpdate, having type CategoricalFilterLimitUpdatePresModel + ParameterId["CategoricalFilterLimitUpdate"] = "categoricalFilterLimitUpdate"; + // DPI_CategoricalFilterNew, having type CategoricalFilter_NewPresModel + ParameterId["CategoricalFilterNew"] = "categoricalFilterNew"; + // DPI_CategoricalFilterHierarchy, having type CategoricalFilterHierarchyPresModel + ParameterId["CategoricalFilterHierarchy"] = "categoricalFilterHirerarchy"; + // DPI_CategoricalFilterUpdate, having type CategoricalFilterUpdatePresModel + ParameterId["CategoricalFilterUpdate"] = "categoricalFilterUpdate"; + // DPI_CategoricalFilterRelationalState, having type CategoricalFilterRelationalStatePresModel + ParameterId["CategoricalFilterRelationalState"] = "categoricalRelationalState"; + // DPI_CategoricalFilterRelationalUpdatedState, having type CategoricalFilterRelationalStatePresModel + ParameterId["CategoricalFilterRelationalUpdatedState"] = "categoricalRelationalUpdatedState"; + // DPI_CategoricalFilterRelationalDomainInfo, having type CategoricalFilterRelationalDomainInfoPresModel + ParameterId["CategoricalFilterRelationalDomainInfo"] = "categoricalFilterRelationalDomainInfo"; + // DPI_CategoricalFilterRelationalDisplay, having type CategoricalFilterRelationalDisplayPresModel + ParameterId["CategoricalFilterRelationalDisplay"] = "categoricalFilterRelationalDisplay"; + // DPI_ExpressionToken, having type ExpressionTokenPresModel + ParameterId["ExpressionToken"] = "expressionToken"; + // DPI_ExpressionTokens, having type ExpressionTokenPresModel[] + ParameterId["ExpressionTokens"] = "expressionTokens"; + // DPI_FormulaValidation, having type FormulaValidationPresModel + ParameterId["FormulaValidation"] = "formulaValidation"; + // DPI_CaptionedFilterValue, having type FilterValuePresModel + ParameterId["CaptionedFilterValue"] = "captionedFilterValue"; + // DPI_CaptionedRangeMin, having type FilterValuePresModel + ParameterId["CaptionedRangeMin"] = "captionedRangeMin"; + // DPI_CaptionedRangeMax, having type FilterValuePresModel + ParameterId["CaptionedRangeMax"] = "captionedRangeMax"; + // DPI_CaptionedAnchorDate, having type FilterValuePresModel + ParameterId["CaptionedAnchorDate"] = "captionedAnchorDate"; + // DPI_CaptionedFilterValueList, having type FilterValuePresModel[] + ParameterId["CaptionedFilterValueList"] = "captionedFilterValueList"; + // DPI_CategoricalFilterInfo, having type CategoricalFilterInfoPresModel + ParameterId["CategoricalFilterInfo"] = "categoricalFilterInfo"; + // DPI_QuantitativeFilterInfo, having type QuantitativeFilterInfoPresModel + ParameterId["QuantitativeFilterInfo"] = "quantitativeFilterInfo"; + // DPI_RelativeDateFilterInfo, having type RelativeDateFilterInfoPresModel + ParameterId["RelativeDateFilterInfo"] = "relativeDateFilterInfo"; + // DPI_FilterSelectMeasure, having type FilterSelectMeasurePresModel + ParameterId["FilterSelectMeasure"] = "filterSelectMeasure"; + // DPI_FilterListItem, having type FilterListItemPresModel + ParameterId["FilterListItem"] = "filterListItem"; + // DPI_FilterListItems, having type FilterListItemPresModel[] + ParameterId["FilterListItems"] = "filterItems"; + // DPI_FilterFieldInfo, having type FilterFieldInfoPresModel + ParameterId["FilterFieldInfo"] = "filterFieldInfo"; + // DPI_FilterInfo, having type FilterInfoPresModel + ParameterId["FilterInfo"] = "filterInfo"; + // DPI_FiltersInfo, having type FilterInforPresModel[] + ParameterId["FiltersInfo"] = "filtersInfo"; + // DPI_CategoricalDomain, having type CategoricalDomainPresModel + ParameterId["CategoricalDomain"] = "categoricalDomain"; + // DPI_QuantitativeDomain, having type QuantitativeDomainPresModel + ParameterId["QuantitativeDomain"] = "quantitativeDomain"; + // DPI_ValidationResults, having type ValidationResultsPresModel + ParameterId["ValidationResults"] = "validationResults"; + // DPI_DomainMember, having type DomainMemberPresModel + ParameterId["DomainMember"] = "domainMember"; + // DPI_DomainMembers, having type DomainMemberPresModel[] + ParameterId["DomainMembers"] = "domainMembers"; + // DPI_QuickFilterDisplay, having type QuickFilterDisplayPresModel + ParameterId["QuickFilterDisplay"] = "quickFilterDisplay"; + // DPI_QuickFilter, having type QuickFilterPresModel + ParameterId["QuickFilter"] = "quickFilter"; + // DPI_QuantitativeQuickFilter, having type QuantitativeQuickFilterPresModel + ParameterId["QuantitativeQuickFilter"] = "quantitativeQuickFilter"; + // DPI_RelativeDateQuickFilter, having type RelativeDateQuickFilterPresModel + ParameterId["RelativeDateQuickFilter"] = "relativeDateQuickFilter"; + // DPI_CategoricalQuickFilter, having type CategoricalQuickFilterPresModel + ParameterId["CategoricalQuickFilter"] = "categoricalQuickFilter"; + // DPI_HierarchicalQuickFilter, having type HierarchicalQuickFilterPresModel + ParameterId["HierarchicalQuickFilter"] = "hierarchicalQuickFilter"; + // DPI_DomainTable, having type DomainTablePresModel + ParameterId["DomainTable"] = "domainTable"; + // DPI_DomainTables, having type DomainTablePresModel[] + ParameterId["DomainTables"] = "domainTables"; + // DPI_DomainTuples, having type Tuples + ParameterId["DomainTuples"] = "domainTuples"; + // DPI_SearchTuples, having type Tuples + ParameterId["SearchTuples"] = "searchTuples"; + // DPI_SelectedTuples, having type TupleHash + ParameterId["SelectedTuples"] = "selectedTuples"; + // DPI_PendingTuples, having type TupleHash + ParameterId["PendingTuples"] = "pendingTuples"; + // DPI_Domain, having type MultiDomain + ParameterId["Domain"] = "domain"; + // DPI_DateOption, having type DateBinDialogOptionPresModel + ParameterId["DateOption"] = "dateOption"; + // DPI_DateOptions, having type DateBinDialogOptionPresModel[] + ParameterId["DateOptions"] = "dateOptions"; + // DPI_FilterRangeAdd, having type FilterRangePresModel + ParameterId["FilterRangeAdd"] = "filterRangeAdd"; + // DPI_FilterRangeRemove, having type FilterRangePresModel + ParameterId["FilterRangeRemove"] = "filterRangeRemove"; + // DPI_FilterOptions, having type FilterOptionsPresModel + ParameterId["FilterOptions"] = "filterOptions"; + // DPI_Layer, having type LayerPresModel + ParameterId["Layer"] = "layer"; + // DPI_Layers, having type LayerPresModel[] + ParameterId["Layers"] = "layers"; + // DPI_MarksCardPresModel, having type MarksCardPresModel + ParameterId["MarksCardPresModel"] = "marksCardPresModel"; + // DPI_UIItem, having type UIItemPresModel + ParameterId["UIItem"] = "uiItem"; + // DPI_EncodingUIItem, having type EncodingUIItemPresModel + ParameterId["EncodingUIItem"] = "encodingUiItem"; + // DPI_EncodingUIItems, having type EncodingUIItemPresModel[] + ParameterId["EncodingUIItems"] = "encodingUiItems"; + // DPI_PrimTypeUIItem, having type PrimitiveTypeUIItemPresModel + ParameterId["PrimTypeUIItem"] = "primitiveTypeUiItem"; + // DPI_PrimTypeUIItems, having type PrimitiveTypeUIItemPresModel[] + ParameterId["PrimTypeUIItems"] = "primitiveTypeUiItems"; + // DPI_PrimitiveTypeUIItemOptions, having type PrimitiveTypeUIItemOptionsPresModel + ParameterId["PrimitiveTypeUIItemOptions"] = "primitiveTypeUiItemOptions"; + // DPI_LineUIItemOptions, having type LineUIItemOptionsPresModel + ParameterId["LineUIItemOptions"] = "lineUiItemOptions"; + // DPI_LineInterpolationModeUIItem, having type LineInterpolationModeUIItemPresModel + ParameterId["LineInterpolationModeUIItem"] = "lineInterpolationModeUiItem"; + // DPI_LineInterpolationModeUIItemSet, having type LineInterpolationModeUIItemPresModel[] + ParameterId["LineInterpolationModeUIItemSet"] = "lineInterpolationModeUiItemSet"; + // DPI_LineMarkerPositionUIItem, having type LineMarkerPositionUIItemPresModel + ParameterId["LineMarkerPositionUIItem"] = "lineMarkerPositionUiItem"; + // DPI_LineMarkerPositionUIItemSet, having type LineMarkerPositionUIItemPresModel[] + ParameterId["LineMarkerPositionUIItemSet"] = "lineMarkerPositionUiItemSet"; + // DPI_MarksCardDropdownItem, having type MarksCardDropdownItemPresModel + ParameterId["MarksCardDropdownItem"] = "marksCardDropdownItem"; + // DPI_TooltipDropdownItem, having type TooltipDropdownItemPresModel + ParameterId["TooltipDropdownItem"] = "tooltipDropdownItem"; + // DPI_TextDropdownItem, having type TextDropdownItemPresModel + ParameterId["TextDropdownItem"] = "textDropdownItem"; + // DPI_ColorDropdownItem, having type ColorDropdownItemPresModel + ParameterId["ColorDropdownItem"] = "colorDropdownItem"; + // DPI_SizeSliderPresModel, having type SizeSliderPresModel + ParameterId["SizeSliderPresModel"] = "sizeSliderPresModel"; + // DPI_InflectionPoint, having type InflectionPointPresModel + ParameterId["InflectionPoint"] = "inflectionPoint"; + // DPI_InflectionPoints, having type InflectionPointPresModel[] + ParameterId["InflectionPoints"] = "inflectionPoints"; + // DPI_Notch, having type NotchPresModel + ParameterId["Notch"] = "notch"; + // DPI_Notches, having type NotchPresModel[] + ParameterId["Notches"] = "notches"; + // DPI_MarkSizeOptionsPresModel, having type MarkSizeOptionsPresModel + ParameterId["MarkSizeOptionsPresModel"] = "markSizeOptionsPresModel"; + // DPI_ModifyMarksInSet, having type AddOrRemoveMarks + ParameterId["ModifyMarksInSet"] = "addOrRemoveMarks"; + // DPI_MarkLabelsSpecification, having type MarkLabelsSpecificationPresModel + ParameterId["MarkLabelsSpecification"] = "markLabelsSpecification"; + // DPI_ColorPalette, having type ColorPalettePresModel + ParameterId["ColorPalette"] = "colorPalette"; + // DPI_SelectedColorPalette, having type ColorPalettePresModel + ParameterId["SelectedColorPalette"] = "selectedColorPalette"; + // DPI_ColorPalettes, having type ColorPalettePresModel[] + ParameterId["ColorPalettes"] = "colorPalettes"; + // DPI_ColorPaletteGroup, having type ColorPaletteGroupPresModel + ParameterId["ColorPaletteGroup"] = "colorPaletteGroup"; + // DPI_CatColorPaletteGroups, having type ColorPaletteGroupPresModel[] + ParameterId["CatColorPaletteGroups"] = "catColorPaletteGroups"; + // DPI_QColorPaletteGroups, having type ColorPaletteGroupPresModel[] + ParameterId["QColorPaletteGroups"] = "qColorPaletteGroups"; + // DPI_ColorPaletteCollection, having type ColorPaletteCollectionPresModel + ParameterId["ColorPaletteCollection"] = "colorPaletteCollection"; + // DPI_QuantitativeColor, having type QuantitativeColorPresModel + ParameterId["QuantitativeColor"] = "quantitativeColor"; + // DPI_CategoricalColor, having type CategoricalColorPresModel + ParameterId["CategoricalColor"] = "categoricalColor"; + // DPI_ItemColorPair, having type ItemColorPairPresModel + ParameterId["ItemColorPair"] = "itemColorPair"; + // DPI_ItemColorPairs, having type ItemColorPairPresModel[] + ParameterId["ItemColorPairs"] = "itemColorPairs"; + // DPI_VQLCommandResponse, having type VQLCommandResponsePresModel + ParameterId["VQLCommandResponse"] = "vqlCmdResponse"; + // DPI_LayoutStatus, having type LayoutStatusPresModel + ParameterId["LayoutStatus"] = "layoutStatus"; + // DPI_VizState, having type VizStatePresModel + ParameterId["VizState"] = "vizState"; + // DPI_VizStateList, having type VizStatePresModel[] + ParameterId["VizStateList"] = "vizStateList"; + // DPI_CommandResult, having type CommandResultPresModel + ParameterId["CommandResult"] = "cmdResult"; + // DPI_CommandResultList, having type CommandResultPresModel[] + ParameterId["CommandResultList"] = "cmdResultList"; + // DPI_URLAction, having type URLActionPresModel + ParameterId["URLAction"] = "urlAction"; + // DPI_URLActionList, having type URLActionPresModel[] + ParameterId["URLActionList"] = "urlActionList"; + // DPI_LegacyMenu, having type LegacyMenuPresModel + ParameterId["LegacyMenu"] = "legacyMenu"; + // DPI_LegacyMenus, having type LegacyMenuPresModel[] + ParameterId["LegacyMenus"] = "legacyMenus"; + // DPI_ConnectionAttemptInfo, having type ConnectionAttemptInfoPresModel + ParameterId["ConnectionAttemptInfo"] = "connectionAttemptInfo"; + // DPI_DataSourceConnectionAttemptInfo, having type DataSourceConnectionAttemptInfoPresModel + ParameterId["DataSourceConnectionAttemptInfo"] = "dataSourceConnectionAttemptInfo"; + // DPI_DataSourceConnectionAttemptInfos, having type DataSourceConnectionAttemptInfoPresModel[] + ParameterId["DataSourceConnectionAttemptInfos"] = "dataSourceConnectionAttemptInfos"; + // DPI_CommandValidationPresModel, having type CommandValidationPresModel + ParameterId["CommandValidationPresModel"] = "commandValidationPresModel"; + // DPI_WarningMessage, having type WarningMessagePresModel + ParameterId["WarningMessage"] = "warningMessagePresModel"; + // DPI_ApplicationPresModel, having type ApplicationPresModel + ParameterId["ApplicationPresModel"] = "applicationPresModel"; + // DPI_ToolbarPresModel, having type ToolbarPresModel + ParameterId["ToolbarPresModel"] = "toolbarPresModel"; + // DPI_WorkbookPresModel, having type WorkbookPresModel + ParameterId["WorkbookPresModel"] = "workbookPresModel"; + // DPI_ServerFonts, having type ServerFontsPresModel + ParameterId["ServerFonts"] = "serverFonts"; + // DPI_PublishDataSourceMetadataPresModel, having type PublishDataSourceMetadataPresModel + ParameterId["PublishDataSourceMetadataPresModel"] = "publishDataSourceMetadataPresModel"; + // DPI_DashboardPresModel, having type DashboardPresModel + ParameterId["DashboardPresModel"] = "dashboardPresModel"; + // DPI_DashboardSizePresModel, having type DashboardSizePresModel + ParameterId["DashboardSizePresModel"] = "dashboardSizePresModel"; + // DPI_DashboardSizeWithValidationPresModel, having type DashboardSizeWithValidationPresModel + ParameterId["DashboardSizeWithValidationPresModel"] = "dashboardSizeWithValidationPresModel"; + // DPI_DashboardInfoPresModel, having type DashboardInfoPresModel + ParameterId["DashboardInfoPresModel"] = "dashboardInfoPresModel"; + // DPI_VisualPresModel, having type VisualPresModel + ParameterId["VisualPresModel"] = "visual"; + // DPI_VisualPresModels, having type VisualPresModel[] + ParameterId["VisualPresModels"] = "visuals"; + // DPI_DropLinesPresModel, having type DropLinesPresModel + ParameterId["DropLinesPresModel"] = "dropLinesPresModel"; + // DPI_DropFieldPresModel, having type DropFieldPresModel + ParameterId["DropFieldPresModel"] = "dropFieldPresModel"; + // DPI_DropFieldResultPresModel, having type DropFieldResultPresModel + ParameterId["DropFieldResultPresModel"] = "dropFieldResultPresModel"; + // DPI_CurrentAxisRange, having type DataValueRangePresModel + ParameterId["CurrentAxisRange"] = "currentAxisRange"; + // DPI_CurrentAxisRangeNoTime, having type DataValueRangePresModel + ParameterId["CurrentAxisRangeNoTime"] = "currentAxisRangeNoTime"; + // DPI_DefaultAxisRange, having type DataValueRangePresModel + ParameterId["DefaultAxisRange"] = "defaultAxisRange"; + // DPI_NewAxisRange, having type DataValueRangePresModel + ParameterId["NewAxisRange"] = "newAxisRange"; + // DPI_AxisOptions, having type AxisOptionsPresModel + ParameterId["AxisOptions"] = "axis"; + // DPI_AxisMajorTicks, having type TickMarkInfoPresModel + ParameterId["AxisMajorTicks"] = "axisMajorTicks"; + // DPI_AxisMinorTicks, having type TickMarkInfoPresModel + ParameterId["AxisMinorTicks"] = "axisMinorTicks"; + // DPI_EditAxisDialog, having type EditAxisDialogPresModel + ParameterId["EditAxisDialog"] = "editAxisDialog"; + // DPI_MarkLabels, having type ScenePresModel + ParameterId["MarkLabels"] = "markLabels"; + // DPI_Scene, having type ScenePresModel + ParameterId["Scene"] = "scene"; + // DPI_MapServer, having type MapServerPresModel + ParameterId["MapServer"] = "mapServer"; + // DPI_VisualList, having type VisualListPresModel + ParameterId["VisualList"] = "visualList"; + // DPI_DrawFirst, having type VisualListPresModel[] + ParameterId["DrawFirst"] = "drawFirst"; + // DPI_DrawLast, having type VisualListPresModel[] + ParameterId["DrawLast"] = "drawLast"; + // DPI_DrawPane, having type VisualListPresModel[] + ParameterId["DrawPane"] = "drawPane"; + // DPI_UserPaneInfo, having type UserPaneInfoPresModel + ParameterId["UserPaneInfo"] = "userPaneInfo"; + // DPI_AnalyticsPane, having type AnalyticsPanePresModel + ParameterId["AnalyticsPane"] = "analyticsPane"; + // DPI_AnalyticsObjectItem, having type AnalyticsObjectItemPresModel + ParameterId["AnalyticsObjectItem"] = "analyticsObjectItem"; + // DPI_AnalyticsObjectItems, having type AnalyticsObjectItemPresModel[] + ParameterId["AnalyticsObjectItems"] = "analyticsObjectItems"; + // DPI_AnalyticsObjectGroup, having type AnalyticsObjectGroupPresModel + ParameterId["AnalyticsObjectGroup"] = "analyticsObjectGroup"; + // DPI_AnalyticsObjectGroups, having type AnalyticsObjectGroupPresModel[] + ParameterId["AnalyticsObjectGroups"] = "analyticsObjectGroups"; + // DPI_DropZoneItem, having type DropZoneItemPresModel + ParameterId["DropZoneItem"] = "dropZoneItem"; + // DPI_DropZoneItems, having type DropZoneItemPresModel[] + ParameterId["DropZoneItems"] = "dropZoneItems"; + // DPI_DropTargetInfo, having type DropTargetInfoPresModel + ParameterId["DropTargetInfo"] = "dropTargetInfo"; + // DPI_Pane, having type PanePresModel + ParameterId["Pane"] = "pane"; + // DPI_Panes, having type PanePresModel[] + ParameterId["Panes"] = "panes"; + // DPI_RadialSelectionDistanceInfo, having type RadialSelectionDistanceInfoPresModel + ParameterId["RadialSelectionDistanceInfo"] = "radialSelectionDistanceInfo"; + // DPI_MapScaleInfo, having type MapScaleInfoPresModel + ParameterId["MapScaleInfo"] = "mapScaleInfo"; + // DPI_RenderNode, having type RenderNodePresModel + ParameterId["RenderNode"] = "renderNode"; + // DPI_RenderNodes, having type RenderNodePresModel[] + ParameterId["RenderNodes"] = "renderNodes"; + // DPI_PredictionBand, having type PredictionBandPresModel + ParameterId["PredictionBand"] = "predictionBand"; + // DPI_PredictionWhisker, having type PredictionWhiskerPresModel + ParameterId["PredictionWhisker"] = "predictionWhisker"; + // DPI_DrawGroup, having type DrawPointsPresModel + ParameterId["DrawGroup"] = "drawGroup"; + // DPI_ClipReset, having type DrawItemPresModel + ParameterId["ClipReset"] = "clipReset"; + // DPI_DrawItem, having type DrawItemPresModel + ParameterId["DrawItem"] = "drawItem"; + // DPI_TransformPop, having type DrawItemPresModel + ParameterId["TransformPop"] = "transformPop"; + // DPI_TransformPush, having type DrawItemPresModel + ParameterId["TransformPush"] = "transformPush"; + // DPI_DrawItems, having type DrawItemPresModel[] + ParameterId["DrawItems"] = "drawItems"; + // DPI_ClipRect, having type DrawPointsPresModel + ParameterId["ClipRect"] = "clipRect"; + // DPI_DrawEllipse, having type DrawPointsPresModel + ParameterId["DrawEllipse"] = "drawEllipse"; + // DPI_DrawFillEllipse, having type DrawPointsPresModel + ParameterId["DrawFillEllipse"] = "drawFillEllipse"; + // DPI_DrawFillPolygon, having type DrawPointsPresModel + ParameterId["DrawFillPolygon"] = "drawFillPolygon"; + // DPI_DrawFillRect, having type DrawPointsPresModel + ParameterId["DrawFillRect"] = "drawFillRect"; + // DPI_DrawPolygon, having type DrawPointsPresModel + ParameterId["DrawPolygon"] = "drawPolygon"; + // DPI_DrawPolyline, having type DrawPointsPresModel + ParameterId["DrawPolyline"] = "drawPolyline"; + // DPI_DrawRect, having type DrawPointsPresModel + ParameterId["DrawRect"] = "drawRect"; + // DPI_DrawFillPath, having type DrawPathPresModel + ParameterId["DrawFillPath"] = "drawFillPath"; + // DPI_DrawPath, having type DrawPathPresModel + ParameterId["DrawPath"] = "drawPath"; + // DPI_DrawText, having type DrawTextPresModel + ParameterId["DrawText"] = "drawText"; + // DPI_DrawImage, having type DrawImagePresModel + ParameterId["DrawImage"] = "drawImage"; + // DPI_ImageTileInfo, having type ImageTileInfoPresModel + ParameterId["ImageTileInfo"] = "tileInfo"; + // DPI_ImageTileInfos, having type ImageTileInfoPresModel[] + ParameterId["ImageTileInfos"] = "tileInfos"; + // DPI_DrawImageTiles, having type DrawImageTilesPresModel + ParameterId["DrawImageTiles"] = "drawImageTiles"; + // DPI_DrawPen, having type DrawPenPresModel + ParameterId["DrawPen"] = "drawPen"; + // DPI_DrawSolidBrush, having type DrawSolidBrushPresModel + ParameterId["DrawSolidBrush"] = "drawSolidBrush"; + // DPI_DrawTextProperties, having type DrawTextPropertiesPresModel + ParameterId["DrawTextProperties"] = "drawTextProps"; + // DPI_DrawGradientBrush, having type DrawGradientBrushPresModel + ParameterId["DrawGradientBrush"] = "drawGradientBrush"; + // DPI_DrawTransform, having type DrawTransformPresModel + ParameterId["DrawTransform"] = "transform"; + // DPI_DrawAntialias, having type DrawAntialiasPresModel + ParameterId["DrawAntialias"] = "drawAntialias"; + // DPI_ImageDictionary, having type ImageDictionaryPresModel + ParameterId["ImageDictionary"] = "imageDictionary"; + // DPI_ColorDictionary, having type ColorDictionaryPresModel + ParameterId["ColorDictionary"] = "colorDictionary"; + // DPI_MarkShape, having type MarkShapePresModel + ParameterId["MarkShape"] = "markShape"; + // DPI_MarkShapeList, having type MarkShapePresModel[] + ParameterId["MarkShapeList"] = "markShapeList"; + // DPI_PaneDescriptor, having type PaneDescriptorPresModel + ParameterId["PaneDescriptor"] = "paneDescriptor"; + // DPI_PDMarks, having type PDMarksPresModel + ParameterId["PDMarks"] = "pdMarks"; + // DPI_PDMarksMap, having type Dictionary(of PDMarksPresModel) + ParameterId["PDMarksMap"] = "pdMarksMap"; + // DPI_LabelTextTable, having type LabelTextTable + ParameterId["LabelTextTable"] = "labelTextTable"; + // DPI_TextTableHelper, having type TextTableHelper + ParameterId["TextTableHelper"] = "textTableHelper"; + // DPI_GeometryTable, having type GeometryTable + ParameterId["GeometryTable"] = "geometryTable"; + // DPI_PaneMarks, having type PaneMarksPresModel + ParameterId["PaneMarks"] = "paneMarks"; + // DPI_PaneMarksList, having type PaneMarksPresModel[] + ParameterId["PaneMarksList"] = "paneMarksList"; + // DPI_BrushingSelection, having type SelectionPresModel + ParameterId["BrushingSelection"] = "brushing"; + // DPI_Selection, having type SelectionPresModel + ParameterId["Selection"] = "selection"; + // DPI_BrushingSelectionList, having type SelectionPresModel[] + ParameterId["BrushingSelectionList"] = "brushingSelectionList"; + // DPI_SelectionList, having type SelectionPresModel[] + ParameterId["SelectionList"] = "selectionList"; + // DPI_ShelfSelectionModel, having type ShelfSelectionPresModel + ParameterId["ShelfSelectionModel"] = "shelfSelectionModel"; + // DPI_ShelfSelectionModels, having type ShelfSelectionPresModel[] + ParameterId["ShelfSelectionModels"] = "shelfSelectionModels"; + // DPI_ShelfSelectionsModel, having type ShelfSelectionsPresModel + ParameterId["ShelfSelectionsModel"] = "shelfSelectionsModel"; + // DPI_DimValSelectionModel, having type DimensionValueSelectionPresModel + ParameterId["DimValSelectionModel"] = "dimensionValueSelectionModel"; + // DPI_DimValSelectionModels, having type DimensionValueSelectionPresModel[] + ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; + // DPI_HierValSelectionModel, having type HierarchicalValueSelectionPresModel + ParameterId["HierValSelectionModel"] = "hierarchicalValueSelectionModel"; + // DPI_HierValSelectionModels, having type HierarchicalValueSelectionPresModel[] + ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; + // DPI_QuantRangeSelectionModel, having type QuantativeRangeSelectionPresModel + ParameterId["QuantRangeSelectionModel"] = "quantativeRangeSelectionModel"; + // DPI_QuantRangeSelectionModels, having type QuantativeRangeSelectionPresModel[] + ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; + // DPI_QuantValueSelectionModel, having type QuantativeValueSelectionPresModel + ParameterId["QuantValueSelectionModel"] = "quantativeValueSelectionModel"; + // DPI_QuantValueSelectionModels, having type QuantativeValueSelectionPresModel[] + ParameterId["QuantValueSelectionModels"] = "quantativeValueSelectionModels"; + // DPI_LegendSelectionInfo, having type LegendSelectionInfoPresModel + ParameterId["LegendSelectionInfo"] = "legendSelectionInfo"; + // DPI_NodeReference, having type NodeReferencePresModel + ParameterId["NodeReference"] = "nodeReference"; + // DPI_PageReference, having type PageReferencePresModel + ParameterId["PageReference"] = "pageReference"; + // DPI_OrientedNodeReference, having type OrientedNodeReferencePresModel + ParameterId["OrientedNodeReference"] = "orientedNodeReference"; + // DPI_OrientedNodeReferences, having type OrientedNodeReferencePresModel[] + ParameterId["OrientedNodeReferences"] = "orientedNodeReferences"; + // DPI_SelectionData, having type SelectionDataPresModel + ParameterId["SelectionData"] = "selectionData"; + // DPI_HighlightedData, having type HighlightedDataPresModel + ParameterId["HighlightedData"] = "highlightedData"; + // DPI_Node, having type NodePresModel + ParameterId["Node"] = "node"; + // DPI_Nodes, having type NodePresModel[] + ParameterId["Nodes"] = "nodes"; + // DPI_SelectedNodes, having type NodePresModel[] + ParameterId["SelectedNodes"] = "selectedNodes"; + // DPI_UserAction, having type ActionPresModel + ParameterId["UserAction"] = "userAction"; + // DPI_UserActions, having type ActionPresModel[] + ParameterId["UserActions"] = "userActions"; + // DPI_LinkSpec, having type LinkSpecPresModel + ParameterId["LinkSpec"] = "linkSpec"; + // DPI_ActionSpecificationModel, having type ActionSpecificationPresModel + ParameterId["ActionSpecificationModel"] = "actionSpecification"; + // DPI_LinkSpecification, having type LinkSpecificationPresModel + ParameterId["LinkSpecification"] = "linkSpecification"; + // DPI_ScriptDescription, having type ScriptDescriptionPresModel + ParameterId["ScriptDescription"] = "scriptDescription"; + // DPI_ActionSource, having type ActionSourcePresModel + ParameterId["ActionSource"] = "actionSource"; + // DPI_FieldExprItem, having type FieldExprItemPresModel + ParameterId["FieldExprItem"] = "fieldExpressionItem"; + // DPI_FieldExprVector, having type FieldExprItemPresModel[] + ParameterId["FieldExprVector"] = "fieldExpressionVector"; + // DPI_ActionComboItem, having type ActionComboItemPresModel + ParameterId["ActionComboItem"] = "actionComboItem"; + // DPI_ActionComboVector, having type ActionComboItemPresModel[] + ParameterId["ActionComboVector"] = "actionComboVector"; + // DPI_ActionSourceCombo, having type ActionSourceComboPresModel + ParameterId["ActionSourceCombo"] = "actionSourceCombo"; + // DPI_ActionDestCombo, having type ActionComboPresModel + ParameterId["ActionDestCombo"] = "actionDestCombo"; + // DPI_ActionFieldList, having type ActionFieldListPresModel + ParameterId["ActionFieldList"] = "actionFieldList"; + // DPI_EditBrushAction, having type EditBrushActionPresModel + ParameterId["EditBrushAction"] = "editBrushAction"; + // DPI_UpdateActionSource, having type UpdateActionSourcePresModel + ParameterId["UpdateActionSource"] = "updateActionSource"; + // DPI_UpdateBrushAction, having type UpdateBrushActionPresModel + ParameterId["UpdateBrushAction"] = "updateBrushAction"; + // DPI_ActionWarnings, having type ActionWarningsPresModel + ParameterId["ActionWarnings"] = "actionWarnings"; + // DPI_EditHyperlinkAction, having type EditHyperlinkActionPresModel + ParameterId["EditHyperlinkAction"] = "editHyperlinkAction"; + // DPI_UpdateHyperlinkAction, having type UpdateHyperlinkActionPresModel + ParameterId["UpdateHyperlinkAction"] = "updateHyperlinkAction"; + // DPI_EditSheetLinkAction, having type EditSheetLinkActionPresModel + ParameterId["EditSheetLinkAction"] = "editSheetlinkAction"; + // DPI_UpdateSheetLinkAction, having type UpdateSheetLinkActionPresModel + ParameterId["UpdateSheetLinkAction"] = "updateSheetlinkAction"; + // DPI_ActionItem, having type ActionItemPresModel + ParameterId["ActionItem"] = "actionItem"; + // DPI_ActionItemList, having type ActionItemPresModel[] + ParameterId["ActionItemList"] = "actionItemList"; + // DPI_DataSegment, having type DataSegmentPresModel + ParameterId["DataSegment"] = "dataSegment"; + // DPI_DataSegments, having type Dictionary(of DataSegmentPresModel) + ParameterId["DataSegments"] = "dataSegments"; + // DPI_DataDictionary, having type DataDictionaryPresModel + ParameterId["DataDictionary"] = "dataDictionary"; + // DPI_VizData, having type VizDataPresModel + ParameterId["VizData"] = "vizData"; + // DPI_VizColumn, having type VizColumnPresModel + ParameterId["VizColumn"] = "vizColumn"; + // DPI_VizColumns, having type VizColumnPresModel[] + ParameterId["VizColumns"] = "vizColumns"; + // DPI_VizDataColumn, having type VizDataColumnPresModel + ParameterId["VizDataColumn"] = "vizDataColumn"; + // DPI_VizDataColumns, having type VizDataColumnPresModel[] + ParameterId["VizDataColumns"] = "vizDataColumns"; + // DPI_VizPaneColumn, having type VizPaneColumnPresModel + ParameterId["VizPaneColumn"] = "vizPaneColumn"; + // DPI_VizPaneColumns, having type VizPaneColumnPresModel[] + ParameterId["VizPaneColumns"] = "vizPaneColumns"; + // DPI_PaneColumns, having type PaneColumnsPresModel + ParameterId["PaneColumns"] = "paneColumns"; + // DPI_PaneColumnsList, having type PaneColumnsPresModel[] + ParameterId["PaneColumnsList"] = "paneColumnsList"; + // DPI_PaneColumnsData, having type PaneColumnsDataPresModel + ParameterId["PaneColumnsData"] = "paneColumnsData"; + // DPI_FilterContext, having type FilterContextPresModel + ParameterId["FilterContext"] = "filterContext"; + // DPI_UberTipPaneData, having type UberTipPaneDataPresModel + ParameterId["UberTipPaneData"] = "ubertipPaneData"; + // DPI_UberTipPaneDatas, having type UberTipPaneDataPresModel[] + ParameterId["UberTipPaneDatas"] = "ubertipPaneDatas"; + // DPI_UberTipData, having type UberTipDataPresModel + ParameterId["UberTipData"] = "ubertipData"; + // DPI_RefLineTip, having type RefLineTipPresModel + ParameterId["RefLineTip"] = "refLineTip"; + // DPI_RefLineTips, having type RefLineTipPresModel[] + ParameterId["RefLineTips"] = "refLineTips"; + // DPI_NumericBin, having type NumericBinPresModel + ParameterId["NumericBin"] = "numericBin"; + // DPI_NumericBinDialog, having type NumericBinDialogPresModel + ParameterId["NumericBinDialog"] = "numericBinDialog"; + // DPI_DomainRange, having type DomainRangePresModel + ParameterId["DomainRange"] = "domainRange"; + // DPI_BinSizeInfo, having type BinSizeInfoPresModel + ParameterId["BinSizeInfo"] = "binSizeInfo"; + // DPI_DetailedErrorDialog, having type DetailedErrorPresModel + ParameterId["DetailedErrorDialog"] = "detailedErrorDialog"; + // DPI_DragSourcePosition, having type ShelfDropPositionPresModel + ParameterId["DragSourcePosition"] = "shelfDragSourcePosition"; + // DPI_DropTargetPosition, having type ShelfDropPositionPresModel + ParameterId["DropTargetPosition"] = "shelfDropTargetPosition"; + // DPI_ShelfDropPosition, having type ShelfDropPositionPresModel + ParameterId["ShelfDropPosition"] = "shelfDropPosition"; + // DPI_ShelfDropPositions, having type ShelfDropPositionPresModel[] + ParameterId["ShelfDropPositions"] = "shelfDropPositions"; + // DPI_ShelfDropModel, having type ShelfDropPresModel + ParameterId["ShelfDropModel"] = "shelfDropModel"; + // DPI_ShelfDropModels, having type ShelfDropPresModel[] + ParameterId["ShelfDropModels"] = "shelfDropModels"; + // DPI_Drag, having type DragPresModel + ParameterId["Drag"] = "drag"; + // DPI_SceneElement, having type SceneElementPresModel + ParameterId["SceneElement"] = "sceneElement"; + // DPI_SceneElements, having type SceneElementPresModel[] + ParameterId["SceneElements"] = "sceneElements"; + // DPI_QuickFilterType, having type QuickFilterType + ParameterId["QuickFilterType"] = "quickFilterType"; + // DPI_CatMode, having type QuickFilterCategoricalMode + ParameterId["CatMode"] = "categoricalMode"; + // DPI_CatCtrl, having type QuickFilterCategoricalCtrl + ParameterId["CatCtrl"] = "categoricalControl"; + // DPI_QuantMode, having type QuickFilterQuantitativeMode + ParameterId["QuantMode"] = "quantitativeMode"; + // DPI_QuantCtrl, having type QuickFilterQuantitativeCtrl + ParameterId["QuantCtrl"] = "quantitativeControl"; + // DPI_ZoneCommon, having type ZoneCommonPresModel + ParameterId["ZoneCommon"] = "zoneCommon"; + // DPI_ZoneCommonListItems, having type ZoneCommonPresModel[] + ParameterId["ZoneCommonListItems"] = "zoneCommonListItems"; + // DPI_Zone, having type ZonePresModel + ParameterId["Zone"] = "zone"; + // DPI_Zones, having type Dictionary(of ZonePresModel) + ParameterId["Zones"] = "zones"; + // DPI_ImageZone, having type ImageZonePresModel + ParameterId["ImageZone"] = "imageZone"; + // DPI_WebZone, having type WebZonePresModel + ParameterId["WebZone"] = "webZone"; + // DPI_AddInZone, having type AddInZonePresModel + ParameterId["AddInZone"] = "addInZone"; + // DPI_ButtonZonePresModel, having type ButtonZonePresModel + ParameterId["ButtonZonePresModel"] = "buttonZone"; + // DPI_ButtonConfigDialog, having type ButtonConfigDialogPresModel + ParameterId["ButtonConfigDialog"] = "buttonConfigDialog"; + // DPI_ZoneEdgeMoveType, having type ZoneEdgeMove + ParameterId["ZoneEdgeMoveType"] = "zoneEdgeMoveType"; + // DPI_ZoneSide, having type SideType + ParameterId["ZoneSide"] = "zoneSide"; + // DPI_SnapPoint, having type SnapPointPresModel + ParameterId["SnapPoint"] = "snapPoint"; + // DPI_SnapPoints, having type SnapPointPresModel[] + ParameterId["SnapPoints"] = "snapPoints"; + // DPI_TargetPreviewPair, having type DragDropTargetPreviewPairPresModel + ParameterId["TargetPreviewPair"] = "targetPreviewPair"; + // DPI_TargetPreviewPairs, having type DragDropTargetPreviewPairPresModel[] + ParameterId["TargetPreviewPairs"] = "targetPreviewPairs"; + // DPI_ContainerGuide, having type DragDropContainerGuidePresModel + ParameterId["ContainerGuide"] = "containerGuide"; + // DPI_ContainerGuides, having type DragDropContainerGuidePresModel[] + ParameterId["ContainerGuides"] = "containerGuides"; + // DPI_ZoneBorder, having type DragDropZoneBorderPresModel + ParameterId["ZoneBorder"] = "zoneBorder"; + // DPI_ZoneBorders, having type DragDropZoneBorderPresModel[] + ParameterId["ZoneBorders"] = "zoneBorders"; + // DPI_DashboardDragDrop, having type DashboardDragDropPresModel + ParameterId["DashboardDragDrop"] = "zoneDragDrop"; + // DPI_DragZoneResize, having type DragZoneResizePresModel + ParameterId["DragZoneResize"] = "zoneResize"; + // DPI_DashboardText, having type TextRegionPresModel + ParameterId["DashboardText"] = "dashboardText"; + // DPI_DashboardTitle, having type TextRegionPresModel + ParameterId["DashboardTitle"] = "dashboardTitle"; + // DPI_QuickFilterTitle, having type TextRegionPresModel + ParameterId["QuickFilterTitle"] = "quickFilterTitle"; + // DPI_VisualCaption, having type TextRegionPresModel + ParameterId["VisualCaption"] = "visualCaption"; + // DPI_VisualTitle, having type TextRegionPresModel + ParameterId["VisualTitle"] = "visualTitle"; + // DPI_ZoneTitleRegion, having type TextRegionPresModel + ParameterId["ZoneTitleRegion"] = "zoneTitle"; + // DPI_ForecastOptions, having type ForecastPresModel + ParameterId["ForecastOptions"] = "forecastOptions"; + // DPI_ForecastDescription, having type ForecastDescribePresModel + ParameterId["ForecastDescription"] = "forecastDescription"; + // DPI_WorkgroupPublishObject, having type WorkgroupPublishObjectPresModel + ParameterId["WorkgroupPublishObject"] = "publishDataSource"; + // DPI_PublishPermissionsSummary, having type PublishPermissionsSummaryPresModel + ParameterId["PublishPermissionsSummary"] = "publishPermissionsSummary"; + // DPI_CheckNameResults, having type CheckNameResultsPresModel + ParameterId["CheckNameResults"] = "checkNameResults"; + // DPI_ValidatePublishViewsResult, having type ValidatePublishViewsResultPresModel + ParameterId["ValidatePublishViewsResult"] = "validatePublishViewsResult"; + // DPI_PublishAuthenticationSettings, having type PublishAuthenticationSettingsPresModel + ParameterId["PublishAuthenticationSettings"] = "publishAuthenticationSettings"; + // DPI_ManageDatasources, having type ManageDatasourcesPresModel + ParameterId["ManageDatasources"] = "manageDatasources"; + // DPI_CredentialsAuthSettings, having type CredentialsAuthSettingsPresModel + ParameterId["CredentialsAuthSettings"] = "credentialsAuthSettings"; + // DPI_ConnectionCredentialsAuthSettings, having type ConnectionCredentialsAuthSettingsPresModel + ParameterId["ConnectionCredentialsAuthSettings"] = "connectionCredentialsAuthSettings"; + // DPI_ConnectionCredentialsAuthSettingsList, having type ConnectionCredentialsAuthSettingsPresModel[] + ParameterId["ConnectionCredentialsAuthSettingsList"] = "connectionCredentialsAuthSettingsList"; + // DPI_PublishDatasourceFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel + ParameterId["PublishDatasourceFromWorkbookInfo"] = "publishDatasourceFromWorkbookInfo"; + // DPI_PublishDatasourcesFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel[] + ParameterId["PublishDatasourcesFromWorkbookInfo"] = "publishDatasourcesFromWorkbookInfo"; + // DPI_PublishSheet, having type PublishSheetPresModel + ParameterId["PublishSheet"] = "publishSheet"; + // DPI_PublishSheets, having type PublishSheetPresModel[] + ParameterId["PublishSheets"] = "publishSheets"; + // DPI_PublishObjectViews, having type PublishObjectViewsPresModel + ParameterId["PublishObjectViews"] = "publishObjectViews"; + // DPI_PublishObjectPublishSheetResults, having type PublishObjectPublishSheetResultsPresModel + ParameterId["PublishObjectPublishSheetResults"] = "publishObjectPublishSheetResults"; + // DPI_RefreshExtractSchedulingSettings, having type RefreshExtractSchedulingSettingsPresModel + ParameterId["RefreshExtractSchedulingSettings"] = "refreshExtractSchedulingSettings"; + // DPI_SetRefreshExtractScheduleResult, having type SetRefreshExtractScheduleResultPresModel + ParameterId["SetRefreshExtractScheduleResult"] = "setRefreshExtractScheduleResult"; + // DPI_CheckPublishObjectNameWarningsResults, having type CheckPublishObjectNameWarningsResultsPresModel + ParameterId["CheckPublishObjectNameWarningsResults"] = "checkPublishObjectNameWarningsResults"; + // DPI_PublishDatasourceOnWorkbookPublishResults, having type PublishDatasourceOnWorkbookPublishResultsPresModel + ParameterId["PublishDatasourceOnWorkbookPublishResults"] = "publishDatasourceOnWorkbookPublishResult"; + // DPI_PublishDataSourceResult, having type PublishDataSourceResultPresModel + ParameterId["PublishDataSourceResult"] = "publishDataSourceResult"; + // DPI_PublishWarningMessage, having type PublishWarningMessagePresModel + ParameterId["PublishWarningMessage"] = "publishWarningMessage"; + // DPI_MustDowngradeToPublishWarningMessagePresModel, having type PublishWarningMessagePresModel + ParameterId["MustDowngradeToPublishWarningMessagePresModel"] = "mustDowngradeToPublishWarningMessagePresModel"; + // DPI_PublishSelectedAttributes, having type PublishSelectedAttributesPresModel + ParameterId["PublishSelectedAttributes"] = "publishSelectedAttributes"; + // DPI_AutosaveFile, having type AutosaveFilePresModel + ParameterId["AutosaveFile"] = "autosaveFile"; + // DPI_AutosaveFiles, having type AutosaveFilePresModel[] + ParameterId["AutosaveFiles"] = "autosaveFiles"; + // DPI_FunctionGroup, having type FunctionGroup + ParameterId["FunctionGroup"] = "funcGrp"; + // DPI_FunctionGroups, having type FunctionGroup[] + ParameterId["FunctionGroups"] = "funcGrps"; + // DPI_FunctionArgType, having type FunctionArgType + ParameterId["FunctionArgType"] = "funcArgType"; + // DPI_FunctionArgTypes, having type FunctionArgType[] + ParameterId["FunctionArgTypes"] = "funcArgTypes"; + // DPI_CalculationStyle, having type CalcStyle + ParameterId["CalculationStyle"] = "calculationStyle"; + // DPI_Calculation, having type CalculationPresModel + ParameterId["Calculation"] = "calculation"; + // DPI_TypeInPill, having type CalculationPresModel + ParameterId["TypeInPill"] = "typeInPill"; + // DPI_CalcErrorInfo, having type CalcErrorInfoPresModel + ParameterId["CalcErrorInfo"] = "errorInfo"; + // DPI_CalcErrorInfos, having type CalcErrorInfoPresModel[] + ParameterId["CalcErrorInfos"] = "errorInfoList"; + // DPI_CalcualtionValidation, having type CalculationValidationPresModel + ParameterId["CalcualtionValidation"] = "calculationValidation"; + // DPI_ExpressionFunction, having type ExpressionFunctionPresModel + ParameterId["ExpressionFunction"] = "expressionFunc"; + // DPI_ExpressionFunctions, having type ExpressionFunctionPresModel[] + ParameterId["ExpressionFunctions"] = "expressionFuncList"; + // DPI_ExpressionFunctionsPM, having type ExpressionFunctionsPresModel + ParameterId["ExpressionFunctionsPM"] = "expressionFuncPm"; + // DPI_StyleToken, having type StyleTokenPresModel + ParameterId["StyleToken"] = "styleToken"; + // DPI_StyleTokens, having type StyleTokenPresModel[] + ParameterId["StyleTokens"] = "styleTokenList"; + // DPI_CalcEditorTextSelection, having type CalcEditorTextSelectionPresModel + ParameterId["CalcEditorTextSelection"] = "calcEditorTextSelection"; + // DPI_AutoCompleteItemType, having type AutoCompleteItemType + ParameterId["AutoCompleteItemType"] = "autocompleteType"; + // DPI_AutoCompleteItem, having type AutoCompleteItemPresModel + ParameterId["AutoCompleteItem"] = "autocompleteItem"; + // DPI_AutoCompleteItems, having type AutoCompleteItemPresModel[] + ParameterId["AutoCompleteItems"] = "autocompleteItemList"; + // DPI_CalculationAutoCompleteContextMenu, having type CalculationAutoCompleteContextMenuPresModel + ParameterId["CalculationAutoCompleteContextMenu"] = "calculationAutocompleteContextMenu"; + // DPI_CalcApplyResult, having type CalcApplyResult + ParameterId["CalcApplyResult"] = "calculationApplyResult"; + // DPI_RampBorderStyledBox, having type StyledBoxPresModel + ParameterId["RampBorderStyledBox"] = "rampBorderStyledBox"; + // DPI_StyledBox, having type StyledBoxPresModel + ParameterId["StyledBox"] = "styledBox"; + // DPI_GlobalStyledBox, having type StyledBoxPresModel + ParameterId["GlobalStyledBox"] = "globalStyledBox"; + // DPI_StyleContext, having type StyleContextPresModel + ParameterId["StyleContext"] = "styleContext"; + // DPI_CurrentTextStyle, having type TextStylePresModel + ParameterId["CurrentTextStyle"] = "currentTextStyle"; + // DPI_LabelTextStyle, having type TextStylePresModel + ParameterId["LabelTextStyle"] = "labelTextStyle"; + // DPI_OriginalTextStyle, having type TextStylePresModel + ParameterId["OriginalTextStyle"] = "originalTextStyle"; + // DPI_SelectedTextStyleModel, having type TextStylePresModel + ParameterId["SelectedTextStyleModel"] = "selectedTextStyleModel"; + // DPI_SwatchTextStyleModel, having type TextStylePresModel + ParameterId["SwatchTextStyleModel"] = "swatchTextStyle"; + // DPI_TextStyleModel, having type TextStylePresModel + ParameterId["TextStyleModel"] = "textStyle"; + // DPI_TitleStyleModel, having type TextStylePresModel + ParameterId["TitleStyleModel"] = "titleStyleModel"; + // DPI_PropertyBag, having type PropertyBagPresModel + ParameterId["PropertyBag"] = "propBagWrapper"; + // DPI_PresModelMap, having type Dictionary(of PropertyBagPresModel) + ParameterId["PresModelMap"] = "presModelMap"; + // DPI_PresentationLayerNotifications, having type PresModelMapPresModel + ParameterId["PresentationLayerNotifications"] = "presentationLayerNotifications"; + // DPI_SecondaryInfo, having type PresModelMapPresModel + ParameterId["SecondaryInfo"] = "secondaryInfo"; + // DPI_ClientDashboardUIMetric, having type ClientDashboardUIMetricPresModel + ParameterId["ClientDashboardUIMetric"] = "clientDashboardUiMetric"; + // DPI_ClientDashboardUIMetrics, having type ClientDashboardUIMetricPresModel[] + ParameterId["ClientDashboardUIMetrics"] = "clientDashboardUiMetrics"; + // DPI_ClientDashboardUIMetricContainer, having type ClientDashboardUIMetricContainerPresModel + ParameterId["ClientDashboardUIMetricContainer"] = "clientDashboardUiMetricContainer"; + // DPI_ExtSvcConfig, having type ExtSvcConfigPresModel + ParameterId["ExtSvcConfig"] = "extSvcConfig"; + // DPI_StoryboardSheetItem, having type StoryboardSheetItemPresModel + ParameterId["StoryboardSheetItem"] = "storyboardSheetItem"; + // DPI_StoryboardSheetItems, having type StoryboardSheetItemPresModel[] + ParameterId["StoryboardSheetItems"] = "storyboardSheetItems"; + // DPI_StoryboardSheetList, having type StoryboardSheetListPresModel + ParameterId["StoryboardSheetList"] = "storyboardSheetList"; + // DPI_FitToStoryBoardOptionItem, having type FitToStoryBoardOptionItemPresModel + ParameterId["FitToStoryBoardOptionItem"] = "fitToStoryboardOptionItem"; + // DPI_FitToStoryBoardOptionItems, having type FitToStoryBoardOptionItemPresModel[] + ParameterId["FitToStoryBoardOptionItems"] = "fitToStoryboardOptionItems"; + // DPI_FitToStoryBoardOptionList, having type FitToStoryBoardOptionListPresModel + ParameterId["FitToStoryBoardOptionList"] = "fitToStoryboardOptionList"; + // DPI_StoryPointNavItem, having type StoryPointNavItemPresModel + ParameterId["StoryPointNavItem"] = "storypointNavItem"; + // DPI_StoryPointNavItems, having type StoryPointNavItemPresModel[] + ParameterId["StoryPointNavItems"] = "storypointNavItems"; + // DPI_FlipboardNav, having type FlipboardNavPresModel + ParameterId["FlipboardNav"] = "flipboardNav"; + // DPI_ScrollBarStyle, having type ScrollBarStylePresModel + ParameterId["ScrollBarStyle"] = "scrollBarStyle"; + // DPI_DashboardZoneLayoutPane, having type DashboardZoneLayoutPanePresModel + ParameterId["DashboardZoneLayoutPane"] = "dashboardZoneLayoutPane"; + // DPI_SelectedStoryPointStyle, having type StoryPointCaptionStylePresModel + ParameterId["SelectedStoryPointStyle"] = "selectedStoryPointStyle"; + // DPI_UnselectedStoryPointStyle, having type StoryPointCaptionStylePresModel + ParameterId["UnselectedStoryPointStyle"] = "unselectedStoryPointStyle"; + // DPI_FlipboardNavStyle, having type FlipboardNavStylePresModel + ParameterId["FlipboardNavStyle"] = "flipboardNavStyle"; + // DPI_StoryPoint, having type StoryPointPresModel + ParameterId["StoryPoint"] = "storyPoint"; + // DPI_StoryPoints, having type Dictionary(of StoryPointPresModel) + ParameterId["StoryPoints"] = "storyPoints"; + // DPI_Flipboard, having type FlipboardPresModel + ParameterId["Flipboard"] = "flipboard"; + // DPI_StoryPair, having type StoryPairPresModel + ParameterId["StoryPair"] = "storyPair"; + // DPI_StoryPairs, having type StoryPairPresModel[] + ParameterId["StoryPairs"] = "storyPairs"; + // DPI_StoryboardPM, having type StoryboardPresModel + ParameterId["StoryboardPM"] = "storyboardPm"; + // DPI_HiDpiIconDictionary, having type ImageCollectionPresModel + ParameterId["HiDpiIconDictionary"] = "hiDpiIconDictionary"; + // DPI_IconDictionary, having type ImageCollectionPresModel + ParameterId["IconDictionary"] = "iconDictionary"; + // DPI_IconResourceDictionary, having type ImageResourceCollectionPresModel + ParameterId["IconResourceDictionary"] = "iconResDictionary"; + // DPI_DataPreviewWindowMessage, having type DataPreviewWindowMessagePresModel + ParameterId["DataPreviewWindowMessage"] = "dataPreviewWindowMessage"; + // DPI_DataSourceData, having type DataSourceDataPresModel + ParameterId["DataSourceData"] = "dataSrcData"; + // DPI_DataSourceSort, having type DataSourceSortPresModel + ParameterId["DataSourceSort"] = "dataSrcSort"; + // DPI_ColumnInfo, having type DSColumnInfoPresModel + ParameterId["ColumnInfo"] = "columnInfo"; + // DPI_ColumnInfos, having type DSColumnInfoPresModel[] + ParameterId["ColumnInfos"] = "columnInfos"; + // DPI_DataFormatter, having type DVFormatter + ParameterId["DataFormatter"] = "dataFormatter"; + // DPI_JoinDescription, having type JoinDescriptionPresModel + ParameterId["JoinDescription"] = "joinDescription"; + // DPI_JoinDescriptions, having type Dictionary(of JoinDescriptionPresModel) + ParameterId["JoinDescriptions"] = "joinDescriptions"; + // DPI_FileTableInfo, having type FileTableInfoPresModel + ParameterId["FileTableInfo"] = "fileTableInfo"; + // DPI_FieldMapping, having type FieldMappingPresModel + ParameterId["FieldMapping"] = "fieldMapping"; + // DPI_FieldMappingData, having type FieldMappingDataPresModel + ParameterId["FieldMappingData"] = "fieldMappingData"; + // DPI_FieldMappingDataVector, having type FieldMappingDataPresModel[] + ParameterId["FieldMappingDataVector"] = "fieldMappingDataVector"; + // DPI_FrameFinder, having type FrameFinderPresModel + ParameterId["FrameFinder"] = "frameFinder"; + // DPI_SheetLinkFieldMapping, having type SheetLinkFieldMappingPresModel + ParameterId["SheetLinkFieldMapping"] = "sheetLinkFieldMapping"; + // DPI_UnionInfo, having type UnionInfoPresModel + ParameterId["UnionInfo"] = "unionInfo"; + // DPI_UnionTableInfo, having type UnionTableInfoPresMode + ParameterId["UnionTableInfo"] = "unionTableInfo"; + // DPI_UnionTableInfos, having type UnionTableInfoPresModel[] + ParameterId["UnionTableInfos"] = "unionTableInfos"; + // DPI_ConnectionPBUnionInfo, having type PBUnionInfoPresModel + ParameterId["ConnectionPBUnionInfo"] = "connectionPbunionInfo"; + // DPI_ConnectionPBUnionInfos, having type PBUnionInfoPresModel[] + ParameterId["ConnectionPBUnionInfos"] = "connectionPbunionInfos"; + // DPI_JoinClause, having type JoinClausePresModel + ParameterId["JoinClause"] = "joinClause"; + // DPI_JoinClauses, having type JoinClausePresModel[] + ParameterId["JoinClauses"] = "joinClauses"; + // DPI_JoinValidationResult, having type JoinValidationResultPresModel + ParameterId["JoinValidationResult"] = "joinValidationResult"; + // DPI_JoinTableInfo, having type JoinTableInfoPresModel + ParameterId["JoinTableInfo"] = "joinTableInfo"; + // DPI_ParameterInfo, having type JoinTableInfoPresModel + ParameterId["ParameterInfo"] = "parameterInfo"; + // DPI_JoinTableInfos, having type JoinTableInfoPresModel[] + ParameterId["JoinTableInfos"] = "joinTableInfos"; + // DPI_JoinOnCalcInfo, having type JoinOnCalcInfoPresModel + ParameterId["JoinOnCalcInfo"] = "joinOnCalcInfo"; + // DPI_ConnectionSummary, having type ConnectionSummaryPresModel + ParameterId["ConnectionSummary"] = "connectionSummary"; + // DPI_ConnectionSummaries, having type ConnectionSummaryPresModel[] + ParameterId["ConnectionSummaries"] = "connectionSummaries"; + // DPI_TopLevelConnectionDescription, having type TopLevelConnectionDescriptionPresModel + ParameterId["TopLevelConnectionDescription"] = "topLevelConnectionDescription"; + // DPI_DataConnectionTableViewMessages, having type DataConnectionTableViewMessagesPresModel + ParameterId["DataConnectionTableViewMessages"] = "dataConnectionTableViewMessages"; + // DPI_TextTransformScript, having type TextTransformScriptPresModel + ParameterId["TextTransformScript"] = "textTransformScript"; + // DPI_CalendarDateOptions, having type CalendarDateOptionsPresModel + ParameterId["CalendarDateOptions"] = "calendarDateOptions"; + // DPI_GoToWorksheetTooltipPresModel, having type GoToWorksheetTooltipPresModel + ParameterId["GoToWorksheetTooltipPresModel"] = "goToWorksheetTooltipPresModel"; + // DPI_TableCleaningPresModel, having type TableCleaningPresModel + ParameterId["TableCleaningPresModel"] = "tableCleaningPresModel"; + // DPI_PivotPresModel, having type PivotPresModel + ParameterId["PivotPresModel"] = "pivotPresModel"; + // DPI_PivotTreeItemPresModel, having type PivotTreeItemPresModel + ParameterId["PivotTreeItemPresModel"] = "pivotTreeItemPresModel"; + // DPI_PivotTreeItems, having type PivotTreeItemPresModel[] + ParameterId["PivotTreeItems"] = "pivotTreeItemsPresModel"; + // DPI_PivotDisplay, having type PivotDisplayPresModel + ParameterId["PivotDisplay"] = "pivotDisplay"; + // DPI_PivotTag, having type NameColumnsPairPresModel + ParameterId["PivotTag"] = "pivotTag"; + // DPI_PivotGroups, having type NameColumnsPairPresModel[] + ParameterId["PivotGroups"] = "pivotGroups"; + // DPI_DataSourceDropdown, having type DataSourceDropdownPresModel + ParameterId["DataSourceDropdown"] = "dataSourceDropdown"; + // DPI_ConnectionDropdown, having type ConnectionDropdownPresModel + ParameterId["ConnectionDropdown"] = "connectionDropdown"; + // DPI_ActivityEvent, having type ActivityEventPresModel + ParameterId["ActivityEvent"] = "activityEvent"; + // DPI_UIAutomation, having type UIAutomationPresModel + ParameterId["UIAutomation"] = "uiAutomation"; + // DPI_UIAutomationIndex, having type UIAutomationIndexPresModel + ParameterId["UIAutomationIndex"] = "uiAutomationIndex"; + // DPI_UIAutomationIndexList, having type UIAutomationIndexPresModel[] + ParameterId["UIAutomationIndexList"] = "uiAutomationIndexList"; + // DPI_UIAutomationComponentInfo, having type UIAutomationComponentInfoPresModel + ParameterId["UIAutomationComponentInfo"] = "uiAutomationComponentInfo"; + // DPI_UIAutomationComponentInfoList, having type UIAutomationComponentInfoPresModel[] + ParameterId["UIAutomationComponentInfoList"] = "uiAutomationComponentInfoList"; + // DPI_Geometry, having type GeometryPresModel + ParameterId["Geometry"] = "geometry"; + // DPI_MultiPoint, having type MultiPointPresModel + ParameterId["MultiPoint"] = "multiPoint"; + // DPI_MultiLine, having type MultiLinePresModel + ParameterId["MultiLine"] = "multiLine"; + // DPI_MultiPolygon, having type MultiPolygonPresModel + ParameterId["MultiPolygon"] = "multiPolygon"; + // DPI_Polygon, having type PolygonPresModel + ParameterId["Polygon"] = "polygon"; + // DPI_PolygonList, having type PolygonPresModel[] + ParameterId["PolygonList"] = "polygonList"; + // DPI_Line, having type LinePresModel + ParameterId["Line"] = "line"; + // DPI_LineList, having type LinePresModel[] + ParameterId["LineList"] = "lineList"; + // DPI_TabbedAuthentication, having type TabbedAuthenticationPresModel + ParameterId["TabbedAuthentication"] = "tabbedAuthentication"; + // DPI_TabbedAuthenticationTabInfo, having type TabbedAuthenticationTabInfoPresModel + ParameterId["TabbedAuthenticationTabInfo"] = "tabbedAuthenticationTabInfo"; + // DPI_TabbedAuthenticationTabInfos, having type TabbedAuthenticationTabInfoPresModel[] + ParameterId["TabbedAuthenticationTabInfos"] = "tabbedAuthenticationTabInfos"; + // DPI_GeographicSearchCandidate, having type GeographicSearchCandidatePresModel + ParameterId["GeographicSearchCandidate"] = "geographicSearchCandidate"; + // DPI_GeographicSearchCandidateList, having type GeographicSearchCandidatePresModel[] + ParameterId["GeographicSearchCandidateList"] = "geographicSearchCandidateList"; + // DPI_GeographicSearchResults, having type GeographicSearchPresModel + ParameterId["GeographicSearchResults"] = "geographicSearchResults"; + // DPI_ParamInfo, having type ParameterInfoPresModel + ParameterId["ParamInfo"] = "paramInfo"; + // DPI_ParamInfos, having type ParameterInfoPresModel[] + ParameterId["ParamInfos"] = "paramInfos"; + // DPI_ParamNamespaceInfo, having type ParameterNamespaceInfoInfoPresModel + ParameterId["ParamNamespaceInfo"] = "paramNamespaceInfo"; + // DPI_ParamNamespaceInfos, having type ParameterNamespaceInfoPresModel[] + ParameterId["ParamNamespaceInfos"] = "paramNamespaceInfos"; + // DPI_ParamRegistryInfo, having type ParameterRegistryInfoPresModel + ParameterId["ParamRegistryInfo"] = "paramRegistryInfo"; + // DPI_DataSourceProperties, having type DataSourcePropertiesPresModel + ParameterId["DataSourceProperties"] = "connectionProperties"; + // DPI_ConnectionTypePresModel, having type ConnectionTypePresModel + ParameterId["ConnectionTypePresModel"] = "connectionTypePresModel"; + // DPI_ConnectionTypes, having type ConnectionTypePresModel[] + ParameterId["ConnectionTypes"] = "connectionTypes"; + // DPI_ConnectionTypeGroupPresModel, having type ConnectionTypeGroupPresModel + ParameterId["ConnectionTypeGroupPresModel"] = "connectionTypeGroupPresModel"; + // DPI_SavedDataSourcePresModel, having type SavedDataSourcePresModel + ParameterId["SavedDataSourcePresModel"] = "savedDatasourcePresModel"; + // DPI_SavedDataSources, having type SavedDataSourcePresModel[] + ParameterId["SavedDataSources"] = "savedDatasources"; + // DPI_SavedDataSourcesPresModel, having type SavedDataSourcesPresModel + ParameterId["SavedDataSourcesPresModel"] = "savedDatasourcesPresModel"; + // DPI_OpenPaneItemPresModel, having type OpenPaneItemPresModel + ParameterId["OpenPaneItemPresModel"] = "openPaneItemPresModel"; + // DPI_OpenPaneItems, having type OpenPaneItemPresModel[] + ParameterId["OpenPaneItems"] = "openPaneItems"; + // DPI_OpenPaneItemsPresModel, having type OpenPaneItemsPresModel + ParameterId["OpenPaneItemsPresModel"] = "openPaneItemsPresModel"; + // DPI_VariableValue, having type VariableValuePresModel + ParameterId["VariableValue"] = "variableValue"; + // DPI_VariableValues, having type VariableValuePresModel[] + ParameterId["VariableValues"] = "variableValues"; + // DPI_ServerVariableValue, having type ServerVariableValuePresModel + ParameterId["ServerVariableValue"] = "serverVariableValue"; + // DPI_EditableVariableValue, having type EditableVariableValuePresModel + ParameterId["EditableVariableValue"] = "editableVariableValue"; + // DPI_ServerVariableMetadata, having type ServerVariableMetadataPresModel + ParameterId["ServerVariableMetadata"] = "serverVariableMetadata"; + // DPI_PromptVariable, having type PromptVariablePresModel + ParameterId["PromptVariable"] = "promptVariable"; + // DPI_PromptVariables, having type PromptVariablePresModel[] + ParameterId["PromptVariables"] = "promptVariables"; + // DPI_VariablePromptDialog, having type VariablePromptDialogPresModel + ParameterId["VariablePromptDialog"] = "variablePromptDialog"; + // DPI_VariableValueOperation, having type VariableValueOperationPresModel + ParameterId["VariableValueOperation"] = "variableValueOperation"; + // DPI_VariableValueOperations, having type VariableValueOperationPresModel[] + ParameterId["VariableValueOperations"] = "variableValueOperations"; + // DPI_TableOptionsPresModel, having type TableOptionsPresModel + ParameterId["TableOptionsPresModel"] = "tableOptionsPresModel"; + // DPI_ClientInfoPresModel, having type ClientInfoPresModel + ParameterId["ClientInfoPresModel"] = "clientInfoPresModel"; + // DPI_TableauFileInfoPresModel, having type TableauFileInfoPresModel + ParameterId["TableauFileInfoPresModel"] = "tableauFileInfoPresModel"; + // DPI_DebuggingInfoPresModel, having type DebuggingInfoPresModel + ParameterId["DebuggingInfoPresModel"] = "debuggingInfoPresModel"; + // DPI_RunningThreadInfoPresModel, having type RunningThreadInfoPresModel + ParameterId["RunningThreadInfoPresModel"] = "runningThreadInfoPresModel"; + // DPI_AboutDialogInfoPresModel, having type AboutDialogInfoPresModel + ParameterId["AboutDialogInfoPresModel"] = "aboutDialogInfoPresModel"; + // DPI_HybridUIShowcasePresModel, having type HybridUIShowcasePresModel + ParameterId["HybridUIShowcasePresModel"] = "hybridUiShowcasePresModel"; + // DPI_MenuConfiguration, having type MenuConfigurationPresModel + ParameterId["MenuConfiguration"] = "menuConfiguration"; + // DPI_MenuItem, having type MenuItemPresModel + ParameterId["MenuItem"] = "menuItem"; + // DPI_MenuItemModels, having type MenuItemPresModel[] + ParameterId["MenuItemModels"] = "menuItemModels"; + // DPI_DefaultTextFormat, having type DefaultTextFormatPresModel + ParameterId["DefaultTextFormat"] = "defaultTextFormat"; + // DPI_MapBoxServerInfoPresModel, having type MapBoxServerInfoPresModel + ParameterId["MapBoxServerInfoPresModel"] = "mapboxServerInfoPresModel"; + // DPI_WMSServerInfoPresModel, having type WMSServerInfoPresModel + ParameterId["WMSServerInfoPresModel"] = "wmsServerInfoPresModel"; + // DPI_MapSourceConflictPresModel, having type MapSourceConflictPresModel + ParameterId["MapSourceConflictPresModel"] = "mapSourceConflictPresModel"; + // DPI_EnumeratedSetDialogPresModel, having type EnumeratedSetDialogPresModel + ParameterId["EnumeratedSetDialogPresModel"] = "enumeratedSetDialogPresModel"; + // DPI_EditAliasesDialog, having type EditAliasesDialogPresModel + ParameterId["EditAliasesDialog"] = "editAliasesDialogPresModel"; + // DPI_AliasesPresModel, having type AliasesPresModel + ParameterId["AliasesPresModel"] = "aliasesPresModel"; + // DPI_ClearAliasesPresModel, having type AliasesPresModel + ParameterId["ClearAliasesPresModel"] = "clearAliasesPresModel"; + // DPI_NewAliasesPresModel, having type NewAliasesPresModel + ParameterId["NewAliasesPresModel"] = "newAliasesPresModel"; + // DPI_AliasPresModel, having type AliasPresModel + ParameterId["AliasPresModel"] = "aliasPresModel"; + // DPI_AliasItem, having type AliasItemPresModel + ParameterId["AliasItem"] = "aliasItem"; + // DPI_DuplicateAliasItem, having type AliasItemPresModel + ParameterId["DuplicateAliasItem"] = "duplicateAliasItem"; + // DPI_AliasList, having type AliasItemPresModel[] + ParameterId["AliasList"] = "aliasList"; + // DPI_AliasResultItem, having type AliasResultItemPresModel + ParameterId["AliasResultItem"] = "aliasResultItem"; + // DPI_AliasResultList, having type AliasResultItemPresModel[] + ParameterId["AliasResultList"] = "aliasResultList"; + // DPI_AliasResults, having type AliasResultsPresModel + ParameterId["AliasResults"] = "aliasResults"; + // DPI_EditSetDialogPresModel, having type EditSetDialogPresModel + ParameterId["EditSetDialogPresModel"] = "editSetDialogPresModel"; + // DPI_ConfirmationPresModel, having type ConfirmationPresModel + ParameterId["ConfirmationPresModel"] = "confirmationPresModel"; + // DPI_NotificationPresModel, having type NotificationPresModel + ParameterId["NotificationPresModel"] = "notificationPresModel"; + // DPI_RetargetDataSourceDialogPresModel, having type RetargetDataSourceDialogPresModel + ParameterId["RetargetDataSourceDialogPresModel"] = "retargetDatasourceDialogPresModel"; + // DPI_SharedFilterPresModel, having type SharedFilterPresModel + ParameterId["SharedFilterPresModel"] = "sharedFilterPresModel"; + // DPI_SharedFilterWorksheetInfo, having type SharedFilterWorksheetInfoPresModel + ParameterId["SharedFilterWorksheetInfo"] = "sharedFilterWorksheetInfo"; + // DPI_SharedFilterWorksheetInfoList, having type SharedFilterWorksheetInfoPresModel[] + ParameterId["SharedFilterWorksheetInfoList"] = "sharedFilterWorksheetInfoList"; + // DPI_FieldPickerTreePresModel, having type FieldPickerTreePresModel + ParameterId["FieldPickerTreePresModel"] = "fieldPickerTreePresModel"; + // DPI_FieldPickerTreePresModelSource, having type FieldPickerTreePresModel + ParameterId["FieldPickerTreePresModelSource"] = "fieldPickerTreePresModelSource"; + // DPI_FieldPickerTreePresModelTarget, having type FieldPickerTreePresModel + ParameterId["FieldPickerTreePresModelTarget"] = "fieldPickerTreePresModelTarget"; + // DPI_ErrorInfo, having type ErrorInfoPresModel + ParameterId["ErrorInfo"] = "errorInfoPresModel"; + // DPI_CustomSplitPresModel, having type CustomSplitPresModel + ParameterId["CustomSplitPresModel"] = "customSplitPresModel"; + // DPI_PageSetup, having type PageSetupPresModel + ParameterId["PageSetup"] = "pageSetup"; + // DPI_ServerConnectStatus, having type ServerConnectionStatus + ParameterId["ServerConnectStatus"] = "serverConnectionStatus"; + // DPI_GetFilterItemsResponse, having type GetFilterItemsResponsePresModel + ParameterId["GetFilterItemsResponse"] = "getFilterItemsResponse"; + // DPI_FilterSearchResponse, having type FilterSearchResponsePresModel + ParameterId["FilterSearchResponse"] = "filterSearchResponse"; + // DPI_FilterSearchWithIndexResponse, having type FilterSearchWithIndexResponsePresModel + ParameterId["FilterSearchWithIndexResponse"] = "filterSearchWithIndexResponse"; + // DPI_FilterShowChildrenResponse, having type FilterShowChildrenResponsePresModel + ParameterId["FilterShowChildrenResponse"] = "filterShowChildrenResponse"; + // DPI_EditDataServerConnection, having type EditDataServerConnectionPresModel + ParameterId["EditDataServerConnection"] = "editDataServerConnection"; + // DPI_ImagesEdit, having type ImagesEditPresModel + ParameterId["ImagesEdit"] = "imagesEdit"; + // DPI_BackgroundImage, having type BackgroundImagePresModel + ParameterId["BackgroundImage"] = "backgroundImage"; + // DPI_BackgroundImages, having type BackgroundImagePresModel[] + ParameterId["BackgroundImages"] = "backgroundImages"; + // DPI_Predicate, having type PredicatePresModel + ParameterId["Predicate"] = "predicate"; + // DPI_Predicates, having type PredicatePresModel[] + ParameterId["Predicates"] = "predicates"; + // DPI_ImagesEditResult, having type ImagesEditResultPresModel + ParameterId["ImagesEditResult"] = "imagesEditResult"; + // DPI_SortDialogPresModel, having type SortDialogPresModel + ParameterId["SortDialogPresModel"] = "sortDialogPresModel"; + // DPI_CompoundTableCalc, having type CompoundTableCalculationPresModel + ParameterId["CompoundTableCalc"] = "compoundTableCalculationPresModel"; + // DPI_TableCalc, having type TableCalculationPresModel + ParameterId["TableCalc"] = "tableCalculationPresModel"; + // DPI_TableCalcs, having type TableCalculationPresModel[] + ParameterId["TableCalcs"] = "tableCalculationPresModels"; + // DPI_TableCalcIdentifier, having type TableCalcIdentifierPresModel + ParameterId["TableCalcIdentifier"] = "tableCalcIdentifier"; + // DPI_NestedTableCalcInfo, having type NestedTableCalcInfoPresModel + ParameterId["NestedTableCalcInfo"] = "nestedTableCalcInfo"; + // DPI_NestedTableCalcInfos, having type NestedTableCalcInfoPresModel[] + ParameterId["NestedTableCalcInfos"] = "nestedTableCalcInfos"; + // DPI_Ordering, having type TableCalcOrderingPresModel + ParameterId["Ordering"] = "tableCalcOrderingPresModel"; + // DPI_Cumulative, having type CumulativeTableCalcPresModel + ParameterId["Cumulative"] = "cumulativeTableCalcPresModel"; + // DPI_ReferenceOptions, having type TableCalcReferenceOptionsPresModel + ParameterId["ReferenceOptions"] = "tableCalcReferenceOptionsPresModel"; + // DPI_Difference, having type DifferenceTableCalcPresModel + ParameterId["Difference"] = "differenceTableCalcPresModel"; + // DPI_Window, having type WindowTableCalcPresModel + ParameterId["Window"] = "windowTableCalcPresModel"; + // DPI_PercentTotal, having type PercentTotalTableCalcPresModel + ParameterId["PercentTotal"] = "percentTotalTableCalcPresModel"; + // DPI_Rank, having type RankTableCalcPresModel + ParameterId["Rank"] = "rankTableCalcPresModel"; + // DPI_Custom, having type CustomTableCalcPresModel + ParameterId["Custom"] = "customTableCalcPresModel"; + // DPI_WebDataUrl, having type WebDataUrlPresModel + ParameterId["WebDataUrl"] = "webDataUrl"; + // DPI_VisitedWebDataConnectors, having type WebDataUrlPresModel[] + ParameterId["VisitedWebDataConnectors"] = "visitedWebDataConnectors"; + // DPI_WebDataSessionUrls, having type WebDataUrlPresModel[] + ParameterId["WebDataSessionUrls"] = "webDataSessionUrls"; + // DPI_WebDataUrls, having type WebDataUrlPresModel[] + ParameterId["WebDataUrls"] = "webDataUrls"; + // DPI_FieldPicker, having type FieldPickerPresModel + ParameterId["FieldPicker"] = "fieldPicker"; + // DPI_DescribeField, having type DescribeFieldPresModel + ParameterId["DescribeField"] = "describeField"; + // DPI_ShowDataPresModel, having type ShowDataPresModel + ParameterId["ShowDataPresModel"] = "showDataPresModel"; + // DPI_DataTablePresModel, having type ShowDataTablePresModel + ParameterId["DataTablePresModel"] = "dataTablePresModel"; + // DPI_DataTablePresModels, having type ShowDataTablePresModel[] + ParameterId["DataTablePresModels"] = "dataTablePresModels"; + // DPI_SummaryTablePresModels, having type ShowDataTablePresModel[] + ParameterId["SummaryTablePresModels"] = "summaryTablePresModels"; + // DPI_RefreshAllExtractsPresModel, having type RefreshAllExtractsPresModel + ParameterId["RefreshAllExtractsPresModel"] = "refeshAllExtractsPresModel"; + // DPI_RefreshExtractDataSourcePresModel, having type RefreshExtractDataSourcePresModel + ParameterId["RefreshExtractDataSourcePresModel"] = "refreshExtractDatasourcePresModel"; + // DPI_RefreshExtractDataSourceList, having type RefreshExtractDataSourcePresModel[] + ParameterId["RefreshExtractDataSourceList"] = "refreshExtractDatasourceList"; + // DPI_ExtractHistoryPresModel, having type ExtractHistoryPresModel + ParameterId["ExtractHistoryPresModel"] = "extractHistoryPresModel"; + // DPI_ExtractHistoryItemPresModel, having type ExtractHistoryItemPresModel + ParameterId["ExtractHistoryItemPresModel"] = "extractHistoryItem"; + // DPI_ExtractHistoryList, having type ExtractHistoryItemPresModel[] + ParameterId["ExtractHistoryList"] = "extractHistoryList"; + // DPI_DataProviderPresModel, having type DataProviderPresModel + ParameterId["DataProviderPresModel"] = "dataProviderPresModel"; + // DPI_FormatItem, having type FormatItemPresModel + ParameterId["FormatItem"] = "formatItem"; + // DPI_FormatItemList, having type FormatItemPresModel[] + ParameterId["FormatItemList"] = "formatItemList"; + // DPI_FormatContainer, having type FormatContainerPresModel + ParameterId["FormatContainer"] = "formatContainer"; + // DPI_FormatPane, having type FormatPanePresModel + ParameterId["FormatPane"] = "formatPane"; + // DPI_FormatSection, having type FormatSectionPresModel + ParameterId["FormatSection"] = "formatSection"; + // DPI_CollapsibleSection, having type CollapsibleSectionPresModel + ParameterId["CollapsibleSection"] = "collapsibleSection"; + // DPI_CompositeContainer, having type CompositeContainerPresModel + ParameterId["CompositeContainer"] = "compositeContainer"; + // DPI_UnitContainer, having type UnitContainerPresModel + ParameterId["UnitContainer"] = "unitContainer"; + // DPI_TabGroup, having type TabGroupPresModel + ParameterId["TabGroup"] = "tabGroup"; + // DPI_Tab, having type TabPresModel + ParameterId["Tab"] = "tab"; + // DPI_FormatControl, having type FormatControlPresModel + ParameterId["FormatControl"] = "formatControl"; + // DPI_TextControl, having type TextControlPresModel + ParameterId["TextControl"] = "textControl"; + // DPI_NumericControl, having type NumericControlPresModel + ParameterId["NumericControl"] = "numericControl"; + // DPI_ColorControl, having type ColorControlPresModel + ParameterId["ColorControl"] = "colorControl"; + // DPI_ToggleControl, having type ToggleControlPresModel + ParameterId["ToggleControl"] = "toggleControl"; + // DPI_SelectorControl, having type SelectorControlPresModel + ParameterId["SelectorControl"] = "enumStringStyle"; + // DPI_StatsAnalyticSpec, having type StatsAnalyticSpecPresModel + ParameterId["StatsAnalyticSpec"] = "statsAnalyticSpec"; + // DPI_ClusterSpec, having type ClusterSpecPresModel + ParameterId["ClusterSpec"] = "clusteringSpec"; + // DPI_ClusterResults, having type ClusterResultsPresModel + ParameterId["ClusterResults"] = "clusterResults"; + // DPI_ClusterUnit, having type ClusterUnitPresModel + ParameterId["ClusterUnit"] = "cluster"; + // DPI_ClusterUnits, having type ClusterUnitPresModel[] + ParameterId["ClusterUnits"] = "clusterUnitPresModels"; + // DPI_ClusterFieldANOVA, having type ClusterFieldANOVAPresModel + ParameterId["ClusterFieldANOVA"] = "clusterFieldAnova"; + // DPI_ClusterFieldANOVATable, having type ClusterFieldANOVAPresModel[] + ParameterId["ClusterFieldANOVATable"] = "clusterFieldAnovaTablePresModel"; + // DPI_ClusterEdit, having type ClusterEditPresModel + ParameterId["ClusterEdit"] = "clusterEditPresModel"; + // DPI_ClusterDescription, having type ClusterDescribePresModel + ParameterId["ClusterDescription"] = "clusterDescription"; + // DPI_OutlierResults, having type OutlierResultsPresModel + ParameterId["OutlierResults"] = "outlierResults"; + // DPI_ConnectToDataServerSourceResult, having type ConnectToDataServerSourceResultPresModel + ParameterId["ConnectToDataServerSourceResult"] = "connectToDataServerSourceResult"; + // DPI_DataServerConnectionReturnStatus, having type ConnectToDataServerSourceResultPresModel + ParameterId["DataServerConnectionReturnStatus"] = "dataServerConnectionReturnStatus"; + // DPI_WebQuantitativeColorDialog, having type WebQuantitativeColorDialogPresModel + ParameterId["WebQuantitativeColorDialog"] = "quantitativeColorDialog"; + // DPI_WebCategoricalColorDialog, having type WebCategoricalColorDialogPresModel + ParameterId["WebCategoricalColorDialog"] = "categoricalColorDialog"; + // DPI_WebSaveDatasourceDialog, having type WebSaveDatasourceDialogPresModel + ParameterId["WebSaveDatasourceDialog"] = "saveDatasourceDialog"; + // DPI_BorderStyleSpec, having type StyleSpecPresModel + ParameterId["BorderStyleSpec"] = "borderStyleSpec"; + // DPI_HaloStyleSpec, having type StyleSpecPresModel + ParameterId["HaloStyleSpec"] = "haloStyleSpec"; + // DPI_MarksColorUberEffects, having type MarksColorUberEffectsPresModel + ParameterId["MarksColorUberEffects"] = "marksColorUberEffects"; + // DPI_CategoricalColorEncoding, having type CategoricalColorEncodingPresModel + ParameterId["CategoricalColorEncoding"] = "categoricalColorEncoding"; + // DPI_CategoricalShapeEncoding, having type CategoricalShapeEncodingPresModel + ParameterId["CategoricalShapeEncoding"] = "categoricalShapeEncoding"; + // DPI_ShapePalettePresModel, having type ShapePalettePresModel + ParameterId["ShapePalettePresModel"] = "shapePalettePresModel"; + // DPI_ShapePalettePresModels, having type ShapePalettePresModel[] + ParameterId["ShapePalettePresModels"] = "shapePalettePresModels"; + // DPI_DataSourceDateProperties, having type DataSourceDatePropertiesPresModel + ParameterId["DataSourceDateProperties"] = "datasourceDateProperties"; + // DPI_DatePropertiesDateFormat, having type DatePropertiesDateFormatPresModel + ParameterId["DatePropertiesDateFormat"] = "datePropertiesDateFormat"; + // DPI_DatePropertiesDateFormats, having type DatePropertiesDateFormatPresModel[] + ParameterId["DatePropertiesDateFormats"] = "datePropertiesDateFormats"; + // DPI_HierarchySelect, having type HierarchySelectModel + ParameterId["HierarchySelect"] = "hierarchySelect"; + // DPI_HierarchySelectMember, having type HierarchySelectMemberPresModel + ParameterId["HierarchySelectMember"] = "hierarchySelectMember"; + // DPI_HierarchySelectMemberList, having type HierarchySelectMemberPresModel[] + ParameterId["HierarchySelectMemberList"] = "hierarchySelectMemberList"; + // DPI_HierarchySetDefaultMember, having type HierarchySetDefaultMemberPresModel + ParameterId["HierarchySetDefaultMember"] = "hierarchySetDefaultMember"; + // DPI_SemiStructSchema, having type SemiStructSchemaPresModel + ParameterId["SemiStructSchema"] = "semiStructSchema"; + // DPI_SemiStructSchemaMember, having type SemiStructSchemaMemberPresModel + ParameterId["SemiStructSchemaMember"] = "semiStructSchemaMember"; + // DPI_SemiStructSchemaMemberList, having type SemiStructSchemaMemberPresModel[] + ParameterId["SemiStructSchemaMemberList"] = "semiStructSchemaMemberList"; + // DPI_ParameterEditInfo, having type ParameterEditInfoPresModel + ParameterId["ParameterEditInfo"] = "parameterEditInfo"; + // DPI_ProductParameterInfo, having type ProductParameterInfoPresModel + ParameterId["ProductParameterInfo"] = "productParameterInfo"; + // DPI_CaptionedDatasourceField, having type CaptionedDatasourceInfoPresModel + ParameterId["CaptionedDatasourceField"] = "captionedDatasourceField"; + // DPI_CaptionedDatasourceFields, having type CaptionedDatasourceInfoPresModel[] + ParameterId["CaptionedDatasourceFields"] = "captionedDatasourceFields"; + // DPI_EditedParameterRangeDomain, having type ParameterRangeDomainPresModel + ParameterId["EditedParameterRangeDomain"] = "editedParameterRangeDomain"; + // DPI_ParameterRangeDomain, having type ParameterRangeDomainPresModel + ParameterId["ParameterRangeDomain"] = "parameterRangeDomain"; + // DPI_ParameterListDomain, having type ParameterListDomainPresModel + ParameterId["ParameterListDomain"] = "parameterListDomain"; + // DPI_ParameterListDomainMember, having type ParameterListDomainMemberPresModel + ParameterId["ParameterListDomainMember"] = "parameterListDomainMember"; + // DPI_ParameterListDomainMembers, having type ParameterListDomainMemberPresModel[] + ParameterId["ParameterListDomainMembers"] = "parameterListDomainMembers"; + // DPI_IndexedDomainMember, having type IndexedDomainMemberPresModel + ParameterId["IndexedDomainMember"] = "indexedDomainMember"; + // DPI_IndexedDomainMembers, having type IndexedDomainMemberPresModel[] + ParameterId["IndexedDomainMembers"] = "indexedDomainMembers"; + // DPI_NewIndexedDomainMembers, having type IndexedDomainMemberPresModel[] + ParameterId["NewIndexedDomainMembers"] = "newIndexedDomainMembers"; + // DPI_ParameterListDomainDiff, having type parameter-list-domain-diff + ParameterId["ParameterListDomainDiff"] = "parameterListDomainDiff"; + // DPI_IndexRange, having type IndexRangePresModel + ParameterId["IndexRange"] = "indexRange"; + // DPI_IndexRanges, having type IndexRangePresModel[] + ParameterId["IndexRanges"] = "indexRanges"; + // DPI_CategoricalFind, having type CategoricalFindPresModel + ParameterId["CategoricalFind"] = "categoricalFind"; + // DPI_CaptionedDataValue, having type CaptionedDataValuePresModel + ParameterId["CaptionedDataValue"] = "captionedDataValue"; + // DPI_SelectedValueCaption, having type CaptionedDataValuePresModel + ParameterId["SelectedValueCaption"] = "selectedValueCaption"; + // DPI_DataValueCaptionList, having type CaptionedDataValuePresModel[] + ParameterId["DataValueCaptionList"] = "dataValueCatpionList"; + // DPI_RangeDataValue, having type RangeDataValuePresModel + ParameterId["RangeDataValue"] = "rangeDataValue"; + // DPI_ParameterRangeDataValue, having type RangeDataValuePresModel + ParameterId["ParameterRangeDataValue"] = "parameterRangeDataValue"; + // DPI_DataValueRangeCaptions, having type DataValueRangeCaptionsPresModel + ParameterId["DataValueRangeCaptions"] = "dataValueRangeCaptions"; + // DPI_IndependentDimension, having type IndependentDimensionPresModel + ParameterId["IndependentDimension"] = "independentDimension"; + // DPI_IndependentDimensions, having type IndependentDimensionPresModel[] + ParameterId["IndependentDimensions"] = "independentDimensions"; + // DPI_AttributePerspective, having type PerspectivePresModel + ParameterId["AttributePerspective"] = "attributePerspective"; + // DPI_CubePerspective, having type PerspectivePresModel + ParameterId["CubePerspective"] = "cubePerspective"; + // DPI_AttributePerspectives, having type PerspectivePresModel[] + ParameterId["AttributePerspectives"] = "attributePerspectives"; + // DPI_CalculatedMembersForEditingPresModel, having type EditCalculatedMembersPresModel + ParameterId["CalculatedMembersForEditingPresModel"] = "calculatedMembersForEditingPresmodel"; + // DPI_CalculatedMember, having type CalculatedMemberPresModel + ParameterId["CalculatedMember"] = "calculatedMember"; + // DPI_NewCalculatedMember, having type CalculatedMemberPresModel + ParameterId["NewCalculatedMember"] = "newCalculatedMember"; + // DPI_UpdatedCalculatedMember, having type CalculatedMemberPresModel + ParameterId["UpdatedCalculatedMember"] = "updatedCalculatedMember"; + // DPI_CalculatedMembersList, having type CalculatedMemberPresModel[] + ParameterId["CalculatedMembersList"] = "calculatedMembersList"; + // DPI_CalculatedMemberHierarchyItem, having type CalculatedMemberHierarchyItemPresModel + ParameterId["CalculatedMemberHierarchyItem"] = "calculatedMemberHierarchyItem"; + // DPI_CalculatedMemberHierarchyList, having type CalculatedMemberHierarchyItemPresModel[] + ParameterId["CalculatedMemberHierarchyList"] = "calculatedMemberHierarchyList"; + // DPI_SummaryCardPresModel, having type SummaryCardPresModel + ParameterId["SummaryCardPresModel"] = "summaryCard"; + // DPI_MeasureSummary, having type MeasureSummaryPresModel + ParameterId["MeasureSummary"] = "measureSummary"; + // DPI_MeasureSummaryList, having type MeasureSummaryPresModel[] + ParameterId["MeasureSummaryList"] = "measureSummaryList"; + // DPI_AnnotationPresModel, having type AnnotationPresModel + ParameterId["AnnotationPresModel"] = "annotation"; + // DPI_AnnotationList, having type AnnotationPresModel[] + ParameterId["AnnotationList"] = "annotationList"; + // DPI_AnnotationShapeStyle, having type AnnotationShapeStylePresModel + ParameterId["AnnotationShapeStyle"] = "annotationShapeStyle"; + // DPI_Telemetry, having type TelemetryPresModel + ParameterId["Telemetry"] = "telemetry"; + // DPI_DataSourceTelemetry, having type DataSourceTelemetryPresModel + ParameterId["DataSourceTelemetry"] = "dataSourceTelemetry"; + // DPI_DataSourceTelemetryList, having type DataSourceTelemetryPresModel[] + ParameterId["DataSourceTelemetryList"] = "dataSourceTelemetryList"; + // DPI_VisualSpecificationTelemetry, having type VisualSpecificationTelemetryPresModel + ParameterId["VisualSpecificationTelemetry"] = "visualSpecificationTelemetry"; + // DPI_VisualSpecificationTelemetryList, having type VisualSpecificationTelemetryPresModel[] + ParameterId["VisualSpecificationTelemetryList"] = "visualSpecificationTelemetryList"; + // DPI_UnderlyingDataTable, having type UnderlyingDataTablePresModel + ParameterId["UnderlyingDataTable"] = "underlyingDataTable"; + // DPI_UnderlyingDataTables, having type UnderlyingDataTablePresModel[] + ParameterId["UnderlyingDataTables"] = "underlyingDataTables"; + // DPI_UnderlyingDataTableColumn, having type UnderlyingDataTableColumnPresModel + ParameterId["UnderlyingDataTableColumn"] = "underlyingDataTableColumn"; + // DPI_UnderlyingDataTableColumns, having type UnderlyingDataTableColumnPresModel[] + ParameterId["UnderlyingDataTableColumns"] = "underlyingDataTableColumns"; + // DPI_PageCacheID, having type PageCacheIDPresModel + ParameterId["PageCacheID"] = "pageCacheId"; + // DPI_RelationalPageCacheID, having type PageCacheIDPresModel + ParameterId["RelationalPageCacheID"] = "relationalPageCacheId"; + // DPI_SearchResultsCacheID, having type PageCacheIDPresModel + ParameterId["SearchResultsCacheID"] = "searchResultsCacheId"; + // DPI_PageInfo, having type PageInfoPresModel + ParameterId["PageInfo"] = "pageInfo"; + // DPI_RowColPair, having type RowColPairPresModel + ParameterId["RowColPair"] = "rowColPair"; + // DPI_TopLeftRowCol, having type RowColPairPresModel + ParameterId["TopLeftRowCol"] = "topLeftRowCol"; + // DPI_BotRightRowCol, having type RowColPairPresModel + ParameterId["BotRightRowCol"] = "botRightRowCol"; + // DPI_RowColPairs, having type RowColPairPresModel[] + ParameterId["RowColPairs"] = "rowColPairs"; + // DPI_TableViewCacheInfo, having type TableViewCachePresModel + ParameterId["TableViewCacheInfo"] = "tableViewCacheInfo"; + // DPI_TableViewInfo, having type tableViewInfoPresModel + ParameterId["TableViewInfo"] = "tableViewInfo"; + // DPI_TableViewColumnInfo, having type TableViewColumnInfoPresModel + ParameterId["TableViewColumnInfo"] = "tableViewColumnInfo"; + // DPI_TableViewColumns, having type TableViewColumnInfoPresModel[] + ParameterId["TableViewColumns"] = "tableViewColumns"; + // DPI_TableViewPageItem, having type TableViewPageItemPresModel + ParameterId["TableViewPageItem"] = "tableViewPageItem"; + // DPI_TableViewPageColumns, having type TableViewPageItemPresModel[] + ParameterId["TableViewPageColumns"] = "tableViewPageColumns"; + // DPI_TableViewPageRow, having type TableViewPageRowPresModel + ParameterId["TableViewPageRow"] = "tableViewPageRow"; + // DPI_TableViewPageRows, having type TableViewPageRowPresModel[] + ParameterId["TableViewPageRows"] = "tableViewPageRows"; + // DPI_TableViewPage, having type TableViewPagePresModel + ParameterId["TableViewPage"] = "tableViewPage"; + // DPI_CategoricalValuePicker, having type CategoricalValuePickerPresModel + ParameterId["CategoricalValuePicker"] = "categoricalValuePicker"; + // DPI_AnnotationShapeBorderStyle, having type LineStylePresModel + ParameterId["AnnotationShapeBorderStyle"] = "annotationShapeBorderStyle"; + // DPI_AnotationShapeStrokeStyle, having type LineStylePresModel + ParameterId["AnotationShapeStrokeStyle"] = "annotationShapeStrokeStyle"; + // DPI_CategoricalBinEditorPresModel, having type CategoricalBinEditorPresModel + ParameterId["CategoricalBinEditorPresModel"] = "categoricalBinEditor"; + // DPI_CategoricalBinItem, having type CategoricalBinItemPresModel + ParameterId["CategoricalBinItem"] = "categoricalBinItemPresModel"; + // DPI_CategoricalBinItems, having type CategoricalBinItemPresModel[] + ParameterId["CategoricalBinItems"] = "categoricalBinItemPresModels"; + // DPI_MeasurePickerFieldInfo, having type MeasurePickerFieldInfoPresModel + ParameterId["MeasurePickerFieldInfo"] = "measurePickerFieldInfo"; + // DPI_MeasurePickerFields, having type MeasurePickerFieldInfoPresModel[] + ParameterId["MeasurePickerFields"] = "measurePickerFields"; + // DPI_MeasureAggregationInfo, having type MeasureAggregationInfoPresModel + ParameterId["MeasureAggregationInfo"] = "measureAggregationInfo"; + // DPI_MeasureAggregations, having type MeasureAggregationInfoPresModel[] + ParameterId["MeasureAggregations"] = "measureAggregations"; + // DPI_TuplePair, having type TuplePairPresModel + ParameterId["TuplePair"] = "tuplePair"; + // DPI_DimensionBound, having type DimensionBoundPresModel + ParameterId["DimensionBound"] = "dimensionBound"; + // DPI_PerspectiveBounds, having type DimensionBoundPresModel[] + ParameterId["PerspectiveBounds"] = "perspectiveBounds"; + // DPI_FilterPerspectiveInfoPresModel, having type FilterPerspectiveInfoPresModel + ParameterId["FilterPerspectiveInfoPresModel"] = "filterPerspectiveInfo"; + // DPI_TableRelevance, having type TableRelevancePresModel + ParameterId["TableRelevance"] = "tableRelevance"; + // DPI_AddInRegistrationPresModel, having type AddInRegistrationPresModel + ParameterId["AddInRegistrationPresModel"] = "addInRegistrationPresModel"; + // DPI_AddInRegistrationPresModelList, having type AddInRegistrationPresModel[] + ParameterId["AddInRegistrationPresModelList"] = "addInRegistrationPresModelList"; + // DPI_AddInDashboardAuthoringWidget, having type AddInDashboardWidgetPresModel + ParameterId["AddInDashboardAuthoringWidget"] = "addInDashboardAuthoringWidgetPresModel"; + // DPI_AddInInstance, having type AddInInstancePresModel + ParameterId["AddInInstance"] = "addInInstancePresModel"; + // DPI_AddInLocator, having type AddInLocatorPresModel + ParameterId["AddInLocator"] = "addInLocatorPresModel"; + // DPI_AddInContext, having type AddInContext + ParameterId["AddInContext"] = "addInContext"; + // DPI_AddInMode, having type AddInMode + ParameterId["AddInMode"] = "addInMode"; + // DPI_SetAxisDataValueResult, having type SetAxisDataValueResult + ParameterId["SetAxisDataValueResult"] = "setAxisDataValueResult"; + // DPI_AxisExtentStartType, having type AxisExtentType + ParameterId["AxisExtentStartType"] = "axisExtentStartType"; + // DPI_AxisExtentEndType, having type AxisExtentType + ParameterId["AxisExtentEndType"] = "axisExtentEndType"; + // DPI_AxisExtentsType, having type AxisExtentType + ParameterId["AxisExtentsType"] = "axisExtentsType"; + // DPI_AddInEnvironment, having type AddInEnvironmentPresModel + ParameterId["AddInEnvironment"] = "addInEnvironmentPresModel"; + // DPI_AddInDashboardInfo, having type AddInDashboardInfoPresModel + ParameterId["AddInDashboardInfo"] = "addInDashboardInfoPresModel"; + // DPI_AddInSettingsInfo, having type AddInSettingsInfoPresModel + ParameterId["AddInSettingsInfo"] = "addInSettingsInfo"; + // DPI_AddInBootstrapInfo, having type AddInBootstrapInfoPresModel + ParameterId["AddInBootstrapInfo"] = "addInBootstrapInfo"; + // DPI_AddInDebugSettings, having type AddInDebugSettingsPresModel + ParameterId["AddInDebugSettings"] = "addInDebugSettings"; + // DPI_RichText, having type RichTextPresModel + ParameterId["RichText"] = "richText"; + // DPI_RichTextKeywordSubList, having type RichTextKeywordSubListPresModel + ParameterId["RichTextKeywordSubList"] = "richTextKeywordsSublist"; + // DPI_RichTextKeywordSubLists, having type RichTextKeywordSubListPresModel[] + ParameterId["RichTextKeywordSubLists"] = "richTextKeywordSublists"; + // DPI_RichTextKeywordList, having type RichTextKeywordListPresModel + ParameterId["RichTextKeywordList"] = "richTextKeywordsList"; + // DPI_RichTextBlockStyle, having type RichTextBlockStylePresModel + ParameterId["RichTextBlockStyle"] = "richTextBlockStyle"; + // DPI_RichTextContentStyle, having type RichTextContentStylePresModel + ParameterId["RichTextContentStyle"] = "richTextContentStyle"; + })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); + + +/***/ }, +/* 82 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(79); + var CommandIds_1 = __webpack_require__(83); + var Params_1 = __webpack_require__(81); + var CommandMappingRegistry_1 = __webpack_require__(84); + var CommandRegistration_1 = __webpack_require__(85); + var CommandMappingRegistryFactory = (function () { + function CommandMappingRegistryFactory() { + } + /** + * Creates and populates a new CommandMappingRegistry for the specific version number requested + * + * @static + * @param {VersionNumber} versionNumber + * @param {boolean} runningInDesktop + * @returns {CommandMappingRegistry} + * @memberof CommandMappingRegistryFactory + */ + CommandMappingRegistryFactory.createCommandMappingRegistry = function (versionNumber, runningInDesktop) { + var result = new CommandMappingRegistry_1.CommandMappingRegistry(); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.InitializeExtension, CommandIds_1.DocCommands.InitializeAddInInstance, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionLocator, Params_1.ParameterId.AddInLocator)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionBootstrapInfo, Params_1.ParameterId.AddInBootstrapInfo))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetUnderlyingData, CommandIds_1.DocCommands.GetUnderlyingData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IncludeAllColumns, Params_1.ParameterId.IncludeAllColumns), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingDataTable, Params_1.ParameterId.UnderlyingDataTable))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSummaryData, CommandIds_1.DocCommands.GetSummaryData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingSummaryDataTable, Params_1.ParameterId.UnderlyingDataTable))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSourceData, CommandIds_1.DocCommands.GetDataSourceData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ColumnsToInclude, Params_1.ParameterId.FieldDisplayNames)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceDataTable, Params_1.ParameterId.UnderlyingDataTable))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyCategoricalFilter, CommandIds_1.DocCommands.CategoricalFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterValues, Params_1.ParameterId.FilterAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterUpdateType, Params_1.ParameterId.FilterUpdateType), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IsExcludeMode, Params_1.ParameterId.Exclude, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyRangeFilter, CommandIds_1.DocCommands.RangeFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMin, Params_1.ParameterId.RangeMin, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMax, Params_1.ParameterId.RangeMax, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeNullOption, Params_1.ParameterId.Included, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearFilter, CommandIds_1.DocCommands.ResetFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetSelectedMarks, CommandIds_1.DocCommands.GetSelectionData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectedData, Params_1.ParameterId.SelectionData))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetHighlightedMarks, CommandIds_1.DocCommands.GetHighlightedData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HighlightedData, Params_1.ParameterId.HighlightedData))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SaveExtensionSettings, CommandIds_1.DocCommands.SaveAddInSettings, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionLocator, Params_1.ParameterId.AddInLocator), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SettingsValues, Params_1.ParameterId.AddInSettings)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionSettingsInfo, Params_1.ParameterId.AddInSettingsInfo))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetParametersForSheet, CommandIds_1.DocCommands.GetParameterModels, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfos, Params_1.ParameterId.ParameterCtrls))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.FindParameter, CommandIds_1.DocCommands.FindParameterModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterCaption, Params_1.ParameterId.FieldCaption, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.FieldNameString, true)], + // We might not get a response if the parameter isn't found + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl, true))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ChangeParameterValue, CommandIds_1.DocCommands.SetParameterValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.GlobalFieldName), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterValue, Params_1.ParameterId.ValueStr)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearSelectedMarks, CommandIds_1.DocCommands.ClearSelectedMarks, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)])); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SelectByValue, CommandIds_1.DocCommands.SelectByValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.Selection, Params_1.ParameterId.Selection, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectionUpdateType, Params_1.ParameterId.SelectionUpdateType), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HierValSelectionModels, Params_1.ParameterId.HierValSelectionModels, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DimValSelectionModels, Params_1.ParameterId.DimValSelectionModels, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantRangeSelectionModels, Params_1.ParameterId.QuantRangeSelectionModels, true)])); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSources, CommandIds_1.DocCommands.GetSchema, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSchema, Params_1.ParameterId.DataSchema))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.RefreshDataSource, (runningInDesktop) ? CommandIds_1.UICommands.RefreshDataSourceUI : CommandIds_1.SrvCommands.RefreshData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], undefined, (runningInDesktop) ? CommandRegistration_1.CommandNamespace.TabUI : CommandRegistration_1.CommandNamespace.TabSrv)); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetFilters, CommandIds_1.DocCommands.GetWorksheetFilters, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.WorksheetFilters, Params_1.ParameterId.FiltersInfo))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetCategoricalDomain, CommandIds_1.DocCommands.GetCategoricalDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.CategoricalDomain, Params_1.ParameterId.CategoricalDomain))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetRangeDomain, CommandIds_1.DocCommands.GetQuantitativeDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantitativeDomain, Params_1.ParameterId.QuantitativeDomain))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetJoinDescription, CommandIds_1.DocCommands.GetJoinDescriptionPresModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.JoinDescription, Params_1.ParameterId.JoinDescription))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetConnectionDescriptionSummaries, CommandIds_1.DocCommands.GetConnectionDescriptionSummaryPresModels, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ConnectionDescriptionSummaries, Params_1.ParameterId.ConnectionDescriptionSummaries))); + return result; + }; + return CommandMappingRegistryFactory; + }()); + exports.CommandMappingRegistryFactory = CommandMappingRegistryFactory; + + +/***/ }, +/* 83 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable */ + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/commands-enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-cmd-wrappers.data'] + Object.defineProperty(exports, "__esModule", { value: true }); + var DocCommands; + (function (DocCommands) { + // Saves the settings for the specified add-in id + DocCommands["SaveAddInSettings"] = "save-add-in-settings"; + // Gets the pres model for an add-in instance. + DocCommands["GetAddInInstancePresModel"] = "get-add-in-instance-pres-model"; + // Gets the pres model for the dashboard authoring widget for add-ins. + DocCommands["GetAddInDashboardAuthoringWidgetPresModel"] = "get-add-in-dashboard-authoring-widget-pres-model"; + // Gets the necessary information for an add-in to initialize itself. + DocCommands["InitializeAddInInstance"] = "initialize-add-in-instance"; + // Enables or disable javascript debugging of an add-in. + DocCommands["SetAddInJsDebuggingEnabled"] = "set-add-in-js-debugging-enabled"; + // Whether or not we should pause before loading. If missing, toggle the value + DocCommands["SetPauseBeforeLoadingAddIn"] = "set-pause-before-loading-add-in"; + // Reloads the Add-In widget and web page. + DocCommands["ReloadAddIn"] = "reload-add-in"; + // Retrieves the context menu for a dashboard add-in. + DocCommands["GetAddInZoneContextMenu"] = "get-add-in-zone-context-menu"; + // Gets the pres model which indicates what the debug settings for add-ins is. + DocCommands["GetAddInDebugSettingsPresModel"] = "get-add-in-debug-settings-pres-model"; + // Primary use is for building context menus + DocCommands["IsSelectionAnEditableParameter"] = "is-selection-an-editable-parameter"; + // Check if selection can be used as base for creating a new parameter. Primary use is for building context menus + DocCommands["GetCreateParameterState"] = "get-create-parameter-state"; + // Uses EditParameter to get and return info about the presmodel without maintaining the controller + DocCommands["GetParameterEditInfo"] = "get-parameter-edit-info"; + // Initialize the controller and its stored parameter then return a populated presmodel + DocCommands["CreateParameter"] = "create-parameter"; + // Same underlying logic as CreateParameter but edits rather than creating a new parameter + DocCommands["EditParameter_New"] = "edit-parameter-new"; + // Add a member of a parameter domain. Changes are applied to intermediate state and saved on commit + DocCommands["AddParameterMember"] = "add-parameter-member"; + // Edit a member of a parameter domain. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterMember"] = "edit-parameter-member"; + // Delete a series of ranges of members from the parameter list. + DocCommands["DeleteParameterMembers"] = "delete-parameter-members"; + // Copy a series of ranges of members of a parameter list + DocCommands["CopyParameterMembers"] = "copy-parameter-members"; + // Move a series of ranges of members of a parameter list + DocCommands["MoveParameterMembers"] = "move-parameter-members"; + // Change domain of a parameter. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterDomainType"] = "edit-parameter-domain-type"; + // Change datatype of a parameter. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterDataType"] = "edit-parameter-data-type"; + // Change display format of a parameter. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterFormat"] = "edit-parameter-format"; + // Validate changes to a parameter's range domain and apply to intermediate state. Changes are saved on commit + DocCommands["EditParameterRange"] = "edit-parameter-range"; + // Edit the value of a non-list domain parameter + DocCommands["EditParameterValue"] = "edit-parameter-value"; + // Edit the value of a list domain parameter + DocCommands["EditParameterValueIndex"] = "edit-parameter-value-index"; + // Update the parameter caption and description - used to keep backend in sync. No verification/return is requried. + DocCommands["EditParameterDisplayInfo"] = "edit-parameter-display-info"; + // Update the domain of the parameter using a field (column or parameter) as a base + DocCommands["UpdateParameterFromField"] = "update-parameter-from-field"; + // Update the list domain of a parameter from a plain text representation of values + DocCommands["ParseParameterListDomain"] = "parse-parameter-list-domain"; + // Clears the parameter's domain of all members + DocCommands["ClearParameterListDomain"] = "clear-parameter-list-domain"; + // Creates or edits parameter from intermediate state. Takes a few properties that are cached in dialog and applies them pre-commit. + DocCommands["CommitParameterEdits"] = "commit-parameter-edits"; + // Gets the model for a particular parameter or returns an empty response if one is not found. + DocCommands["FindParameterModel"] = "find-parameter-model"; + // Gets the pres model for the show data dialog + DocCommands["GetShowDataPresModel"] = "get-show-data-pres-model"; + // Export underlying data from the ShowDataDialog to a CSV file + DocCommands["ShowDataExportToCSV"] = "show-data-export-to-csv"; + // Gets the summary data for a worksheet + DocCommands["GetSummaryData"] = "get-summary-data"; + // Gets the underlying data for a worksheet + DocCommands["GetUnderlyingData"] = "get-underlying-data"; + // Gets the underlying data for a specific data source. + DocCommands["GetDataSourceData"] = "get-data-source-data"; + // Select all marks that have the tuple's value for the given field . + DocCommands["SelectByTupleValue"] = "select-by-tuple-value"; + // Clear all the selected marks for the given worksheet + DocCommands["ClearSelectedMarks"] = "clear-selected-marks"; + // Creates or updates and existing filter based on the provided updates. + DocCommands["ApplyCategoricalFilterUpdates"] = "apply-categorical-filter-updates"; + // Search filter domain for text and return any matching tuples. + DocCommands["CategoricalFilterSearch"] = "categorical-filter-search"; + // Clear all members from the table of the identified cache. + DocCommands["CategoricalFilterClearRelationalCache"] = "categorical-filter-clear-relational-cache"; + // Create tuples for an existing filter from supplied text. + DocCommands["GetCategoricalFilterTuplesFromText"] = "get-categorical-filter-tuples-from-text"; + // Returns a presmodel backing a categorical filter, initializing a data cache for fast lookup of the filter's member domain. + DocCommands["GetCategoricalFilter"] = "get-categorical-filter"; + // Retrieves a page of data to display in the filter's list domain + DocCommands["GetCategoricalFilterDomainPage"] = "get-categorical-filter-domain-page"; + // Reset filter to committed state + DocCommands["ResetCategoricalFilterDeferred"] = "reset-categorical-filter-deferred"; + // Use uncommitted state to reset the filter's controller + DocCommands["RecreateCategoricalFilterController"] = "recreate-categorical-filter-controller"; + // Validates a Categroical Filter name. + DocCommands["ValidateCategoricalFilterName"] = "validate-categorical-filter-name"; + // Retrieves the field aggregations allowed for the field being filtered. + DocCommands["GetFilterFieldAggregations"] = "get-filter-field-aggregations"; + // Gets a summary of the filter pattern. + DocCommands["GetCategoricalFilterPatternSummary"] = "get-categorical-filter-pattern-summary"; + // Gets a summery of the filter condition. + DocCommands["GetCategoricalFilterConditionSummary"] = "get-categorical-filter-condition-summary"; + // Load the current minimum and maximum data value range for the condition field. + DocCommands["LoadCategoricalFilterConditionFieldValueRange"] = "load-categorical-filter-condition-field-value-range"; + // Validates a Categorical Filter's condition formula and re-writes it. + DocCommands["ValidateCategoricalFilterConditionFormula"] = "validate-categorical-filter-condition-formula"; + // Gets a summery of the filter limit. + DocCommands["GetCategoricalFilterLimitSummary"] = "get-categorical-filter-limit-summary"; + // Validates a Categorical Filter's limit count. + DocCommands["ValidateCategoricalFilterLimitCount"] = "validate-categorical-filter-limit-count"; + // Validates a Categorical Filter's limit formula, and re-writes the formula. + DocCommands["ValidateCategoricalFilterLimitFormula"] = "validate-categorical-filter-limit-formula"; + // Validates a Categorical Filter's limit. + DocCommands["ValidateCategoricalFilterLimit"] = "validate-categorical-filter-limit"; + // Inform cache when a user changes the range + DocCommands["CategoricalFilterSetRangeTypeDeferred"] = "categorical-filter-set-range-type-deferred"; + // Inform cache when a user changes whether the selection is exclusive + DocCommands["CategoricalFilterSetSelectionExclusiveDeferred"] = "categorical-filter-set-selection-exclusive-deferred"; + // Inform cache when a user changes whether an empty selection should be considered a selection of 'All' in a Manual selection mode + DocCommands["CategoricalFilterSetUseAllWhenManualIsEmptyDeferred"] = "categorical-filter-set-use-all-when-manual-is-empty-deferred"; + // Inform cache when a user alters the preset type + DocCommands["CategoricalFilterSetPresetTypeDeferred"] = "categorical-filter-set-preset-type-deferred"; + // Inform cache the user has selected one or more members + DocCommands["CategoricalFilterSelectRelationalMembersDeferred"] = "categorical-filter-select-relational-members-deferred"; + // Inform cache the user has deselected one or more members + DocCommands["CategoricalFilterDeselectRelationalMembersDeferred"] = "categorical-filter-deselect-relational-members-deferred"; + // Inform cache when a user selects everything in the domain + DocCommands["CategoricalFilterSelectAllRelationalMembersDeferred"] = "categorical-filter-select-all-relational-members-deferred"; + // Inform cache when a user deselects everything in the domain + DocCommands["CategoricalFilterDeselectAllRelationalMembersDeferred"] = "categorical-filter-deselect-all-relational-members-deferred"; + // Inform cache the user wants to see a different domain (e.g. relevant values only) + DocCommands["CategoricalFilterSetDomainTypeDeferred"] = "categorical-filter-set-domain-type-deferred"; + // Set whether filters apply to totals as well as non-totals table calcs + DocCommands["FilterApplyToTotalTableCalcs"] = "filter-apply-to-total-table-calcs"; + // Gets the list of filters used in a worksheet + DocCommands["GetWorksheetFilters"] = "get-worksheet-filters"; + // Gets the domain for a categorical Filter + DocCommands["GetCategoricalDomain"] = "get-categorical-domain"; + // Gets the domain for a quantitative Filter + DocCommands["GetQuantitativeDomain"] = "get-quantitative-domain"; + // Creates a datasource filter store and returns a list of the current datasource filters. + DocCommands["CreateDatasourceFilterStore"] = "create-datasource-filter-store"; + // Commits the pending datasource filter changes in the filter store. + DocCommands["CommitDatasourceFilterStore"] = "commit-datasource-filter-store"; + // Gets the list of datasource fields that can be filtered. + DocCommands["GetDatasourceFilterFieldPickerModel"] = "get-datasource-filter-field-picker-model"; + // Get field information needed for creating a datasource filter. + DocCommands["GetDatasourceFilterFieldInfo"] = "get-datasource-filter-field-info"; + // Gets a filter presentation model form a filter store. + DocCommands["GetFilterFromStore"] = "get-filter-from-store"; + // Removes a filter from a filter store. + DocCommands["RemoveFilterFromStore"] = "remove-filter-from-store"; + // Releases a filter store, and its resources, once it is no longer needed. + DocCommands["ReleaseFilterStore"] = "release-filter-store"; + // + DocCommands["GetHighlightedData"] = "get-highlighted-data"; + // + DocCommands["GetSelectionData"] = "get-selection"; + // + DocCommands["Select"] = "select"; + // + DocCommands["SelectAll"] = "select-all"; + // + DocCommands["SelectByValue"] = "select-by-value"; + // + DocCommands["SelectNoneIncludingMaster"] = "select-none-including-master"; + // + DocCommands["AddManualItemsToFilter"] = "add-manual-items-to-filter"; + // + DocCommands["CategoricalFilter"] = "categorical-filter"; + // + DocCommands["CategoricalFilterByIndex"] = "categorical-filter-by-index"; + // + DocCommands["ChangeSharedFilter"] = "change-shared-filter"; + // + DocCommands["ClearContextFilters"] = "clear-context-filters"; + // + DocCommands["ClearExistingFilter"] = "clear-existing-filter"; + // + DocCommands["DefaultFilter"] = "default-filter"; + // + DocCommands["FilterGeo"] = "filter-geo"; + // + DocCommands["FilterNeg"] = "filter-neg"; + // + DocCommands["FilterNulls"] = "filter-nulls"; + // + DocCommands["FilterTargets"] = "filter-targets"; + // + DocCommands["GetSharedFilterPresModel"] = "get-shared-filter-pres-model"; + // + DocCommands["HierarchicalFilter"] = "hierarchical-filter"; + // + DocCommands["KeepOnlyOrExclude"] = "keep-only-or-exclude"; + // + DocCommands["RangeFilter"] = "range-filter"; + // + DocCommands["RelDateFilter"] = "relative-date-filter"; + // + DocCommands["ResetFilter"] = "reset-filter"; + // + DocCommands["ShowGeoAtDefault"] = "show-geo-at-default"; + // + DocCommands["ShowSVAtDefault"] = "show-sv-at-default"; + // + DocCommands["ToggleLockQuickFilters"] = "toggle-lock-quick-filters"; + // + DocCommands["AddDataConnection"] = "add-data-connection"; + // + DocCommands["AddDrillPath"] = "add-drill-path"; + // + DocCommands["AddCredentialsFromKeychain"] = "add-credentials-from-keychain"; + // + DocCommands["AddCredentialsFromKeychainFile"] = "add-credentials-from-keychain-file"; + // + DocCommands["AddFieldFolder"] = "add-field-folder"; + // + DocCommands["AddSubtotals"] = "add-subtotals"; + // + DocCommands["AddToDrillPath"] = "add-to-drill-path"; + // + DocCommands["AddToFieldFolder"] = "add-to-field-folder"; + // + DocCommands["AggregateMeasuresFlag"] = "aggregate-measures"; + // + DocCommands["ApplyCalculation"] = "apply-calculation"; + // + DocCommands["ApplyPageSetupOptions"] = "apply-page-setup-options"; + // + DocCommands["ApplyTableOptions"] = "apply-table-options"; + // + DocCommands["ApplyTypeInPill"] = "apply-type-in-pill"; + // + DocCommands["Assert"] = "assert"; + // + DocCommands["AttemptConnectDataSourcesOnSheet"] = "attempt-connect-datasources-on-sheet"; + // + DocCommands["AttemptConnectWorkbook"] = "attempt-connect-workbook"; + // + DocCommands["AttemptDataSourcesConnection"] = "attempt-datasources-connection"; + // + DocCommands["AutoUpdates"] = "auto-update"; + // + DocCommands["Brush"] = "highlight"; + // + DocCommands["BrushSpecial"] = "highlight-special"; + // + DocCommands["BuildDataSchemaDataSourceContextMenu"] = "build-data-schema-data-source-context-menu"; + // + DocCommands["BuildDataSchemaContextMenu"] = "build-data-schema-context-menu"; + // + DocCommands["BuildDataSchemaFieldContextMenu"] = "build-data-schema-field-context-menu"; + // + DocCommands["BuildDataSchemaDrillPathContextMenu"] = "build-data-schema-drill-path-context-menu"; + // + DocCommands["BuildFileTableInfoPresModel"] = "build-file-table-info-pres-model"; + // + DocCommands["BuildSheetTabContextMenu"] = "build-sheet-tab-context-menu"; + // + DocCommands["CancelDataSourcePresModel"] = "cancel-datasource-pres-model"; + // + DocCommands["CatBinMergeSplitLabel"] = "categorical-bin-merge-split"; + // + DocCommands["CategoricalQuickFilterEdit"] = "categorical-quick-filter-edit"; + // + DocCommands["CategoricalQuickFilterExcludeValues"] = "categorical-quick-filter-exclude-values"; + // + DocCommands["CategoricalQuickFilterIncludeAllWhenEmpty"] = "categorical-quick-filter-include-all-when-empty"; + // + DocCommands["CategoricalQuickFilterMode"] = "categorical-quick-filter-mode"; + // + DocCommands["CategoricalQuickFilterPattern"] = "categorical-quick-filter-pattern"; + // + DocCommands["ChangeAggregation"] = "change-aggregation"; + // + DocCommands["ChangeAlphaLevel"] = "change-alpha-level"; + // + DocCommands["ChangeBorder"] = "change-border"; + // + DocCommands["ChangeFieldType"] = "change-field-type"; + // + DocCommands["ChangeForecastColumnType"] = "change-forecast-column-type"; + // + DocCommands["ChangeHalo"] = "change-halo"; + // + DocCommands["ChangeMarkers"] = "change-markers"; + // + DocCommands["ChangeSize"] = "change-size"; + // + DocCommands["ChangeSheetTabColor"] = "change-sheet-tab-color"; + // + DocCommands["ClearAllAxisRanges"] = "clear-axis-ranges"; + // + DocCommands["ClearCalcModel"] = "clear-calculation-model"; + // + DocCommands["ClearFilters"] = "clear-filters"; + // + DocCommands["ClearFormatting"] = "clear-formatting"; + // + DocCommands["ClearFuture"] = "clear-future"; + // + DocCommands["ClearLayout"] = "clear-layout"; + // + DocCommands["ClearQuickFilter"] = "clear-quick-filter"; + // + DocCommands["ClearSorts"] = "clear-sorts"; + // + DocCommands["CloseConnection"] = "close-connection"; + // + DocCommands["CloseDataSource"] = "close-data-source"; + // + DocCommands["ConnectionAddGoogleAnalyticsDimension"] = "connection-add-google-analytics-dimension"; + // + DocCommands["ConnectionAddGoogleAnalyticsMeasure"] = "connection-add-google-analytics-measure"; + // + DocCommands["ConnectionAddNewTable"] = "connection-add-new-table"; + // + DocCommands["ConnectionAddCoalesce"] = "connection-add-coalesce"; + // + DocCommands["ConnectionAddPivot"] = "connection-add-pivot"; + // + DocCommands["ConnectionConvertToUnionAndEdit"] = "connection-convert-to-union-and-edit"; + // + DocCommands["ConnectionConvertToUnion"] = "connection-convert-to-union"; + // + DocCommands["ConnectionEditUnion"] = "connection-edit-union"; + // + DocCommands["ConnectionAddOrEditBatchUnion"] = "connection-add-or-edit-batch-union"; + // + DocCommands["ConnectionChangeTableProperty"] = "connection-change-table-property"; + // + DocCommands["ConnectionCountEntity"] = "connection-count-entity"; + // + DocCommands["ConnectionDataServerFetchMoreDatasources"] = "connection-dataserver-fetch-more-datasources"; + // + DocCommands["ConnectionDataServerProjectSelect"] = "connection-dataserver-change-selected-project"; + // + DocCommands["ConnectionDataServerUpdateFetchParameters"] = "connection-dataserver-update-fetch-parameters"; + // + DocCommands["ConnectionDataServerFlushCache"] = "connection-dataserver-flush-cache"; + // + DocCommands["ConnectionDeleteAllTables"] = "connection-delete-all-tables"; + // + DocCommands["ConnectionDeleteTable"] = "connection-delete-table"; + // + DocCommands["ConnectionEditGoogleAnalyticsAccount"] = "connection-edit-google-analytics-account"; + // + DocCommands["ConnectionEditGoogleAnalyticsDateRange"] = "connection-edit-google-analytics-date-range"; + // + DocCommands["ConnectionEditGoogleAnalyticsMeasureGroup"] = "connection-edit-google-analytics-measure-group"; + // + DocCommands["ConnectionToggleGAQueryPartitioning"] = "connection-toggle-ga-query-partitioning"; + // + DocCommands["ConnectionEditGoogleAnalyticsProperty"] = "connection-edit-google-analytics-property"; + // + DocCommands["ConnectionEditGoogleAnalyticsView"] = "connection-edit-google-analytics-view"; + // + DocCommands["ConnectionEditGoogleAnalyticsSegment"] = "connection-edit-google-analytics-segment"; + // + DocCommands["ConnectionEditJoinClauses"] = "connection-edit-join-clauses"; + // + DocCommands["ConnectionEditJoinType"] = "connection-edit-join-type"; + // + DocCommands["ConnectionEditSQLText"] = "connection-edit-sql-text"; + // + DocCommands["ConnectionFetchEntity"] = "connection-fetch-entity"; + // + DocCommands["ConnectionSetForceExtractRefresh"] = "connection-set-force-extract-refresh"; + // + DocCommands["ConnectionPrepareDataSourceForEdit"] = "connection-prepare-datasource-for-edit"; + // + DocCommands["ConnectionClearRefreshAttributes"] = "connection-clear-refresh-attributes"; + // + DocCommands["ConnectionRemoveGoogleAnalyticsDimension"] = "connection-remove-google-analytics-dimension"; + // + DocCommands["ConnectionRemoveGoogleAnalyticsMeasure"] = "connection-remove-google-analytics-measure"; + // + DocCommands["ConnectionRemoveCoalesce"] = "connection-remove-coalesce"; + // + DocCommands["ConnectionRemovePivot"] = "connection-remove-pivot"; + // + DocCommands["ConnectionAddDateParseFormats"] = "connection-add-date-parse-formats"; + // + DocCommands["ConnectionRenameTable"] = "connection-rename-table"; + // + DocCommands["ConnectionReplaceRelationWithSQLText"] = "connection-replace-relation-with-sql-text"; + // + DocCommands["ConnectionReplaceTable"] = "connection-replace-table"; + // + DocCommands["ConnectionResetTableAlias"] = "connection-reset-table-alias"; + // + DocCommands["ConnectionSelectCatalog"] = "connection-select-catalog"; + // + DocCommands["ConnectionSelectCube"] = "connection-select-cube"; + // + DocCommands["ConnectionSelectStoredProcedure"] = "connection-select-stored-procedure"; + // + DocCommands["ConnectionSelectBigQueryLegacySQLCheckBox"] = "connection-select-bigquery-legacy-check"; + // + DocCommands["ConnectionToggleHasHeaderRow"] = "connection-toggle-has-header-row"; + // + DocCommands["ConnectionToggleTableCleaning"] = "connection-toggle-table-cleaning"; + // + DocCommands["ConnectionToggleUseExtract"] = "connection-toggle-use-extract"; + // + DocCommands["ConnectionViewTableCleaningResults"] = "connection-view-table-cleaning-results"; + // + DocCommands["ConnectToDataServerSource"] = "connect-data-server-datasource"; + // + DocCommands["ConsiderZerosEmptyFlag"] = "consider-zeros-empty"; + // + DocCommands["ConvertUnnamedFields"] = "convert-unnamed-fields"; + // + DocCommands["Crash"] = "crash"; + // + DocCommands["CreateAggregateRole"] = "create-aggregate-role"; + // + DocCommands["CreateConnection"] = "create-connection"; + // + DocCommands["CreateDefaultQuickFilter"] = "create-default-quick-filter"; + // + DocCommands["CreateTypeInPill"] = "create-type-in-pill"; + // + DocCommands["CustomDataGridFieldOrder"] = "custom-datagrid-field-order"; + // + DocCommands["CustomDateAggregation"] = "custom-date-aggregation"; + // + DocCommands["CustomSplitField"] = "custom-split-field"; + // + DocCommands["DebugAssertion"] = "debug-assertion"; + // + DocCommands["DecrementParameterValue"] = "decr-parameter-value"; + // + DocCommands["DeleteFields"] = "delete-calculation-fields-command"; + // + DocCommands["DeleteSheet"] = "delete-sheet"; + // + DocCommands["DescribeDrillPath"] = "describe-drill-path"; + // + DocCommands["DescribeSortFilter"] = "describe-sort-filter"; + // + DocCommands["DismissNullWart"] = "dismiss-null-wart"; + // + DocCommands["DomainQuickFilter"] = "domain-quick-filter"; + // + DocCommands["DoubleFreeCrash"] = "double-free"; + // + DocCommands["DropNowhere"] = "drop-nowhere"; + // + DocCommands["DropOnSchemaViewer"] = "drop-on-schema-viewer"; + // + DocCommands["DropOnShelf"] = "drop-on-shelf"; + // + DocCommands["DropOnCalcEditor"] = "drop-on-calc-editor"; + // + DocCommands["DropOnShowMe"] = "drop-on-showme"; + // + DocCommands["DropPrepare"] = "drop-prepare"; + // + DocCommands["DualAxis"] = "dual-axis"; + // + DocCommands["DuplicateSheet"] = "duplicate-sheet"; + // + DocCommands["EditCopyCalc"] = "edit-copy-calc"; + // + DocCommands["EditDropLines"] = "edit-drop-lines"; + // + DocCommands["EditEnumeratedGroup"] = "edit-enumerated-group"; + // + DocCommands["EditNestedGroup"] = "edit-nested-group"; + // + DocCommands["EditPill"] = "edit-pill"; + // + DocCommands["EditPrimitiveType"] = "edit-primitive-type"; + // + DocCommands["EnableAllBrushing"] = "enable-all-highlights"; + // + DocCommands["EnableQuickFilter"] = "enable-quick-filter"; + // + DocCommands["EnableSheetBrushing"] = "enable-sheet-highlights"; + // + DocCommands["EnableThemedBrushing"] = "enable-themed-highlights"; + // + DocCommands["EnumerateVariables"] = "enumerate-variables"; + // + DocCommands["EnumerateVariableSelectionValues"] = "enumerate-variable-selection-values"; + // + DocCommands["EstablishConnection"] = "establish-connection"; + // + DocCommands["EstablishMatchingConnections"] = "establish-matching-connections"; + // + DocCommands["ExportDataToText"] = "export-data-to-text"; + // + DocCommands["ExtSvcConfig"] = "ext-svc-config"; + // + DocCommands["ExtSvcConfigConnect"] = "ext-svc-config-connect"; + // + DocCommands["Extract"] = "extract"; + // + DocCommands["SetDataGridCurrentTable"] = "set-data-grid-current-table"; + // + DocCommands["FetchTableRelevance"] = "fetch-table-relevance"; + // + DocCommands["FetchCachedTableRelevance"] = "fetch-cached-table-relevance"; + // + DocCommands["FlipLabels"] = "flip-labels"; + // + DocCommands["FloatingToolbar"] = "zoom-controls"; + // + DocCommands["FloatingToolbarToggle"] = "zoom-controls-toggle"; + // + DocCommands["ForecastConfig"] = "forecast-config"; + // + DocCommands["ForecastToggle"] = "forecast-toggle"; + // + DocCommands["FormatWorkbook"] = "format-workbook"; + // + DocCommands["GeographicSearchQuery"] = "geographic-search-query"; + // + DocCommands["GeographicSearchLoadData"] = "geographic-search-load-data"; + // + DocCommands["GeographicSearchIsDataDoneLoading"] = "geographic-search-data-done-loading"; + // + DocCommands["GeographicSearchToggleVisibility"] = "geographic-search-toggle-visibility"; + // + DocCommands["GetEditConnectionPresModel"] = "get-edit-connection-pres-model"; + // + DocCommands["GetEditEnumeratedGroupPresModel"] = "get-edit-enumerated-group-pres-model"; + // + DocCommands["GetEditNestedGroupPresModel"] = "get-edit-nested-group-pres-model"; + // + DocCommands["GetFrameFinderPresModel"] = "get-frame-finder-pres-model"; + // + DocCommands["GetGoogleSheetsListPresModel"] = "get-google-sheets-list-pres-model"; + // + DocCommands["GetGoogleSheetPanePresModel"] = "get-google-sheet-pane-pres-model"; + // + DocCommands["GetInitialSQLPresModel"] = "get-initial-sql-pres-model"; + // + DocCommands["GetQueryBandingPresModel"] = "get-query-banding-pres-model"; + // + DocCommands["GetTabbedAuthenticationPresModel"] = "get-tabbed-authentication-pres-model"; + // + DocCommands["GetActiveSheet"] = "get-active-sheet"; + // + DocCommands["GetAlphaLevel"] = "get-alpha-level"; + // + DocCommands["GetAppConfig"] = "get-app-config"; + // + DocCommands["GetDisabledSecondaryDSFields"] = "get-disabled-secondaryds-fields"; + // + DocCommands["GetBlendingFields"] = "get-blending-fields"; + // + DocCommands["GetCalculationPresModel"] = "get-calculation-pres-model"; + // + DocCommands["GetCategoricalColor"] = "get-categorical-color"; + // + DocCommands["GetClientInfo"] = "get-client-info"; + // + DocCommands["GetCommands"] = "get-commands"; + // + DocCommands["GetConnectionDescriptionPresModel"] = "get-connection-description-pres-model"; + // + DocCommands["GetDSDropdownPresModel"] = "get-ds-dropdown-pres-model"; + // + DocCommands["GetDataPreviewWindowMessagePresModel"] = "get-data-preview-window-pres-model"; + // + DocCommands["GetDataSourcePresModel"] = "get-datasource-pres-model"; + // + DocCommands["GetDataSourceSortPresModel"] = "get-datasource-sort-pres-model"; + // + DocCommands["GetDataSourcePropertiesPresModel"] = "get-datasource-properties-pres-model"; + // + DocCommands["GetConnectionSettingsPresModel"] = "get-connection-settings-pres-model"; + // + DocCommands["GetDashboard"] = "get-dashboard"; + // + DocCommands["GetDataPreview"] = "get-data-preview"; + // + DocCommands["GetDatabaseEnumerationPresModel"] = "get-database-enumeration-pres-model"; + // + DocCommands["GetDefaultColor"] = "get-default-color"; + // + DocCommands["GetDefaultShape"] = "get-default-shape"; + // + DocCommands["GetDragPresModelForText"] = "get-drag-pres-model-for-text"; + // + DocCommands["GetDropTargetPresModel"] = "get-drop-target-pres-model"; + // + DocCommands["GetEditDataServerConnectionPresModel"] = "get-edit-data-server-connection-pres-model"; + // + DocCommands["GetEditDropLinesModel"] = "get-edit-drop-lines-model"; + // + DocCommands["GetEncodingState"] = "get-encoding-state"; + // + DocCommands["GetEncodingTypeMenuModel"] = "get-encoding-type-menu"; + // + DocCommands["GetExtSvcConfig"] = "get-ext-svc-config"; + // + DocCommands["GetForecastPresModel"] = "get-forecast-pres-model"; + // + DocCommands["GetJoinDescriptionPresModel"] = "get-join-description-pres-model"; + // + DocCommands["GetQuickFilter"] = "get-quick-filter"; + // + DocCommands["GetQuickFilters"] = "get-quick-filters"; + // + DocCommands["GetReferenceLinePresModel"] = "get-reference-line-pres-model"; + // + DocCommands["GetParameters"] = "get-parameters"; + // + DocCommands["GetParameterModels"] = "get-parameter-models"; + // + DocCommands["GetParametersRegistryInfo"] = "get-params-registry-info"; + // + DocCommands["GetPivotPresModel"] = "get-pivot-pres-model"; + // + DocCommands["GetScene"] = "get-scene"; + // + DocCommands["GetSchemaEnumerationPresModel"] = "get-schema-enumeration-pres-model"; + // + DocCommands["GetSheetsInfo"] = "get-sheets-info"; + // + DocCommands["GetShowMe"] = "get-show-me"; + // + DocCommands["GetStandardConnectionEnumerationPresModel"] = "get-standard-connection-enumeration-pres-model"; + // + DocCommands["GetStoredProcedureEnumerationPresModel"] = "get-stored-procedure-enumeration-pres-model"; + // + DocCommands["GetStoredProcedureParametersPresModel"] = "get-stored-procedure-parameters-pres-model"; + // + DocCommands["GetTableEnumerationPresModel"] = "get-table-enumeration-pres-model"; + // + DocCommands["GetTableCleaningPresModel"] = "get-table-cleaning-pres-model"; + // + DocCommands["GetTargetFieldList"] = "get-target-field-list"; + // + DocCommands["GetTopLevelConnectionDescriptionPresModel"] = "get-top-level-connection-description-pres-model"; + // + DocCommands["GetTypeInPillPresModel"] = "get-type-in-pill-pres-model"; + // + DocCommands["GetUberTipPresModel"] = "get-ubertip-pres-model"; + // + DocCommands["GetUnionInfoPresModel"] = "get-union-info-pres-model"; + // + DocCommands["GetVisual"] = "get-visual"; + // + DocCommands["GetVizData"] = "get-viz-data"; + // + DocCommands["GetWarehouseEnumerationPresModel"] = "get-warehouse-enumeration-pres-model"; + // + DocCommands["GetWorkbook"] = "get-workbook"; + // + DocCommands["GetWorldUpdate"] = "get-world-update"; + // + DocCommands["GoToSheet"] = "goto-sheet"; + // + DocCommands["HeapCorruptionCrash"] = "corrupt-heap"; + // + DocCommands["HideColumnFieldLabel"] = "hide-column-field-label"; + // + DocCommands["HideEmptyColsFlag"] = "hide-empty-cols"; + // + DocCommands["HideEmptyRowsFlag"] = "hide-empty-rows"; + // + DocCommands["HideLabel"] = "hide-label"; + // + DocCommands["HideRowFieldLabel"] = "hide-row-field-label"; + // + DocCommands["HierarchicalQuickFilterUpdateSetFunction"] = "hierarchical-quick-filter-update-set-function"; + // + DocCommands["IncludeInTooltip"] = "include-in-tooltip"; + // + DocCommands["IncludeOtherCategoricalBin"] = "include-other-cat-bin"; + // + DocCommands["IncrementExtract"] = "increment-extract"; + // + DocCommands["IncrementParameterValue"] = "incr-parameter-value"; + // + DocCommands["CreateCalc"] = "create-calc"; + // + DocCommands["EditCalc"] = "edit-calc"; + // + DocCommands["InvokeHyperlink"] = "invoke-hyperlink"; + // + DocCommands["KeepOnlyOrExcludeSelection"] = "keep-only-or-exclude-selection"; + // + DocCommands["LabelDrill"] = "label-drill"; + // + DocCommands["LabelDrillCtx"] = "label-drill-ctx"; + // + DocCommands["LevelDrill"] = "level-drill"; + // + DocCommands["LoadUrl"] = "load-url"; + // + DocCommands["ListPublishedDataSources"] = "list-published-datasources"; + // + DocCommands["MarkLabel"] = "mark-label"; + // + DocCommands["MarkTrail"] = "mark-trail"; + // + DocCommands["MemoryDumpObjectCounts"] = "memory-dump-object-counts"; + // + DocCommands["MemoryLeak"] = "memory-leak"; + // + DocCommands["Merge"] = "merge-or-split"; + // + DocCommands["MigrateDataSource"] = "migrate-data-source"; + // + DocCommands["ModifyMarksInSet"] = "add-or-remove-marks"; + // + DocCommands["MoveAreaAnnotationText"] = "move-area-annotation-text"; + // + DocCommands["MoveColumnTotals"] = "move-column-totals"; + // + DocCommands["MoveMark"] = "move-mark"; + // + DocCommands["MovePointAnnotation"] = "move-point-annotation"; + // + DocCommands["MovePointAnnotationTarget"] = "move-point-annotation-target"; + // + DocCommands["MoveReferenceLine"] = "move-reference-line"; + // + DocCommands["MoveRowTotals"] = "move-row-totals"; + // + DocCommands["NavigateToSheet"] = "navigate-to-sheet"; + // + DocCommands["PostCalcJoinClauseResult"] = "post-calc-join-clause-result"; + // + DocCommands["NewDocDashboard"] = "new-dashboard"; + // + DocCommands["NewDocWorksheet"] = "new-worksheet"; + // + DocCommands["NonRangedRemoveReferenceLine"] = "non-ranged-remove-reference-line"; + // + DocCommands["OptimizeExtract"] = "optimize-extract"; + // + DocCommands["OptOutActions"] = "opt-out-actions"; + // + DocCommands["PageHistorySettings"] = "page-history-settings"; + // + DocCommands["PageToggleTrails"] = "page-toggle-trails"; + // + DocCommands["ParseUIName"] = "parse-ui-name"; + // + DocCommands["Percentages"] = "percentages"; + // + DocCommands["Perspectives"] = "perspectives"; + // + DocCommands["PositionPointAnnotation"] = "position-point-annotation"; + // + DocCommands["ProtocolPoolLog"] = "protocol-pool-log"; + // + DocCommands["PublishToWorkgroup"] = "publish-to-workgroup"; + // + DocCommands["PublishDataSource"] = "publish-datasource"; + // + DocCommands["PublishDataSourceFromData"] = "publish-data-source-from-data"; + // + DocCommands["PublishDataSourceFromWorkbookData"] = "publish-data-source-from-workbook-data"; + // + DocCommands["QuantitativeQuickFilterEdit"] = "quantitative-quick-filter-edit"; + // + DocCommands["QuantitativeModeQuickFilter"] = "quantitative-mode-quick-filter"; + // + DocCommands["QueryMigrateDataSources"] = "query-migrate-data-sources"; + // + DocCommands["QuickSort"] = "quick-sort"; + // + DocCommands["RangedByIndexMerge"] = "ranged-by-index-merge"; + // + DocCommands["RangedByValueMerge"] = "ranged-by-value-merge"; + // + DocCommands["Record"] = "record"; + // + DocCommands["Redo"] = "redo"; + // + DocCommands["RefreshExtract"] = "refresh-extract"; + // + DocCommands["RefreshFromSource"] = "refresh-from-source"; + // + DocCommands["RelativeDateQuickFilterEdit"] = "relative-date-quick-filter-edit"; + // + DocCommands["RemoveAllReferenceLines"] = "remove-all-reference-lines"; + // + DocCommands["RemoveDrillPath"] = "remove-drill-path"; + // + DocCommands["RemoveExtract"] = "remove-extract"; + // + DocCommands["RemoveFieldFolder"] = "remove-field-folder"; + // + DocCommands["RemoveFieldLabel"] = "remove-field-label"; + // + DocCommands["RemoveFields"] = "remove-fields"; + // + DocCommands["RemoveFieldsFromShelf"] = "remove-fields-from-shelf"; + // + DocCommands["RemoveFromDrillPath"] = "remove-from-drill-path"; + // + DocCommands["RemoveFromFieldFolder"] = "remove-from-field-folder"; + // + DocCommands["RemoveReferenceLine"] = "remove-reference-line"; + // + DocCommands["RemoveSubtotals"] = "remove-subtotals"; + // + DocCommands["RenameDataSource"] = "rename-data-source"; + // + DocCommands["RenameDrillPath"] = "rename-drill-path"; + // + DocCommands["RenameFieldFolder"] = "rename-field-folder"; + // + DocCommands["RenameSheet"] = "rename-sheet"; + // + DocCommands["ReorderLabels"] = "reorder-labels"; + // + DocCommands["ReportBug"] = "report-bug"; + // + DocCommands["RequestDataSourcePresModel"] = "request-datasource-pres-model"; + // + DocCommands["ResetParameterCtrlTitle"] = "reset-parameter-ctrl-title"; + // + DocCommands["ResetTooltip"] = "reset-tooltip"; + // + DocCommands["ResizeAreaAnnotationText"] = "resize-area-annotation-text"; + // + DocCommands["ResizeAxis"] = "resize-axis"; + // + DocCommands["ResizeCell"] = "resize-cell"; + // + DocCommands["ResizeHeader"] = "resize-header"; + // + DocCommands["ResizePointAnnotation"] = "resize-point-annotation"; + // + DocCommands["Revert"] = "revert"; + // + DocCommands["RotateFieldLabel"] = "rotate-field-label"; + // + DocCommands["RotateLabel"] = "rotate-label"; + // + DocCommands["SplitFieldLabel"] = "split-field-label"; + // + DocCommands["RunAction"] = "run-action"; + // + DocCommands["RunScript"] = "run-script"; + // + DocCommands["RunUpdates"] = "run-update"; + // + DocCommands["SaveModel"] = "save-model"; + // + DocCommands["SavePublishedDStoFile"] = "save-published-ds-to-file"; + // + DocCommands["SelectDataSource"] = "select-data-source"; + // + DocCommands["SelectFieldsInShelf"] = "select-fields-in-shelf"; + // + DocCommands["SendDataConnectionTableViewMessage"] = "send-data-connection-tableview-message"; + // + DocCommands["SetActiveDataSourceName"] = "set-active-data-source-name"; + // + DocCommands["SetActiveConnectionName"] = "set-active-connection-name"; + // + DocCommands["SetActiveDataSource"] = "set-active-datasource"; + // + DocCommands["SetBasePalette"] = "set-base-palette"; + // + DocCommands["SetCategoricalColor"] = "set-categorical-color"; + // + DocCommands["SetDataCacheDelta"] = "set-data-cache-delta"; + // + DocCommands["SetDataPreviewAutoUpdate"] = "set-data-preview-auto-update"; + // + DocCommands["SetDataPreviewCustomFieldOrder"] = "set-data-preview-custom-field-order"; + // + DocCommands["SetDefaultColor"] = "set-default-color"; + // + DocCommands["SetDefaultShape"] = "set-default-shape"; + // + DocCommands["SetFilterContext"] = "set-filter-context"; + // + DocCommands["SetFilterShared"] = "set-filter-shared"; + // + DocCommands["SetInitialSQL"] = "set-initial-sql"; + // + DocCommands["SetItemColor"] = "set-item-color"; + // + DocCommands["SetItemColorResetCustomization"] = "set-item-color-reset-customization"; + // + DocCommands["SetItemEncodingType"] = "set-item-encoding-type"; + // + DocCommands["SetMarkSize"] = "set-mark-size"; + // + DocCommands["SetPageNavFlag"] = "set-page-flag"; + // + DocCommands["SetParameterCtrlDisplayFlags"] = "set-parameter-ctrl-display-flags"; + // + DocCommands["SetParameterCtrlDisplayMode"] = "set-parameter-ctrl-display-mode"; + // + DocCommands["SetParameterCtrlTitle"] = "set-parameter-ctrl-title"; + // + DocCommands["SetParameterValue"] = "set-parameter-value"; + // + DocCommands["SetPrimitive"] = "set-primitive"; + // + DocCommands["SetQueryBanding"] = "set-query-banding"; + // + DocCommands["SetQuickFilterIncludedValues"] = "set-quick-filter-included"; + // + DocCommands["SetReferenceLineFormula"] = "set-reference-line-formula"; + // + DocCommands["SetReferenceLineConstantValue"] = "set-reference-line-constant-value"; + // + DocCommands["SetSheetFormatting"] = "set-sheet-formatting"; + // + DocCommands["SetSheetSize"] = "set-sheet-size"; + // + DocCommands["SetTotalsType"] = "set-totals-type"; + // + DocCommands["SetWorkbookLocale"] = "set-workbook-locale"; + // + DocCommands["ShowCatCtrlQuickFilter"] = "show-cat-ctrl-quick-filter"; + // + DocCommands["ShowColFieldNamesFlag"] = "show-col-field-names"; + // + DocCommands["ShowColTotalsFlag"] = "show-col-totals"; + // + DocCommands["ShowColumnFieldLabel"] = "show-column-field-label"; + // + DocCommands["ShowEmptyColsFlag"] = "show-empty-cols"; + // + DocCommands["ShowEmptyRowsFlag"] = "show-empty-rows"; + // + DocCommands["ShowForecastEditor"] = "show-forecast-editor"; + // + DocCommands["ShowFullRange"] = "show-full-range"; + // + DocCommands["ShowHeader"] = "show-header"; + // + DocCommands["ShowHiddenData"] = "show-hidden-data"; + // + DocCommands["ShowMe"] = "show-me"; + // + DocCommands["ShowQuantCtrlQuickFilter"] = "show-quant-ctrl-quick-filter"; + // + DocCommands["ShowQuickFilterDoc"] = "show-quickfilter-doc"; + // + DocCommands["ShowReferenceLineEditor"] = "show-reference-line-editor"; + // + DocCommands["ShowReferenceLineConstantValueEditor"] = "show-reference-line-constant-value-editor"; + // + DocCommands["ShowReferenceLineFormatter"] = "show-reference-line-formatter"; + // + DocCommands["ShowRowFieldLabel"] = "show-row-field-label"; + // + DocCommands["ShowRowFieldNamesFlag"] = "show-row-field-names"; + // + DocCommands["ShowRowTotalsFlag"] = "show-row-totals"; + // + DocCommands["SimpleCommandList"] = "simple-command-list"; + // + DocCommands["Sleep"] = "sleep"; + // + DocCommands["SleepBackgroundThread"] = "sleep-background-thread"; + // + DocCommands["SortDataGridByColumn"] = "sort-datagrid-by-column"; + // + DocCommands["SortDataGridFields"] = "sort-datagrid-fields"; + // + DocCommands["SpecialValues"] = "special-values"; + // + DocCommands["SplitField"] = "split-field"; + // + DocCommands["StackMarks"] = "stack-marks"; + // + DocCommands["StackOverflowCrash"] = "stack-overflow"; + // + DocCommands["SubtotalAggregation"] = "subtotal-aggregation"; + // + DocCommands["Subtotals"] = "subtotals"; + // + DocCommands["SwapFields"] = "swap-fields"; + // + DocCommands["SwapRowsAndColumns"] = "swap-rows-and-columns"; + // + DocCommands["TableauException"] = "tableau-exception"; + // + DocCommands["ToggleDropLines"] = "toggle-drop-lines"; + // + DocCommands["ToggleFieldBlending"] = "toggle-field-blending"; + // + DocCommands["ToggleMarkLabels"] = "toggle-mark-labels"; + // + DocCommands["TogglePageTitle"] = "toggle-page-title"; + // + DocCommands["ToggleParameterCtrlDisplayFlag"] = "toggle-parameter-ctrl-display-flag"; + // + DocCommands["ToggleParameterCtrlTitle"] = "toggle-parameter-ctrl-title"; + // + DocCommands["ToggleQuickFilterTitle"] = "toggle-quick-filter-title"; + // + DocCommands["ToggleVizNavigationSetting"] = "toggle-viz-navigation-setting"; + // + DocCommands["Undo"] = "undo"; + // + DocCommands["UnhideData"] = "unhide-data"; + // + DocCommands["UnhideLabel"] = "unhide-label"; + // + DocCommands["UpdateAreaAnnotation"] = "update-area-annotation"; + // + DocCommands["UpdateCalcScopeIsolation"] = "update-scope-isolation-for-calculation"; + // + DocCommands["UpdateDataServerConnectionInfo"] = "update-data-server-connection-info"; + // + DocCommands["UpdatePointAnnotationPullback"] = "update-point-annotation-pullback"; + // + DocCommands["UpdateTableCalcInfo"] = "update-table-calc-infomation"; + // + DocCommands["UpgradeExtract"] = "upgrade-extract"; + // + DocCommands["UseExtract"] = "use-extract"; + // + DocCommands["ValidateDrillPathName"] = "validate-drill-path-name"; + // + DocCommands["ValidateFormula"] = "validate-formula"; + // + DocCommands["ValidateInitialSQL"] = "validate-initial-sql"; + // + DocCommands["ValidateQueryBanding"] = "validate-query-banding"; + // + DocCommands["ValidateTypeInPill"] = "validate-type-in-pill"; + // + DocCommands["ViewParameterCtrls"] = "view-param-ctrls"; + // + DocCommands["ViewQuickFilters"] = "view-quick-filters"; + // + DocCommands["GetSchema"] = "get-schema"; + // + DocCommands["GetSchemaViewerDataSchema"] = "get-schema-viewer-data-schema"; + // + DocCommands["ConvertToDimension"] = "convert-to-dimension"; + // + DocCommands["ConvertToMeasure"] = "convert-to-measure"; + // + DocCommands["ConvertToContinuous"] = "convert-to-continuous"; + // + DocCommands["ConvertToDiscrete"] = "convert-to-discrete"; + // + DocCommands["RenameField"] = "rename-field"; + // + DocCommands["HideField"] = "hide-field"; + // + DocCommands["UnhideField"] = "unhide-field"; + // + DocCommands["HideUnusedFields"] = "hide-unused-fields"; + // + DocCommands["DuplicateFields"] = "duplicate-fields"; + // + DocCommands["CleanValues"] = "clean-values"; + // + DocCommands["ParseDate"] = "parse-date"; + // + DocCommands["MakeDate"] = "make-date"; + // + DocCommands["SetQualifyNames"] = "set-qualify-names"; + // + DocCommands["CreateMeasureFromColumn"] = "create-measure-from-column"; + // + DocCommands["RemoveFromSchemaDrillPath"] = "remove-from-schema-drill-path"; + // + DocCommands["AddToSchemaDrillPath"] = "add-to-schema-drill-path"; + // + DocCommands["RemoveSchemaDrillPath"] = "remove-schema-drill-path"; + // + DocCommands["ShowHiddenFields"] = "show-hidden-fields"; + // + DocCommands["ShowAliases"] = "show-aliases"; + // + DocCommands["SetRowDisplayCount"] = "set-row-display-count"; + // + DocCommands["ShowStructure"] = "show-structure"; + // + DocCommands["GroupByTable"] = "group-by-table"; + // + DocCommands["ChangeDataType"] = "change-data-type"; + // + DocCommands["ChangePivotStrategy"] = "change-pivot-strategy"; + // + DocCommands["ChangeDisplayAlias"] = "change-display-alias"; + // + DocCommands["SetIncludeSharedMembers"] = "set-include-shared-members"; + // + DocCommands["SetUtilityDimension"] = "set-utility-dimension"; + // + DocCommands["SetDefaultHierarchy"] = "set-default-hierarchy"; + // + DocCommands["DataSourceSortOrder"] = "data-source-sort-order"; + // + DocCommands["ClearUtilityDimension"] = "clear-utility-dimension"; + // + DocCommands["ClearDefaultSort"] = "clear-default-sort"; + // + DocCommands["SetDefaultAggregation"] = "set-default-aggregation"; + // + DocCommands["SetDefaultVTAggregation"] = "set-default-vtaggregation"; + // + DocCommands["ChangeFiscalYear"] = "change-fiscal-year"; + // + DocCommands["ChangeSemanticRole"] = "change-semantic-role"; + // + DocCommands["AddToSheet"] = "add-to-sheet"; + // + DocCommands["DropSchemaSelOnShelf"] = "drop-schema-sel-on-shelf"; + // + DocCommands["AddToSchemaFieldFolder"] = "add-to-schema-field-folder"; + // + DocCommands["RemoveFromSchemaFieldFolder"] = "remove-from-schema-field-folder"; + // + DocCommands["RemoveSchemaFieldFolder"] = "remove-schema-field-folder"; + // + DocCommands["DefaultTextFormat"] = "default-text-format"; + // + DocCommands["EditSchemaCaption"] = "edit-schema-caption"; + // + DocCommands["ResetSchemaCaption"] = "reset-schema-caption"; + // + DocCommands["CreateOutlierSet"] = "create-outlier-set"; + })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); + var UICommands; + (function (UICommands) { + // + UICommands["About"] = "about"; + // + UICommands["AddDataServerDataSourceUI"] = "add-data-server-datasource-ui"; + // + UICommands["SwitchToDocumentAndAddDataServerDataSourceUI"] = "switch-to-document-and-add-data-server-ds-ui"; + // + UICommands["AddDrillPathUI"] = "add-drillpath-ui"; + // + UICommands["AddFieldFolderUI"] = "add-field-folder-ui"; + // + UICommands["AddFileToExtractUI"] = "add-file-to-extract-ui"; + // + UICommands["AddDataSourceToExtractUI"] = "add-data-source-to-extract-ui"; + // + UICommands["AddQCToSheetUI"] = "add-qc-to-sheet-ui"; + // + UICommands["AddReferenceLineUI"] = "add-reference-line-ui"; + // + UICommands["AddSchemaFieldFolderUI"] = "add-to-schema-field-folder-ui"; + // + UICommands["AddTableauServerDSConnectionUI"] = "add-tableau-server-ds-connection-ui"; + // + UICommands["AddToSchemaDrillPathUI"] = "add-to-schema-drillpath-ui"; + // + UICommands["AddToSheetUI"] = "add-to-sheet-ui"; + // + UICommands["AnnotateUI"] = "annotate-ui"; + // + UICommands["AppendDataSourceToRemoteExtractUI"] = "append-data-source-to-remote-extract-ui"; + // + UICommands["AttemptConnectDataSourcesOnSheetUI"] = "attempt-connect-datasources-on-sheet-ui"; + // + UICommands["AttemptDataSourceConnectionUI"] = "attempt-datasource-connect-ui"; + // + UICommands["AutoHideSheet"] = "auto-hide-sheet"; + // + UICommands["AutomationClickMRUItem"] = "click-mru-item"; + // + UICommands["CalculatedMembersUI"] = "calculated-members-ui"; + // + UICommands["ChangeAggregationUI"] = "change-aggregation-ui"; + // + UICommands["ChangeDataServerLogonUI"] = "change-data-server-logon-ui"; + // + UICommands["ChangeEssbaseAliasFile"] = "change-essbase-alias-file"; + // + UICommands["ChangeFieldTypeUI"] = "change-field-type-ui"; + // + UICommands["ChangeTabColorSheet"] = "change-tab-color-sheet"; + // + UICommands["CheckForProductUpdates"] = "check-for-product-updates"; + // + UICommands["ClearDashboardUI"] = "clear-dashboard-ui"; + // + UICommands["ClearSheetUI"] = "clear-sheet-ui"; + // + UICommands["ClearStoryUI"] = "clear-story-ui"; + // + UICommands["ClearVizUI"] = "clear-viz-ui"; + // + UICommands["CloseCalculationUI"] = "close-calculation-ui"; + // + UICommands["CloseDataSourceUI"] = "close-datasource-ui"; + // + UICommands["CloseWorkbook"] = "close-workbook"; + // + UICommands["ColorLegendEditUI"] = "color-legend-edit-ui"; + // + UICommands["CommitPillEditUI"] = "commit-pill-edit-ui"; + // + UICommands["ConnectDataSourceUI"] = "connect-datasource-ui"; + // + UICommands["ConnectRepromptUI"] = "connect-reprompt-ui"; + // + UICommands["ConnectVariablePromptUI"] = "connect-variable-prompt-ui"; + // + UICommands["ConnectVariablePromptMatchingUI"] = "connect-variable-prompt-matching-ui"; + // + UICommands["ConnectionAddNewCustomSQLUI"] = "connection-add-new-custom-sql-ui"; + // + UICommands["ConnectionAddNewTableUI"] = "connection-add-new-table-ui"; + // + UICommands["ConnectionDataGridCopyUI"] = "connection-data-grid-copy-ui"; + // + UICommands["ConnectionEditCustomSQLUI"] = "connection-custom-sql-ui"; + // + UICommands["ConnectionEditExtractUI"] = "connection-extract-ui"; + // + UICommands["ConnectionEditDBVariablesUI"] = "connection-edit-db-variables-ui"; + // + UICommands["ConnectionEditConnectionUI"] = "connection-edit-connection-ui"; + // + UICommands["ConnectionFinalizeDataSourceUI"] = "connection-finalize-datasource-ui"; + // + UICommands["ConnectionFinalizeExtractStatesUI"] = "connection-finalize-extract-states-ui"; + // + UICommands["ConnectionGetTypeGroupPresModelUI"] = "connection-get-type-group-pres-model-ui"; + // + UICommands["ConnectionGetSavedDataSourcesPresModelUI"] = "connection-get-saved-ds-pres-model-ui"; + // + UICommands["ConnectionPartitioningFailureUI"] = "connection-partitioning-failure-ui"; + // + UICommands["ConnectionReplaceTableUI"] = "connection-replace-table-ui"; + // + UICommands["ConnectionSearchCatalogUI"] = "connection-search-catalog-ui"; + // + UICommands["ConnectionSearchCubeUI"] = "connection-search-cube-ui"; + // + UICommands["ConnectionSelectCatalogUI"] = "connection-select-catalog-ui"; + // + UICommands["ConnectionSelectCubeUI"] = "connection-select-cube-ui"; + // + UICommands["ConnectionSelectStandardConnectionUI"] = "connection-select-standard-connection-ui"; + // + UICommands["ConnectionSelectStoredProcedureUI"] = "connection-select-stored-procedure-ui"; + // + UICommands["ConnectionShowEditTableDialogUI"] = "connection-show-edit-table-ui"; + // + UICommands["ConnectionShowPivotDialogUI"] = "conneciton-show-pivot-dialog-ui"; + // + UICommands["ConnectionSortCatalogUI"] = "connection-sort-catalog-ui"; + // + UICommands["ConnectionSortCubeUI"] = "connection-sort-cube-ui"; + // + UICommands["ConnectionValidateCustomSQLUI"] = "connection-validate-custom-sql-ui"; + // + UICommands["ConnectToCloudFile"] = "connect-to-cloud-file"; + // + UICommands["ConnectToDataServerSourceUI"] = "connect-data-server-datasource-ui"; + // + UICommands["ConnectionConvertToSQLUI"] = "connection-convert-to-sql-ui"; + // + UICommands["ConnectionRenameConnectionUI"] = "connection-rename-connection-ui"; + // + UICommands["ExportUnderlyingDataToCSVUI"] = "export-to-csv-with-progress-ui"; + // + UICommands["ConnectODBCUI"] = "connect-odbc-ui"; + // + UICommands["CopyCrosstab"] = "copy-crosstab"; + // + UICommands["CopyData"] = "copy-data"; + // + UICommands["CopyDrillPathFieldsUI"] = "copy-drill-path-fields-ui"; + // + UICommands["CopyFieldsDefnUI"] = "copy-fields-defn-ui"; + // + UICommands["CopyImage"] = "copy-image"; + // + UICommands["CopyImageDashboard"] = "copy-image-dashboard"; + // + UICommands["CopyImageWorksheet"] = "copy-image-worksheet"; + // + UICommands["CopyImageStory"] = "copy-image-story"; + // + UICommands["CopyWorksheetFormatting"] = "copy-formatting"; + // + UICommands["CreateCalculatedSetUI"] = "create-calculated-set-ui"; + // + UICommands["CreateCalculationUI"] = "create-calculation-ui"; + // + UICommands["CreateCombinedFieldUI"] = "create-combined-field-ui"; + // + UICommands["CreateConnectionUI"] = "create-connection-ui"; + // + UICommands["CreateDateBinUI"] = "create-Date-bin-ui"; + // + UICommands["CreateGroupSelectionUI"] = "create-group-selection-ui"; + // + UICommands["CreateGroupUI"] = "create-group-ui"; + // + UICommands["CreateIdentitySet"] = "create-user-filter"; + // + UICommands["CreateLeafConnectionUI"] = "create-leaf-connection-ui"; + // + UICommands["CreateNumericBinsUI"] = "create-numeric-bins-ui"; + // + UICommands["CreateSetUI"] = "create-set-ui"; + // + UICommands["CustomDateAggregationUI"] = "custom-date-aggregation-ui"; + // + UICommands["CutDrillPathFieldsUI"] = "cut-drill-path-fields-ui"; + // + UICommands["CutFieldsDefnUI"] = "cut-fields-defn-ui"; + // + UICommands["DeactivateDashboard"] = "deactivate-dashboard"; + // + UICommands["DeleteCookies"] = "delete-cookies"; + // + UICommands["DeleteFieldsUI"] = "delete-fields-ui"; + // + UICommands["DeleteSheetUI"] = "delete-sheet-ui"; + // + UICommands["DescribeAdhocClusterUI"] = "describe-adhoc-cluster-ui"; + // + UICommands["DescribeDrillPathUI"] = "describe-drillpath-ui"; + // + UICommands["DescribeFieldUI"] = "describe-field-ui"; + // + UICommands["DescribeForecastUI"] = "describe-forecast-ui"; + // + UICommands["DescribeSchemaDrillPathUI"] = "describe-schema-drillpath-ui"; + // + UICommands["DescribeTrendLine"] = "describe-trend-line"; + // + UICommands["DescribeTrendModel"] = "describe-trend-model"; + // + UICommands["OpenDiscoverPaneLinks"] = "open-discover-pane-links"; + // + UICommands["DismissGoToWorksheetTooltipUI"] = "dismiss-go-to-worksheet-tooltip-ui"; + // + UICommands["DownloadCopyDataSource"] = "download-copy-data-source"; + // + UICommands["DrilldownUI"] = "drilldown-ui"; + // + UICommands["DropSchemaSelOnShelfUI"] = "drop-schema-sel-on-shelf-ui"; + // + UICommands["DropUI"] = "drop-ui"; + // + UICommands["DuplicateDataSourceUI"] = "duplicate-datasource-ui"; + // + UICommands["DuplicateSheetAsCrosstab"] = "duplicate-sheet-as-crosstab"; + // + UICommands["DuplicateSheetOrCrosstabUI"] = "duplicate-sheet-or-crosstab-ui"; + // + UICommands["DuplicateSheetUI"] = "duplicate-sheet-ui"; + // + UICommands["EditAliasesUI"] = "edit-aliases-ui"; + // + UICommands["EditAnnotation"] = "edit-annotation"; + // + UICommands["EditAxisUI"] = "edit-axis-ui"; + // + UICommands["EditCalculatedSetUI"] = "edit-calculated-set-ui"; + // + UICommands["EditCalculationUI"] = "edit-calculation-ui"; + // + UICommands["EditCaptionUI"] = "edit-caption"; + // + UICommands["EditCombinedFieldUI"] = "edit-combined-field"; + // + UICommands["EditCopyFieldUI"] = "edit-copy-field-ui"; + // + UICommands["EditDataSourceUI"] = "edit-datasource-ui"; + // + UICommands["EditDataSourceFieldAliases"] = "edit-datasource-field-aliases"; + // + UICommands["EditDataSourceFiltersUI"] = "edit-datasource-filters-ui"; + // + UICommands["EditDataSourceSitePathsUI"] = "edit-datasource-site-paths-ui"; + // + UICommands["EditDateBinUI"] = "edit-date-bin-ui"; + // + UICommands["EditDefaultSortUI"] = "edit-default-sort-ui"; + // + UICommands["EditDropLinesUI"] = "edit-drop-lines-ui"; + // + UICommands["EditDropFieldUI"] = "edit-drop-field-ui"; + // + UICommands["EditDataSourceRelationshipsUI"] = "edit-datasource-relationships-ui"; + // + UICommands["EditEnumeratedSetUI"] = "edit-enumerated-set"; + // + UICommands["EditFilterQuickFilter"] = "edit-filter-quick-filter"; + // + UICommands["EditFilterUI"] = "edit-filter-ui"; + // + UICommands["EditForecastUI"] = "edit-forecast-ui"; + // + UICommands["EditGroupUI"] = "edit-group-ui"; + // + UICommands["EditGroupValue"] = "edit-group-value"; + // + UICommands["EditGroupValueLabel"] = "edit-group-value-label"; + // + UICommands["EditLegendGroupValueUI"] = "edit-group-value-legend"; + // + UICommands["EditImageUI"] = "edit-image-ui"; + // + UICommands["EditLegendMemberAliasUI"] = "edit-legend-member-alias-ui"; + // + UICommands["EditLegendTitleUI"] = "edit-legend-title-ui"; + // + UICommands["EditMarkColorUI"] = "edit-mark-color-ui"; + // + UICommands["EditMarkShapeUI"] = "edit-mark-shape-ui"; + // + UICommands["EditMemberAlias"] = "edit-member-alias"; + // + UICommands["EditMemberAliasLabel"] = "edit-member-alias-label"; + // + UICommands["EditPageTitleUI"] = "edit-page-title-ui"; + // + UICommands["EditParameterCtrlTitle"] = "edit-param-control-title"; + // + UICommands["EditPdfPageSelectionUI"] = "edit-pdf-page-selection-ui"; + // + UICommands["EditPrimaryAliasesUI"] = "edit-primary-aliases-ui"; + // + UICommands["EditReferenceLine"] = "edit-reference-line"; + // + UICommands["EditSchemaCalculationUI"] = "edit-schema-calculation-ui"; + // + UICommands["EditSchemaCalculationRangeUI"] = "edit-schema-calculation-range-ui"; + // + UICommands["EditSchemaCaptionUI"] = "edit-schema-caption-ui"; + // + UICommands["EditSchemaFieldAliasUI"] = "edit-schema-field-alias-ui"; + // + UICommands["ResetSchemaCaptionUI"] = "reset-schema-field-alias-ui"; + // + UICommands["ResetMultipleSchemaCaptionsUI"] = "reset-multiple-schema-field-alias-ui"; + // + UICommands["EditSchemaNumericBinsUI"] = "edit-schema-numeric-bins-ui"; + // + UICommands["EditSetUI"] = "edit-set-ui"; + // + UICommands["EditTitleQuickFilter"] = "edit-title-quick-filter"; + // + UICommands["EditTitleUI"] = "edit-title"; + // + UICommands["EditTooltipUI"] = "edit-tooltip"; + // + UICommands["EditTrendLinesUI"] = "edit-trend-lines-ui"; + // + UICommands["EditUserDescriptionUI"] = "edit-user-description-ui"; + // + UICommands["EditWMSMapTileServer"] = "edit-wms-map-tile-server"; + // + UICommands["EditZoneParam"] = "edit-zone-param"; + // + UICommands["EditZoneUrl"] = "edit-zone-url"; + // + UICommands["EstablishConnectionUI"] = "establish-connection-ui"; + // + UICommands["EstablishTableauServerConnectionUI"] = "establish-tableau-server-connection-ui"; + // + UICommands["ExecuteUIAutomationButton"] = "execute-ui-button-action"; + // + UICommands["ExecuteUIAutomationComboBox"] = "execute-ui-combo-box-action"; + // + UICommands["ExecuteUIAutomationGenericWidget"] = "execute-ui-generic-widget-action"; + // + UICommands["ExecuteUIAutomationLabel"] = "execute-ui-label-action"; + // + UICommands["ExecuteUIAutomationMenu"] = "execute-ui-menu-action"; + // + UICommands["ExecuteUIAutomationItemView"] = "execute-ui-item-view-action"; + // + UICommands["ExecuteUIAutomationTextBox"] = "execute-ui-text-box-action"; + // + UICommands["ExecuteUIAutomationToggleButton"] = "execute-ui-toggle-button-action"; + // + UICommands["ExecuteUIAutomationSlider"] = "execute-ui-slider-action"; + // + UICommands["ExecuteUIAutomationWindow"] = "execute-ui-window-action"; + // + UICommands["ExecuteUIAutomationWebView"] = "execute-ui-web-view-action"; + // + UICommands["ExecuteUIAutomationTab"] = "execute-ui-tab-action"; + // + UICommands["ExecuteUIAutomationTextBrowser"] = "execute-ui-text-browser-action"; + // + UICommands["ExitApplication"] = "exit-application"; + // + UICommands["ExportData"] = "export-data"; + // + UICommands["ExportDataSourceUI"] = "export-datasource-ui"; + // + UICommands["ExportPackagedWorkbook"] = "export-packaged"; + // + UICommands["ExportWorkbookSheetsUI"] = "export-workbook-sheets-ui"; + // + UICommands["ExtSvcConfigUI"] = "ext-svc-config-ui"; + // + UICommands["ExtractHistory"] = "extract-history"; + // + UICommands["ExtractPropertiesUI"] = "extract-properties-ui"; + // + UICommands["ExtractUI"] = "extract-ui"; + // + UICommands["FilterFieldLabelUI"] = "filter-field-label-ui"; + // + UICommands["FormatAnnotation"] = "format-annotation"; + // + UICommands["FormatAxisUI"] = "format-axis-ui"; + // + UICommands["FormatCaptionTitleUI"] = "format-caption-title"; + // + UICommands["FormatField"] = "format-pane"; + // + UICommands["FormatFieldLabelUI"] = "format-field-label-ui"; + // + UICommands["FormatLabel"] = "format-label"; + // + UICommands["FormatLegendsUI"] = "format-legends-ui"; + // + UICommands["FormatReferenceLine"] = "format-reference-line"; + // + UICommands["FormatUI"] = "format-ui"; + // + UICommands["FullScreen"] = "fullscreen"; + // + UICommands["GetDashboardSidePaneMode"] = "get-dashboard-sidepane-mode"; + // + UICommands["GetDebuggingInfo"] = "get-debugging-info"; + // + UICommands["GetIconPathForEncodingType"] = "get-icon-path-for-encoding-type"; + // + UICommands["GetIconPathForPrimitiveType"] = "get-icon-path-for-primitive-type"; + // + UICommands["GetTableOptionsPresModel"] = "get-table-options-pres-model"; + // + UICommands["GetWindowNameUI"] = "get-window-name"; + // + UICommands["GetWorksheetSidePaneMode"] = "get-worksheet-sidepane-mode"; + // + UICommands["GetHiddenSheets"] = "get-hidden-sheets"; + // + UICommands["GetOpenPaneMRUs"] = "get-open-pane-mrus"; + // + UICommands["GetOpenPaneSampleWorkbooks"] = "get-open-pane-sample-workbooks"; + // + UICommands["GetRetargetDataSourcePresModelUI"] = "get-retarget-datasource-pres-model-ui"; + // + UICommands["GetSchemaViewerPresModel"] = "get-schema-viewer-pres-model"; + // + UICommands["GetSelectedSheets"] = "get-selected-sheets"; + // + UICommands["GetSheetSorterThumbnail"] = "get-sheet-sorter-thumbnail"; + // + UICommands["GetSheetTabUIThumbnail"] = "get-sheet-tab-ui-thumbnail"; + // + UICommands["GetSheetTabUIText"] = "get-sheet-tab-ui-text"; + // + UICommands["GetVisibleTreeItems"] = "get-visible-tree-items"; + // + UICommands["GotoSheetRange"] = "goto"; + // + UICommands["GotoURL"] = "goto-url"; + // + UICommands["HideCaptionUI"] = "hide-caption"; + // + UICommands["HideFilmstripUI"] = "hide-filmstrip-ui"; + // + UICommands["HideTitleUI"] = "hide-title"; + // + UICommands["HideZoneUI"] = "hide-zone-ui"; + // + UICommands["HideAllSheetsUI"] = "hide-all-sheets-ui"; + // + UICommands["UnhideAllSheetsUI"] = "unhide-all-sheets-ui"; + // + UICommands["ImportLocalDataUI"] = "import-local-data-ui"; + // + UICommands["ImportMapSource"] = "import-map-source"; + // + UICommands["ImportMapSourceUI"] = "import-map-source-ui"; + // + UICommands["ImportWorkbookUI"] = "import-workbook-ui"; + // + UICommands["LoadDefaultFormattingUI"] = "load-formatting-ui"; + // + UICommands["LocateFieldUI"] = "locate-field-ui"; + // + UICommands["LogMemoryUsage"] = "log-memory-usage"; + // + UICommands["ManageLicensing"] = "manage-licensing"; + // + UICommands["ManageMapbox"] = "manage-mapbox"; + // + UICommands["ManagePublicWorkbooks"] = "manage-public"; + // + UICommands["ManageMapServices"] = "manage-map-services"; + // + UICommands["MapLayersUI"] = "map-layers-ui"; + // + UICommands["ManageWMS"] = "manage-wms"; + // + UICommands["UpgradeDataSourcesUI"] = "upgrade-datasources-ui"; + // + UICommands["UpgradeDataSourceUI"] = "upgrade-datasource-ui"; + // + UICommands["MoveRepository"] = "move-repository"; + // + UICommands["NewSchemaDrillPathUI"] = "new-schema-drill-path-ui"; + // + UICommands["NewUIDashboard"] = "new-dashboard-ui"; + // + UICommands["NewUIWorksheet"] = "new-worksheet-ui"; + // + UICommands["NewUIStoryboard"] = "new-storyboard-ui"; + // + UICommands["NewWorkbook"] = "new-workbook"; + // + UICommands["NextSheet"] = "next-sheet"; + // + UICommands["NonRangedEditReferenceLine"] = "non-ranged-edit-reference-line"; + // + UICommands["OpenBookmark"] = "open-bookmark"; + // + UICommands["OpenFromWorkgroup"] = "open-workbook-from-workgroup"; + // + UICommands["OpenMapSource"] = "open-map-source"; + // + UICommands["OpenMapSourceUI"] = "open-map-source-ui"; + // + UICommands["OpenSampleWorkbook"] = "open-sample-workbook"; + // + UICommands["OpenWorkbook"] = "open-workbook"; + // + UICommands["OpenRecentWorkbook"] = "open-recent-workbook"; + // + UICommands["OpenOtherFiles"] = "open-other-files"; + // + UICommands["OptimizeExtractUI"] = "optimize-extract-ui"; + // + UICommands["PageSetup"] = "page-setup"; + // + UICommands["Paste"] = "paste"; + // + UICommands["PasteFieldsDefnUI"] = "paste-fields-defn-ui"; + // + UICommands["PasteWorksheetFormatting"] = "paste-formatting"; + // + UICommands["PDFExport"] = "export-pdf"; + // + UICommands["PerspectivesUI"] = "perspectives-ui"; + // + UICommands["PresentationMode"] = "presentation-mode"; + // + UICommands["Print"] = "print"; + // + UICommands["PromptScript"] = "prompt-command"; + // + UICommands["PropertiesDataSourceUI"] = "properties-datasource-ui"; + // + UICommands["PublishDatasourceToWorkgroup"] = "publish-datasource-to-workgroup"; + // + UICommands["PublishDatasourceToWorkgroupFromData"] = "publish-datasource-to-workgroup-from-data"; + // + UICommands["PublishDatasourceToWorkgroupRange"] = "publish-datasource-to-workgroup-range"; + // + UICommands["PublishWorkbookToWorkgroup"] = "publish-workbook-to-workgroup"; + // + UICommands["PublishDatasourceToWorkgroupFromWorkbookData"] = "publish-datasource-to-workgroup-from-workbook-data"; + // + UICommands["PromptForDataSourceFileUI"] = "prompt-for-datasource-file-ui"; + // + UICommands["PromptUnknownWDCUrlUI"] = "prompt-unknown-wdc-url-ui"; + // + UICommands["QueryDataSourceUI"] = "query-datasource-ui"; + // + UICommands["QuickFilterFieldLabelUI"] = "quick-filter-field-label-ui"; + // + UICommands["QuickTableCalcUI"] = "quick-table-calc-ui"; + // + UICommands["ReconnectMapSourceUI"] = "reconnect-map-source-ui"; + // + UICommands["RecordPerformance"] = "record-perf"; + // + UICommands["RefreshAllExtractsUI"] = "refresh-all-extracts-ui"; + // + UICommands["RefreshAllThumbnailsUI"] = "refresh-all-thumbnails"; + // + UICommands["RefreshAutoExtractUI"] = "refresh-auto-extract-ui"; + // + UICommands["RefreshDataSourceUI"] = "refresh-datasource-ui"; + // + UICommands["RefreshExtractUI"] = "refresh-extract-ui"; + // + UICommands["RefreshFromSourceUI"] = "refresh-from-source-ui"; + // + UICommands["RefreshLocalDataUI"] = "refresh-local-data-ui"; + // + UICommands["RefreshThumbnailUI"] = "refresh-thumbnail"; + // + UICommands["ReleaseMemory"] = "release-memory"; + // + UICommands["RemoveAnnotation"] = "remove-annotation"; + // + UICommands["RemoveExtractUI"] = "remove-extract-ui"; + // + UICommands["RemoveMRUItem"] = "remove-mru"; + // + UICommands["RemoveSavedDataSourceUI"] = "remove-saved-datasource"; + // + UICommands["RemoveSheetFromDashboardUI"] = "remove-sheet-from-dashboard-ui"; + // + UICommands["RemoveTableUI"] = "remove-table-ui"; + // + UICommands["RenameDataSourceUI"] = "rename-datasource-ui"; + // + UICommands["RenameSchemaFieldFolderUI"] = "rename-field-folder-ui"; + // + UICommands["RenameSchemaDrillPathUI"] = "rename-schema-drillpath-ui"; + // + UICommands["RenameSheetUI"] = "rename-sheet-ui"; + // + UICommands["ReorderSheetsUI"] = "reorder-sheets-ui"; + // + UICommands["ReplaceDataSourceWithDataServerDataSourceUI"] = "replace-datasource-with-data-server-datasource-ui"; + // + UICommands["ReplaceFieldUI"] = "replace-field-ui"; + // + UICommands["ResetCaptionUI"] = "reset-caption-ui"; + // + UICommands["ResetCards"] = "reset-cards"; + // + UICommands["ResetLocalDataUI"] = "remove-local-data-ui"; + // + UICommands["ResetMessages"] = "reset-messages"; + // + UICommands["StartOnlineSyncClient"] = "start-online-sync-client"; + // + UICommands["ResetTitleUI"] = "reset-title-ui"; + // + UICommands["ResetToDefaultsMapCard"] = "reset-map-to-defaults"; + // + UICommands["ResetWorkbook"] = "revert-workbook-ui"; + // + UICommands["RetargetDataSource"] = "retarget-datasource"; + // + UICommands["RetargetDataSourceUI"] = "retarget-datasource-ui"; + // + UICommands["SaveAsWorkbook"] = "save-as-workbook"; + // + UICommands["SaveBookmark"] = "save-bookmark"; + // + UICommands["SaveDebuggingWorkbook"] = "save-debugging-workbook"; + // + UICommands["SaveDefaultFormattingUI"] = "save-formatting-ui"; + // + UICommands["SaveWorkbook"] = "save-workbook"; + // + UICommands["SchemaDefaultMemberUI"] = "schema-default-member-ui"; + // + UICommands["ScrollSheet"] = "scroll-sheet"; + // + UICommands["SetAccountsDimension"] = "set-accounts-dimension"; + // + UICommands["SetActiveConnectionUI"] = "set-active-connection-ui"; + // + UICommands["SetAnalyticsDropTargetVisibility"] = "set-analytics-drop-target-visibility"; + // + UICommands["SetDashboardSidePaneMode"] = "set-dashboard-sidepane-mode"; + // + UICommands["SetDefaultDateFormatUI"] = "set-default-date-format-ui"; + // + UICommands["SetDefaultLocationUI"] = "set-default-location-ui"; + // + UICommands["SetDefaultMapSourceUI"] = "set-default-mapsource-ui"; + // + UICommands["SetDefaultTextFormatUI"] = "set-default-text-format-ui"; + // + UICommands["SetDefaultUtilityMember"] = "set-default-utility-member"; + // + UICommands["SetFreeFormDashboardUI"] = "set-free-form-dashboard-ui"; + // + UICommands["SetFilterSharedUI"] = "set-filter-shared-ui"; + // + UICommands["SetKey"] = "set-key"; + // + UICommands["SetProductAutoUpdate"] = "set-auto-update"; + // + UICommands["SetQueryFailure"] = "set-query-failure"; + // + UICommands["SetRendering"] = "set-rendering"; + // + UICommands["SetRuntimeImmediateMode"] = "set-runtime-immediate-mode"; + // + UICommands["SetUILanguage"] = "set-ui-language"; + // + UICommands["SetWorkbookLocaleUI"] = "set-workbook-locale-ui"; + // + UICommands["SetWorksheetSidePaneMode"] = "set-worksheet-sidepane-mode"; + // + UICommands["SetZoneFixedSizeUI"] = "set-zone-fixed-size-ui"; + // + UICommands["SetsInOutUI"] = "show-in-out-sets"; + // + UICommands["ShapeLegendEditUI"] = "shape-legend-edit-ui"; + // + UICommands["ShowCloudFileOAuthPromptAndSelectionUI"] = "show-cloudfile-oauth-prompt-and-selection-ui"; + // + UICommands["ShowConnectionAuthUI"] = "show-connection-auth-ui"; + // + UICommands["ShowConnectionAuthAndEstablishConnectionUI"] = "show-connection-auth-and-establish-connection-ui"; + // + UICommands["ShowConnectTab"] = "show-connect-tab"; + // + UICommands["ShowCustomSplitDialogUI"] = "show-custom-split-dialog-ui"; + // + UICommands["ShowDocument"] = "document"; + // + UICommands["ShowFeatureFlagDialog"] = "show-feature-flag-dialog"; + // + UICommands["ShowFieldFormatUI"] = "show-field-format-ui"; + // + UICommands["ShowFieldInSchemaUI"] = "show-field-in-schema"; + // + UICommands["ShowFilmstripUI"] = "show-filmstrip-ui"; + // + UICommands["ShowGoogleSheetsSelectionUI"] = "show-google-sheets-selection-ui"; + // + UICommands["ShowHelp"] = "show-help"; + // + UICommands["ShowHideDashboardSheetUI"] = "show-hide-dashboard-sheet-ui"; + // + UICommands["ShowHideStoryboardSheetUI"] = "show-hide-storyboard-sheet-ui"; + // + UICommands["ShowGraphicsAPI"] = "show-graphics-api-command"; + // + UICommands["ShowMapOptionsDialog"] = "show-map-options-dialog"; + // + UICommands["ShowMeasuresUI"] = "show-measures-ui"; + // + UICommands["ShowMeCycleUI"] = "show-me-cycle-ui"; + // + UICommands["ShowMeHideUI"] = "show-me-hide-ui"; + // + UICommands["ShowMembersUI"] = "show-members-ui"; + // + UICommands["ShowMeToggleUI"] = "show-me-toggle-ui"; + // + UICommands["ShowOAuthPromptUI"] = "show-oauth-prompt-ui"; + // + UICommands["ShowParameterControl"] = "show-parameter-control"; + // + UICommands["ShowPublicStatusDialog"] = "show-public-status-dialog"; + // + UICommands["ShowPublicQuotaExceededDialog"] = "show-public-quota-exceeded-dialog"; + // + UICommands["ShowPublishDatasourceToWorkgroupDialog"] = "show-publish-datasource-to-workgroup-dialog"; + // + UICommands["ShowQueryBandingAndInitialSQLDialogUI"] = "show-query-banding-and-initial-sql-dialog-ui"; + // + UICommands["ShowQuickFilter"] = "show-quickfilter"; + // + UICommands["ShowQuickFilterUI"] = "show-quickfilter-ui"; + // + UICommands["ShowRuntimeIndicator"] = "show-runtime-indicator"; + // + UICommands["ShowSheetSorter"] = "sheet-sorter"; + // + UICommands["ShowTableOptionsDialog"] = "show-table-options-dialog"; + // + UICommands["ShowWebDataConnectorUI"] = "show-web-data-connector-ui"; + // + UICommands["ShowWidgetSandboxUI"] = "show-widget-sandbox-ui"; + // + UICommands["SizeLegendEditUI"] = "size-legend-edit-ui"; + // + UICommands["SleepUI"] = "sleep-ui"; + // + UICommands["SortAscendingFieldLabelUI"] = "sort-ascending-field-label-ui"; + // + UICommands["SortDescendingFieldLabelUI"] = "sort-descending-field-label-ui"; + // + UICommands["SortFieldLabelUI"] = "sort-field-label-ui"; + // + UICommands["SortUI"] = "sort-ui"; + // + UICommands["SplitFieldUI"] = "split-field-ui"; + // + UICommands["StackMarksUI"] = "stack-marks-ui"; + // + UICommands["StartFileConnectionUI"] = "start-file-connection-ui"; + // + UICommands["StartPillEditUI"] = "start-pill-edit-ui"; + // + UICommands["SwitchToConnectTab"] = "switch-to-connect-tab"; + // + UICommands["SwitchToDocument"] = "switch-to-document"; + // + UICommands["SwitchToSheetSorter"] = "switch-to-sheet-sorter"; + // + UICommands["TableCalcAddressUI"] = "table-calc-address-ui"; + // + UICommands["TableCalcIgnoreUI"] = "table-calc-ignore-ui"; + // + UICommands["TableCalcOrderingUI"] = "table-calc-ordering-ui"; + // + UICommands["TableCalcUI"] = "table-calc-ui"; + // + UICommands["ToggleConnectPaneUI"] = "toggle-connect-pane"; + // + UICommands["ToggleFilmstripUI"] = "toggle-filmstrip-ui"; + // + UICommands["ToggleINDJoinSemanticsUI"] = "toggle-ind-join-semantics-ui"; + // + UICommands["TogglePinMRUItem"] = "toggle-pin-mru"; + // + UICommands["ToggleReferentialIntegrityUI"] = "toggle-referential-integrity-ui"; + // + UICommands["ToggleStartPageUI"] = "toggle-start-page"; + // + UICommands["TrackMemory"] = "track-memory"; + // + UICommands["TrendLinesFlagUI"] = "trend-lines-ui"; + // + UICommands["UpdateDefaultsMapCard"] = "update-map-defaults"; + // + UICommands["UpgradeExtractsUI"] = "upgrade-extracts-ui"; + // + UICommands["UpgradeExtractUI"] = "upgrade-extract-ui"; + // + UICommands["UseExtractUI"] = "use-extract-ui"; + // + UICommands["UseMemory"] = "use-memory"; + // + UICommands["UtilityDimensionUI"] = "utility-dimension-ui"; + // + UICommands["ValidateExtractCredentialsUI"] = "validate-extract-credentials-ui"; + // + UICommands["ViewCard"] = "view-card"; + // + UICommands["ViewTitleCard"] = "view-title-card"; + // + UICommands["ViewSummaryCard"] = "view-summary-card"; + // + UICommands["ViewCaptionCard"] = "view-caption-card"; + // + UICommands["ViewColumnsShelf"] = "view-columns-shelf"; + // + UICommands["ViewRowsShelf"] = "view-rows-shelf"; + // + UICommands["ViewPagesShelf"] = "view-pages-shelf"; + // + UICommands["ViewFiltersShelf"] = "view-filters-shelf"; + // + UICommands["ViewMeasuresShelf"] = "view-measures-shelf"; + // + UICommands["ViewMarksShelf"] = "view-marks-shelf"; + // + UICommands["ViewCurrentPageCard"] = "view-current-page-card"; + // + UICommands["ViewData"] = "view-data"; + // + UICommands["ViewSQLDataUI"] = "view-sql-data-ui"; + // + UICommands["ViewDataSourceData"] = "view-datasource-data"; + // + UICommands["ViewLegend"] = "view-legend"; + // + UICommands["ViewSidePane"] = "view-side-pane"; + // + UICommands["ViewStatusBar"] = "view-statusbar"; + // + UICommands["ViewSummaryDetail"] = "view-summary-detail"; + // + UICommands["ViewTableData"] = "view-table-data"; + // + UICommands["ViewToolBar"] = "view-toolbar"; + // + UICommands["WebViewEnableJavascript"] = "webview-enable-javascript"; + // + UICommands["WebViewEnablePlugins"] = "webview-enable-plugins"; + // + UICommands["WebViewBlockPopups"] = "webview-block-popups"; + // + UICommands["WebViewEnableURLHoverActions"] = "webview-enable-url-hover-actions"; + // + UICommands["WorkgroupChangeDataserver"] = "workgroup-change-dataserver"; + // + UICommands["WorkgroupChangeServer"] = "workgroup-change-server"; + // + UICommands["WorkgroupChangeUser"] = "workgroup-change-user"; + // + UICommands["WorkgroupRemoveLastServer"] = "workgroup-remove-last-server"; + })(UICommands = exports.UICommands || (exports.UICommands = {})); + var SrvCommands; + (function (SrvCommands) { + // pings the server to test if the session is expired + SrvCommands["PingSession"] = "ping-session"; + // Applies snapshot from comments to the viz. + SrvCommands["ApplyCustomizedView"] = "apply-customized-view"; + // Refreshes VQLSession Data + SrvCommands["RefreshData"] = "refresh-data"; + })(SrvCommands = exports.SrvCommands || (exports.SrvCommands = {})); + (function (DocCommands) { + // Returns whether date properties should be enabled + DocCommands["GetDataSourceDatePropertiesAreEnabled"] = "get-datasource-date-properties-are-enabled"; + // Get presmodel to populate date properties dialog + DocCommands["GetDataSourceDateProperties"] = "get-datasource-date-properties"; + // Apply new settings for date properties + DocCommands["EditDataSourceDateProperties"] = "edit-datasource-date-properties"; + // Apply data source delta to data source + DocCommands["ApplyDataSourceDelta"] = "apply-datasource-delta"; + // Generate data source delta from local data source + DocCommands["GetDataSourceDelta"] = "get-datasource-delta"; + // Gets the pres model for the Save Datasource dialog + DocCommands["GetWebSaveDatasourceDialog"] = "get-web-save-datasource-dialog"; + // Creates a dialog in the browser to rename the datasource + DocCommands["WebRenameDatasourceDialog"] = "web-rename-datasource-dialog"; + // Switches the view to the data tab for editing + DocCommands["WebEditDataSource"] = "web-edit-data-source"; + // Toggles joining on null values + DocCommands["ToggleINDJoinSemantics"] = "toggle-ind-join-semantics"; + // Join Null Values to Null Values + DocCommands["ToggleINDJoinSemanticsWrapper"] = "toggle-indjoin-semantics-wrapper"; + // Toggles referential integrity + DocCommands["ToggleReferentialIntegrity"] = "toggle-referential-integrity"; + // Retrieves list of summary objects, one for each connection in a datasource. + DocCommands["GetConnectionDescriptionSummaryPresModels"] = "get-connection-description-summary-pres-models"; + // Gets the axis options . + DocCommands["GetAxisOptions"] = "get-axis-options"; + // Reset the axis options . + DocCommands["ResetAxisOptions"] = "reset-axis-options"; + // Show axis edit dialog + DocCommands["ShowEditAxisDialog"] = "show-edit-axis-dialog"; + // Sets the axis direction + DocCommands["SetAxisReversed"] = "set-axis-reversed"; + // Sets the axis scale type + DocCommands["SetAxisScaleType"] = "set-axis-scale-type"; + // Sets the main title of a quantitative axis + DocCommands["SetAxisTitle"] = "set-axis-title"; + // Sets the subtitle of a quantitative axis + DocCommands["SetAxisSubtitle"] = "set-axis-subtitle"; + // Sets whether we should use the automatic subtitle for a quantitative axis + DocCommands["SetAxisUseAutomaticSubtitle"] = "set-axis-use-automatic-subtitle"; + // Sets the axis range type of a quantitative axis + DocCommands["SetAxisExtentStartType"] = "set-axis-extent-start-type"; + // Sets the axis range type of a quantitative axis + DocCommands["SetAxisExtentEndType"] = "set-axis-extent-end-type"; + // Sets the axis range type of a quantitative axis + DocCommands["SetBothAxisExtentsType"] = "set-both-axis-extents-type"; + // Sets whether or not to force-include zero on a quantitative axis + DocCommands["SetAxisIncludeZero"] = "set-axis-include-zero"; + // Sets new min/max range endings for axis + DocCommands["SetAxisRangeEnd"] = "set-axis-range-end"; + // Sets new min/max range endings for axis + DocCommands["SetAxisRangeStart"] = "set-axis-range-start"; + // Synchronize dual axes on a folded quantitative axis + DocCommands["SetAxisFoldState"] = "set-axis-fold-state"; + // Set the major tick mark state + DocCommands["SetMajorTickMarkState"] = "set-major-tick-mark-state"; + // Set the minor tick mark state + DocCommands["SetMinorTickMarkState"] = "set-minor-tick-mark-state"; + // Set the major tick mark origin + DocCommands["SetMajorTickMarkOrigin"] = "set-major-tick-mark-origin"; + // Set the minor tick mark origin + DocCommands["SetMinorTickMarkOrigin"] = "set-minor-tick-mark-origin"; + // Set the major tick mark spacing + DocCommands["SetMajorTickMarkSpacing"] = "set-major-tick-mark-spacing"; + // Set the minor tick mark spacing + DocCommands["SetMinorTickMarkSpacing"] = "set-minor-tick-mark-spacing"; + // Set the major tick mark units + DocCommands["SetMajorTickMarkUnits"] = "set-major-tick-mark-units"; + // Set the minor tick mark units + DocCommands["SetMinorTickMarkUnits"] = "set-minor-tick-mark-units"; + // + DocCommands["BoundingBoxPan"] = "bounding-box-pan"; + // + DocCommands["OnToggleAxisRanges"] = "on-toggle-axis-ranges"; + // + DocCommands["PanePan"] = "pane-pan"; + // + DocCommands["PaneZoom"] = "pane-zoom"; + // + DocCommands["PaneZoomFactor"] = "pane-zoom-factor"; + // + DocCommands["PaneZoomPan"] = "pane-zoom-pan"; + // + DocCommands["ReorderFoldedAxes"] = "reorder-folded-axes"; + // + DocCommands["ResetAxisRange"] = "reset-axis-range"; + // + DocCommands["SelectAxisTuples"] = "select-axis-tuples"; + // + DocCommands["SwapReferenceLineFields"] = "swap-reference-line-fields"; + // + DocCommands["SynchronizeAxis"] = "synchronize-axis"; + // + DocCommands["ToggleDualAxis"] = "toggle-dual-axis"; + // + DocCommands["ZoomLevel"] = "zoom-level"; + })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); + + +/***/ }, +/* 84 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(80); + /** + * Registry which contains mappings from an Api VerbId to a pres-layer command. + * This includes the parameters and return values of the command as well + * + * @export + * @class CommandMappingRegistry + */ + var CommandMappingRegistry = (function () { + /** + * Creates an instance of CommandMappingRegistry. + * @memberof CommandMappingRegistry + */ + function CommandMappingRegistry() { + this._commands = {}; + } + /** + * Adds a new command to the registry + * + * @param {CommandRegistration} command + * @memberof CommandMappingRegistry + */ + CommandMappingRegistry.prototype.addCommand = function (command) { + this._commands[command.apiVerbId] = command; + }; + /** + * Whether or not this registry contains a definition for this ApiVerbId + * + * @param {ApiVerbId} apiVerbId + * @returns {boolean} + * @memberof CommandMappingRegistry + */ + CommandMappingRegistry.prototype.hasCommand = function (apiVerbId) { + if (!this._commands.hasOwnProperty(apiVerbId)) { + return false; + } + if (!this._commands[apiVerbId]) { + return false; + } + return true; + }; + /** + * Gets the command registration for this command id or throws if it doesn't exist + * + * @param {ApiVerbId} apiVerbId + * @returns {CommandRegistration} + * @memberof CommandMappingRegistry + */ + CommandMappingRegistry.prototype.getCommand = function (apiVerbId) { + if (!this.hasCommand(apiVerbId)) { + throw api_utils_1.TableauException.error(CommandMappingRegistry.UNKNOWN_APIVERB, [apiVerbId]); + } + return this._commands[apiVerbId]; + }; + CommandMappingRegistry.UNKNOWN_APIVERB = 'Unknown ApiVerb: %1'; + return CommandMappingRegistry; + }()); + exports.CommandMappingRegistry = CommandMappingRegistry; + + +/***/ }, +/* 85 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(79); + var api_utils_1 = __webpack_require__(80); + /** + * This is an enum used only internally by the api-core project. + * This enum represents the difference namespaces available for commands. + */ + var CommandNamespace; + (function (CommandNamespace) { + CommandNamespace["TabDoc"] = "tabdoc"; + CommandNamespace["TabSrv"] = "tabsrv"; + CommandNamespace["TabUI"] = "tabui"; + })(CommandNamespace = exports.CommandNamespace || (exports.CommandNamespace = {})); + /** + * Represents an input or output paramter for a command. + * + * @export + * @class CommandParameter + */ + var CommandParameter = (function () { + /** + * Creates an instance of CommandParameter. + * @param {ApiParameterId} apiId + * @param {PresLayerParameterId} presLayerId + * @param {boolean} [isOptional] + * @memberof CommandParameter + */ + function CommandParameter(_apiId, _presLayerId, _isOptional) { + this._apiId = _apiId; + this._presLayerId = _presLayerId; + this._isOptional = _isOptional; + } + Object.defineProperty(CommandParameter.prototype, "apiId", { + /** + * The Id of the Api Parameter + * + * @readonly + * @type {ApiParameterId} + * @memberof CommandParameter + */ + get: function () { + return this._apiId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandParameter.prototype, "presLayerId", { + /** + * The Id of the Pres Layer Parameter + * + * @readonly + * @type {PresLayerParameterId} + * @memberof CommandParameter + */ + get: function () { + return this._presLayerId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandParameter.prototype, "isOptional", { + /** + * Whether or not this is an optional parameter + * + * @readonly + * @type {boolean} + * @memberof CommandParameter + */ + get: function () { + return !!this._isOptional; + }, + enumerable: true, + configurable: true + }); + return CommandParameter; + }()); + exports.CommandParameter = CommandParameter; + /** + * Represents a the complete mapping of an ApiCommand to its corresponding pres-layer command + * and the conversion of the output value as well + * + * @export + * @class CommandRegistration + * + * @param {ApiVerbId} _apiVerbId the internal api verb ID of this command. + * @param {PresLayerDocCommandId | PresLayerSrvCommandId | PresLayerUICommandId} _commandId + * the pres layer command to execute + * @param {CommandParameter[]} _inputParameters list of parameters to send with this command to the platform. + * @param {CommandParameter} [isOptional] expected return paramters from the platform. + * @param {CommandNamespace} [isOptional] namespace of the command (defaults to TabDoc if not provided). + */ + var CommandRegistration = (function () { + function CommandRegistration(_apiVerbId, _commandId, _inputParameters, _outputParameter, _namespace) { + this._apiVerbId = _apiVerbId; + this._commandId = _commandId; + this._inputParameters = _inputParameters; + this._outputParameter = _outputParameter; + this._namespace = _namespace; + } + Object.defineProperty(CommandRegistration.prototype, "apiVerbId", { + get: function () { + return this._apiVerbId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "commandId", { + get: function () { + return this._commandId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "namespace", { + get: function () { + return this._namespace || CommandNamespace.TabDoc; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "inputs", { + get: function () { + return this._inputParameters || new Array(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "output", { + get: function () { + return this._outputParameter; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "needsAddInLocator", { + /** + * Whether or not this command requires an add-in locator to be injected into it + * + * @readonly + * @type {boolean} + * @memberof CommandRegistration + */ + get: function () { + for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { + var input = _a[_i]; + if (input.apiId === api_internal_contract_1.ParameterId.ExtensionLocator) { + return true; + } + } + return false; + }, + enumerable: true, + configurable: true + }); + /** + * Creates a dictionary of pres-layer parameters from the input dictionary + * of api parameters. + * + * @param {ExecuteParameters} parameters - The parameters to convert + * @param {ApiToPresLayerMappingRegistry} apiToPresLayer - mapping to determine the conversion + * @returns {{ [paramId: string]: object; }} - parameters to send to the pres-layer + * @memberof CommandRegistration + */ + CommandRegistration.prototype.createParams = function (parameters, apiToPresLayer) { + var result = {}; + for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { + var inputParam = _a[_i]; + // First make sure the parameter is there or that it's optional + if (!parameters.hasOwnProperty(inputParam.apiId)) { + if (inputParam.isOptional) { + continue; + } + else { + throw api_utils_1.TableauException.missingParameter([inputParam.apiId]); + } + } + // Find the conversion function for this parameter + var conversionFn = apiToPresLayer.get(inputParam.apiId, inputParam.presLayerId); + // Convert the pres model and insert it into our results object + result[inputParam.presLayerId] = conversionFn(parameters[inputParam.apiId]); + } + return result; + }; + /** + * Processes the result received back after executing a pres-layer command + * + * @param {{ [docParamId: string]: object; }} resultParameters + * @param {PresLayerToApiMappingRegistry} presLayerToApi + * @returns {Model} + * @memberof CommandRegistration + */ + CommandRegistration.prototype.ProcessResult = function (resultParameters, presLayerToApi) { + // TODO: Add error handling + if (this.output === undefined) { + var noOutputModel = {}; + return noOutputModel; + } + if (!resultParameters || !resultParameters.hasOwnProperty(this.output.presLayerId)) { + // if the output result is marked as optional, we don't consider this an error situation and just return an empty model + if (this.output.isOptional) { + return {}; + } + throw api_utils_1.TableauException.missingParameter([this.output.presLayerId]); + } + var conversionFn = presLayerToApi.get(this.output.presLayerId, this.output.apiId); + return conversionFn(resultParameters[this.output.presLayerId]); + }; + return CommandRegistration; + }()); + exports.CommandRegistration = CommandRegistration; + + +/***/ }, +/* 86 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(79); + var Events_1 = __webpack_require__(87); + var PresLayerToApiConverter_1 = __webpack_require__(88); + /** + * Simple wrapper which holds a mapping to go from a pres-layer event to an API event + */ + var EventMappingRegistration = (function () { + function EventMappingRegistration(_presLayerId, _apiId, _converter) { + this._presLayerId = _presLayerId; + this._apiId = _apiId; + this._converter = _converter; + } + Object.defineProperty(EventMappingRegistration.prototype, "presLayerId", { + get: function () { + return this._presLayerId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EventMappingRegistration.prototype, "apiId", { + get: function () { + return this._apiId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EventMappingRegistration.prototype, "converter", { + get: function () { + return this._converter; + }, + enumerable: true, + configurable: true + }); + return EventMappingRegistration; + }()); + exports.EventMappingRegistration = EventMappingRegistration; + var EventMappingRegistryFactory = (function () { + function EventMappingRegistryFactory() { + } + /** + * Creates and populates a new EventMappingRegistry for the specific version number requested + * + * @param {VersionNumber} versionNumber + * @returns {EventMappingRegistry} + */ + EventMappingRegistryFactory.createEventMappingRegistry = function (versionNumber) { + var registry = {}; + registry[Events_1.NotificationId.SelectionChanged] = new EventMappingRegistration(Events_1.NotificationId.SelectionChanged, api_internal_contract_1.NotificationId.SelectedMarksChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId); + registry[Events_1.NotificationId.ParameterChanged] = new EventMappingRegistration(Events_1.NotificationId.ParameterChanged, api_internal_contract_1.NotificationId.ParameterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFieldCaptionPair); + registry[Events_1.NotificationId.FilterChanged] = new EventMappingRegistration(Events_1.NotificationId.FilterChanged, api_internal_contract_1.NotificationId.FilterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFilterEvent); + return registry; + }; + return EventMappingRegistryFactory; + }()); + exports.EventMappingRegistryFactory = EventMappingRegistryFactory; + + +/***/ }, +/* 87 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable */ + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/events-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-events.data', '../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/events-common.template'] + Object.defineProperty(exports, "__esModule", { value: true }); + // Events you can register to receive presentation models + var NotificationId; + (function (NotificationId) { + // Triggered when aliases are to be edited. Used to launch a dialog. + NotificationId["EditAliasesDialogNotification"] = "doc:edit-aliases-dialog-notification-event"; + // for the calculation dialog + NotificationId["CalculationDialog"] = "doc:calculation-dialog-event"; + // update for an adhoc calc in a type in pill + NotificationId["TypeInPill"] = "doc:type-in-pill-event"; + // results of a validation command + NotificationId["CommandValidation"] = "doc:command-validation-event"; + // event for the groups dialog + NotificationId["UpdateCategoricalBinEditDialog"] = "doc:update-categorical-bin-edit-dialog-event"; + // for the categorical color dialog + NotificationId["CategoricalColor"] = "doc:categorical-color-event"; + // update the web categorical color dialog + NotificationId["WebCategoricalColorDialog"] = "doc:web-categorical-color-dialog-event"; + // user invoked action which requires a Data Alert Dialog + NotificationId["DataAlertDialog"] = "doc:data-alert-dialog-event"; + // event to select field(s) in the data schema + NotificationId["DataSchemaSelection"] = "doc:data-schema-selection-event"; + // event for when the data source being edited is updated + NotificationId["UpdateDataPreparation"] = "doc:update-data-preparation-event"; + // event for when the data source data is updated + NotificationId["UpdateDataSourceData"] = "doc:update-data-source-data-event"; + // event for when a client should request new data source or data source data pres models + NotificationId["DataSourceUpdateNeeded"] = "doc:data-source-update-needed-event"; + // event for getting the pres model to update file join table properties + NotificationId["TextFileProperties"] = "doc:text-file-properties-event"; + // notify changes to the state of a filter's relational model + NotificationId["FilterRelationalStateChanged"] = "doc:filter-relational-state-changed-event"; + // notify changes to the size/selection count of a relational domain + NotificationId["FilterRelationalDomainChanged"] = "doc:filter-relational-domain-changed-event"; + // notify when filter cache was requested but not found + NotificationId["FilterCacheNotFound"] = "doc:filter-cache-not-found-event"; + // Hierarchy Select model observable notification. + NotificationId["HierarchyNotification"] = "doc:hierarchy-notification-event"; + // Hierarchy selection change notifications. + NotificationId["HierarchySelection"] = "doc:hierarchy-selection-event"; + // event for the map options dialog + NotificationId["MapOptionsDialog"] = "doc:map-options-dialog-event"; + // notify the Page UI(hide/show states, layout) needs to be updated + NotificationId["UpdatePageUINotification"] = "doc:update-page-uinotification-event"; + // notify to the SceneView has been drawn. + NotificationId["SceneViewDrawnNotification"] = "doc:scene-view-drawn-notification-event"; + // The AnimationControlChange event fires when the user clicks an animation playback button: forward, stop, slow, fast, etc. + NotificationId["AnimationControlChange"] = "doc:animation-control-change-event"; + // notify the sheet has been renamed + NotificationId["RenameSheetNotification"] = "doc:rename-sheet-notification-event"; + // update the web quantitative color dialog + NotificationId["WebQuantitativeColorDialog"] = "doc:web-quantitative-color-dialog-event"; + // update the button config dialog + NotificationId["UpdateButtonConfigDialog"] = "doc:update-button-config-dialog-event"; + // event for the reference line dialog, which is only valid during web authoring + NotificationId["UpdateRefLineDialog"] = "doc:update-ref-line-dialog-event"; + // event to trigger other reference line dialogs to close + NotificationId["RefLineDialogOpening"] = "doc:ref-line-dialog-opening-event"; + // event for the close data source error dialog, which is only valid during web authoring + NotificationId["CloseDataSourceErrorDialog"] = "doc:close-data-source-error-dialog-event"; + // update the web Save Datasource dialog + NotificationId["WebSaveDatasourceDialog"] = "doc:web-save-datasource-dialog-event"; + // warning resulting from WarningMsg + NotificationId["WarningMessage"] = "doc:warning-message-event"; + // event for the table calc dialog, on web, this is only valid during web authoring + NotificationId["TableCalcDialog"] = "doc:table-calc-dialog-event"; + // user invoked action which requires Table Calc Dialog + NotificationId["TableCalcActivateDialog"] = "doc:table-calc-activate-dialog-event"; + // event for the trend line dialog + NotificationId["UpdateTrendLineEditDialog"] = "doc:update-trend-line-edit-dialog-event"; + // The table page cache has been refreshed; pages must be reloaded from the cache. + NotificationId["PageCacheRefresh"] = "doc:page-cache-refresh-event"; + // The table page cache has expired and all resources have been released. + NotificationId["PageCacheExpired"] = "doc:page-cache-expired-event"; + // All pages, identified by row/col, in the provided list have expired and should be reloaded. + NotificationId["PageCachePagesExpired"] = "doc:page-cache-pages-expired-event"; + // All pages betweem the range (inclusive) in the provided list have expired and should be reloaded. + NotificationId["PageCachePageRangeExpired"] = "doc:page-cache-page-range-expired-event"; + // Triggered when the user wants to reload an add-in instance. + NotificationId["ReloadAddIn"] = "doc:reload-add-in-event"; + // Triggered when the selected marks have changed. + NotificationId["SelectionChanged"] = "doc:selection-changed-event"; + // Triggered when the value of a parameter has changed. Emits the name and caption of the parameter + NotificationId["ParameterChanged"] = "doc:parameter-changed-event"; + // Triggered when the filters have changed. + NotificationId["FilterChanged"] = "doc:filter-changed-event"; + // Triggered when saved cluster needs to be recalculated. + NotificationId["ClusterRefitNotification"] = "doc:cluster-refit-notification-event"; + // event for the detailed error dialog + NotificationId["UpdateDetailedErrorDialog"] = "doc:update-detailed-error-dialog-event"; + // update the axis edit dialog + NotificationId["UpdateEditAxisDialog"] = "doc:update-edit-axis-dialog-event"; + // notification to launch the hybrid UI showcase + NotificationId["LaunchHybridUIShowcase"] = "doc:launch-hybrid-uishowcase-event"; + // notification of new echoed text for HybridUI showcase demo + NotificationId["HybridUIShowcaseEcho"] = "doc:hybrid-uishowcase-echo-event"; + // event for the bin dialog + NotificationId["UpdateNumericBinEditDialog"] = "doc:update-numeric-bin-edit-dialog-event"; + // Update for the rich text editor dialog + NotificationId["RichTextEditorDialog"] = "doc:rich-text-editor-dialog-event"; + // event for the sort dialog + NotificationId["UpdateSortDialog"] = "doc:update-sort-dialog-event"; + // a test event with a pres model + NotificationId["TestEventWithModel"] = "doc:test-event-with-model-event"; + // a test event without a pres model + NotificationId["TestEventWithoutModel"] = "doc:test-event-without-model-event"; + })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); + + +/***/ }, +/* 88 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Api = __webpack_require__(79); + var api_utils_1 = __webpack_require__(80); + var EnumMappings_1 = __webpack_require__(89); + /** + * Class containing helper methods for converting from PresLayerPresModels to their ApiPresModels equivalents + * + * @export + * @class PresLayerToApiConverter + */ + var PresLayerToApiConverter = (function () { + function PresLayerToApiConverter() { + } + PresLayerToApiConverter.convertSheetPath = function (plSheetPath) { + var result = { + sheetName: plSheetPath.sheetName, + isDashboard: plSheetPath.isDashboard, + storyboard: plSheetPath.storyboard, + flipboardZoneID: plSheetPath.flipboardZoneId, + storyPointID: plSheetPath.storyPointId, + }; + return result; + }; + PresLayerToApiConverter.convertVisualId = function (plVisualId) { + var result = { + worksheet: plVisualId.worksheet, + dashboard: plVisualId.dashboard, + storyboard: plVisualId.storyboard, + flipboardZoneID: plVisualId.flipboardZoneId, + storyPointID: plVisualId.storyPointId, + }; + return result; + }; + PresLayerToApiConverter.convertExtensionLocator = function (plAddInLocator) { + var dashboardPath = undefined; + if (plAddInLocator.sheetPath) { + dashboardPath = PresLayerToApiConverter.convertSheetPath(plAddInLocator.sheetPath); + } + var result = { + instanceId: plAddInLocator.addInInstanceId, + dashboardPath: dashboardPath + }; + return result; + }; + PresLayerToApiConverter.convertDashboardInZones = function (plDashboard) { + var result = new Array(); + for (var _i = 0, _a = Object.keys(plDashboard.zones); _i < _a.length; _i++) { + var zoneKey = _a[_i]; + var zone = plDashboard.zones[zoneKey]; + var apiZone = { + name: zone.zoneCommon.name, + zoneId: zone.zoneId, + zoneType: EnumMappings_1.PresLayerToApiEnumMappings.zoneType.convert(zone.zoneCommon.zoneType), + height: zone.zoneCommon.h, + width: zone.zoneCommon.w, + x: zone.zoneCommon.x, + y: zone.zoneCommon.y + }; + result.push(apiZone); + } + return result; + }; + PresLayerToApiConverter.convertDashboardInfo = function (plDashboardInfo) { + var result = { + zones: PresLayerToApiConverter.convertDashboardInZones(plDashboardInfo.dashboardPresModel), + name: plDashboardInfo.dashboardPresModel.sheetPath.sheetName, + extensionZoneId: plDashboardInfo.zoneId, + size: plDashboardInfo.dashboardPresModel.viewportSize + }; + return result; + }; + PresLayerToApiConverter.convertExtensionInstance = function (plAddInInstance) { + var result = { + url: plAddInInstance.addInRegistrationPresModel.url, + locator: PresLayerToApiConverter.convertExtensionLocator(plAddInInstance.addInLocatorPresModel) + }; + return result; + }; + PresLayerToApiConverter.convertExtensionEnivrionment = function (plAddInEnvironment) { + var result = { + extensionContext: EnumMappings_1.PresLayerToApiEnumMappings.extensionContext.convert(plAddInEnvironment.addInContext), + extensionMode: EnumMappings_1.PresLayerToApiEnumMappings.extensionMode.convert(plAddInEnvironment.addInMode), + extensionLocale: plAddInEnvironment.addInLocale, + extensionLanguage: plAddInEnvironment.addInLanguage, + tableauVersion: plAddInEnvironment.tableauVersion, + operatingSystem: plAddInEnvironment.operatingSystem, + apiVersion: plAddInEnvironment.apiVersion + }; + return result; + }; + PresLayerToApiConverter.convertExtensionSettingsInfo = function (plAddInSettings) { + var result = { + // addInSettings is undefined during bootstrap initialization + settingsValues: plAddInSettings.addInSettings || {} + }; + return result; + }; + PresLayerToApiConverter.convertExtensionBootstrapInfo = function (plBootstrapInfo) { + var result = { + extensionDashboardInfo: PresLayerToApiConverter.convertDashboardInfo(plBootstrapInfo.addInDashboardInfoPresModel), + extensionEnvironment: PresLayerToApiConverter.convertExtensionEnivrionment(plBootstrapInfo.addInEnvironmentPresModel), + extensionInstance: PresLayerToApiConverter.convertExtensionInstance(plBootstrapInfo.addInInstancePresModel), + extensionSettingsInfo: PresLayerToApiConverter.convertExtensionSettingsInfo(plBootstrapInfo.addInSettingsInfo) + }; + return result; + }; + PresLayerToApiConverter.convertFieldCaptionPair = function (plFieldCaptionPair) { + return plFieldCaptionPair.fn; + }; + PresLayerToApiConverter.convertFilterEvent = function (plFilterEvent) { + var result = { + visualId: PresLayerToApiConverter.convertVisualId(plFilterEvent.visualIdPresModel), + fieldName: plFilterEvent.fieldCaption + }; + return result; + }; + PresLayerToApiConverter.convertDataSchema = function (dataSchema) { + var apiDataSources = {}; + api_utils_1.Param.verifyValue(dataSchema, 'dataSchema'); + api_utils_1.Param.verifyValue(dataSchema.dataSources, 'dataSchema.dataSources'); + // Convert each pres layer datasource in the schema to an Api datasource + Object.keys(dataSchema.dataSources).forEach(function (key) { + // Skip the default Parameters datasource we receive from the platform. + if (dataSchema.dataSources[key].datasource !== PresLayerToApiConverter.PARAMETERS_DB_NAME) { + apiDataSources[key] = PresLayerToApiConverter.convertDataSource(dataSchema.dataSources[key]); + } + }); + var schemaMap = PresLayerToApiConverter.convertWorksheetDataSchemaMap(dataSchema.worksheetDataSchemaMap); + var result = { + dataSources: apiDataSources, + worksheetDataSchemaMap: schemaMap, + }; + return result; + }; + PresLayerToApiConverter.convertDataSource = function (dataSource) { + var extractUpdateTime = (dataSource.extractUpdateTime === '') ? undefined : dataSource.extractUpdateTime; + var dataSourceFields = new Array(); + api_utils_1.Param.verifyValue(dataSource, 'dataSource'); + api_utils_1.Param.verifyValue(dataSource.fieldList, 'dataSchema.fieldList'); + dataSource.fieldList.forEach(function (plField) { + // If the datasource contains hierarchies or folders, the base field will contain + // a list of the fields grouped beneath it, we are interested in those. + // Tableau does not support nested folders or hierarchies, so this does not need to be recursive. + var hierarchyModel = plField; + if (hierarchyModel.columnList) { + hierarchyModel.columnList.forEach(function (field) { return dataSourceFields.push(PresLayerToApiConverter.convertField(field)); }); + } + else { + // This is a bit brittle for now, but this value is not exposed via the platform FieldType Enum. + if (plField.type !== 'field-folder' && plField.type !== 'dimension') { + dataSourceFields.push(PresLayerToApiConverter.convertField(plField)); + } + } + }); + var result = { + name: dataSource.datasourceCaption, + id: dataSource.datasource, + isExtract: (extractUpdateTime !== undefined), + extractUpdateTime: extractUpdateTime, + fields: dataSourceFields + }; + return result; + }; + PresLayerToApiConverter.convertWorksheetDataSchemaMap = function (schemaMap) { + var result = {}; + Object.keys(schemaMap).forEach(function (key) { + // We need to remove any references to the "Parameters" datasource. This is treated as a separate + // datasource by the platform, but the Extensions API accesses Parameters directly. + var cleanReferencedDataSourceList = schemaMap[key].referencedDataSourceList.filter(function (dsName) { + return dsName !== PresLayerToApiConverter.PARAMETERS_DB_NAME; + }); + var worksheetDataSourceInfo = { + primaryDataSource: schemaMap[key].primaryDatasource, + referencedDataSourceList: cleanReferencedDataSourceList + }; + result[key] = worksheetDataSourceInfo; + }); + return result; + }; + PresLayerToApiConverter.convertField = function (plField) { + var fieldColumn = plField; + var groupColumn = plField; + var aggregation = Api.FieldAggregationType.None; + var role = Api.FieldRoleType.Unknown; + var isCalculated = false; + // We expect that every FieldPresModel we get back from the command that returns FieldPresModels + // is actually an instance of the derived FieldColumnPresModel. + if (fieldColumn.aggregation && fieldColumn.fieldRole) { + aggregation = EnumMappings_1.PresLayerToApiEnumMappings.fieldAggregationType.convert(fieldColumn.aggregation); + role = EnumMappings_1.PresLayerToApiEnumMappings.fieldRoleType.convert(fieldColumn.fieldRole); + isCalculated = fieldColumn.isCalculated || false; + } + else { + throw new Error('Unexpected Internal Error: field pres model is missing expected properties.'); + } + var result = { + name: plField.description, + id: plField.name, + description: plField.userCaption, + aggregation: aggregation, + isHidden: !!(plField.isHidden), + isGenerated: plField.isGenerated, + isCalculatedField: isCalculated, + role: role, + isCombinedField: !!(groupColumn.isCombinedField) + }; + return result; + }; + PresLayerToApiConverter.convertJoinDescription = function (plJoinDescription) { + api_utils_1.Param.verifyValue(plJoinDescription, 'plJoinDescription'); + var apiTables = plJoinDescription.joinTableInfos.map(function (joinTable) { + var apiTable = { + name: joinTable.tableAlias, + id: joinTable.tableName, + customSQL: (joinTable.isCustomSql) ? joinTable.sqlQuery : undefined, + connectionClassName: joinTable.connectionClassName, + connectionId: joinTable.connectionName + }; + return apiTable; + }); + var result = { + tables: apiTables + }; + return result; + }; + PresLayerToApiConverter.convertConnectionDescrptionSummaries = function (plConnectionDescription) { + return plConnectionDescription.map(function (plSummary) { + var apiConnection = { + name: plSummary.connectionDescriptionLabel, + id: plSummary.connectionName, + type: plSummary.connectionTypeLabel, + serverURI: plSummary.connectionUri + }; + return apiConnection; + }); + }; + PresLayerToApiConverter.PARAMETERS_DB_NAME = 'Parameters'; + return PresLayerToApiConverter; + }()); + exports.PresLayerToApiConverter = PresLayerToApiConverter; + + +/***/ }, +/* 89 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(79); + var api_utils_1 = __webpack_require__(80); + var Enums = __webpack_require__(90); + /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ + var PresLayerToApiEnumMappings = (function () { + function PresLayerToApiEnumMappings() { + } + PresLayerToApiEnumMappings.zoneType = new api_utils_1.EnumConverter((_a = {}, + _a[Enums.ZoneType.ZT_Invalid] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Viz] = api_internal_contract_1.DashboardObjectType.Worksheet, + _a[Enums.ZoneType.ZT_ColorLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_ShapeLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_SizeLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_MapLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_QuickFilter] = api_internal_contract_1.DashboardObjectType.QuickFilter, + _a[Enums.ZoneType.ZT_Highlighter] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_CurrPage] = api_internal_contract_1.DashboardObjectType.PageFilter, + _a[Enums.ZoneType.ZT_Empty] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Title] = api_internal_contract_1.DashboardObjectType.Title, + _a[Enums.ZoneType.ZT_Text] = api_internal_contract_1.DashboardObjectType.Text, + _a[Enums.ZoneType.ZT_Bitmap] = api_internal_contract_1.DashboardObjectType.Image, + _a[Enums.ZoneType.ZT_Web] = api_internal_contract_1.DashboardObjectType.WebPage, + _a[Enums.ZoneType.ZT_AddIn] = api_internal_contract_1.DashboardObjectType.Extension, + _a[Enums.ZoneType.ZT_ParamCtrl] = api_internal_contract_1.DashboardObjectType.ParameterControl, + _a[Enums.ZoneType.ZT_FlipboardNav] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Flipboard] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_LayoutBasic] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_LayoutFlow] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_LayoutFreeForm] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_End] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Button] = api_internal_contract_1.DashboardObjectType.Blank, + _a), api_internal_contract_1.DashboardObjectType.Blank); + PresLayerToApiEnumMappings.extensionContext = new api_utils_1.EnumConverter((_b = {}, + _b[Enums.AddInContext.Unknown] = api_internal_contract_1.ExtensionContext.Unknown, + _b[Enums.AddInContext.Desktop] = api_internal_contract_1.ExtensionContext.Desktop, + _b[Enums.AddInContext.Server] = api_internal_contract_1.ExtensionContext.Server, + _b)); + PresLayerToApiEnumMappings.extensionMode = new api_utils_1.EnumConverter((_c = {}, + _c[Enums.AddInMode.Unknown] = api_internal_contract_1.ExtensionMode.Unknown, + _c[Enums.AddInMode.Authoring] = api_internal_contract_1.ExtensionMode.Authoring, + _c[Enums.AddInMode.Viewing] = api_internal_contract_1.ExtensionMode.Viewing, + _c)); + PresLayerToApiEnumMappings.dataType = new api_utils_1.EnumConverter((_d = {}, + _d[Enums.DataType.DT_BOOLEAN] = api_internal_contract_1.DataType.Bool, + _d[Enums.DataType.DT_DATE] = api_internal_contract_1.DataType.Date, + _d[Enums.DataType.DT_DATETIME] = api_internal_contract_1.DataType.DateTime, + _d[Enums.DataType.DT_INTEGER] = api_internal_contract_1.DataType.Int, + _d[Enums.DataType.DT_REAL] = api_internal_contract_1.DataType.Float, + _d[Enums.DataType.DT_STRING] = api_internal_contract_1.DataType.String, + _d[Enums.DataType.DT_SPATIAL] = api_internal_contract_1.DataType.Spatial, + _d)); + PresLayerToApiEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_e = {}, + _e[Enums.AggType.AGG_ATTR] = api_internal_contract_1.FieldAggregationType.Attr, + _e[Enums.AggType.AGG_AVG] = api_internal_contract_1.FieldAggregationType.Avg, + _e[Enums.AggType.AGG_COUNT] = api_internal_contract_1.FieldAggregationType.Count, + _e[Enums.AggType.AGG_COUNTD] = api_internal_contract_1.FieldAggregationType.Countd, + _e[Enums.AggType.AGG_DAY] = api_internal_contract_1.FieldAggregationType.Day, + _e[Enums.AggType.AGG_END] = api_internal_contract_1.FieldAggregationType.End, + _e[Enums.AggType.AGG_HOUR] = api_internal_contract_1.FieldAggregationType.Hour, + _e[Enums.AggType.AGG_INOUT] = api_internal_contract_1.FieldAggregationType.InOut, + _e[Enums.AggType.AGG_KURTOSIS] = api_internal_contract_1.FieldAggregationType.Kurtosis, + _e[Enums.AggType.AGG_MAX] = api_internal_contract_1.FieldAggregationType.Max, + _e[Enums.AggType.AGG_MDY] = api_internal_contract_1.FieldAggregationType.Mdy, + _e[Enums.AggType.AGG_MEDIAN] = api_internal_contract_1.FieldAggregationType.Median, + _e[Enums.AggType.AGG_MIN] = api_internal_contract_1.FieldAggregationType.Min, + _e[Enums.AggType.AGG_MINUTE] = api_internal_contract_1.FieldAggregationType.Minute, + _e[Enums.AggType.AGG_MONTHYEAR] = api_internal_contract_1.FieldAggregationType.MonthYear, + _e[Enums.AggType.AGG_NONE] = api_internal_contract_1.FieldAggregationType.None, + _e[Enums.AggType.AGG_QTR] = api_internal_contract_1.FieldAggregationType.Qtr, + _e[Enums.AggType.AGG_QUART1] = api_internal_contract_1.FieldAggregationType.Quart1, + _e[Enums.AggType.AGG_QUART3] = api_internal_contract_1.FieldAggregationType.Quart3, + _e[Enums.AggType.AGG_SECOND] = api_internal_contract_1.FieldAggregationType.Second, + _e[Enums.AggType.AGG_SKEWNESS] = api_internal_contract_1.FieldAggregationType.Skewness, + _e[Enums.AggType.AGG_STDEV] = api_internal_contract_1.FieldAggregationType.Stdev, + _e[Enums.AggType.AGG_STDEVP] = api_internal_contract_1.FieldAggregationType.Stdevp, + _e[Enums.AggType.AGG_SUM] = api_internal_contract_1.FieldAggregationType.Sum, + _e[Enums.AggType.TRUNC_DAY] = api_internal_contract_1.FieldAggregationType.TruncDay, + _e[Enums.AggType.TRUNC_HOUR] = api_internal_contract_1.FieldAggregationType.TruncHour, + _e[Enums.AggType.TRUNC_MINUTE] = api_internal_contract_1.FieldAggregationType.TruncMinute, + _e[Enums.AggType.TRUNC_MONTH] = api_internal_contract_1.FieldAggregationType.TruncMonth, + _e[Enums.AggType.TRUNC_QTR] = api_internal_contract_1.FieldAggregationType.TruncQtr, + _e[Enums.AggType.TRUNC_SECOND] = api_internal_contract_1.FieldAggregationType.TruncSecond, + _e[Enums.AggType.TRUNC_WEEK] = api_internal_contract_1.FieldAggregationType.TruncWeek, + _e[Enums.AggType.TRUNC_YEAR] = api_internal_contract_1.FieldAggregationType.TruncYear, + _e[Enums.AggType.AGG_USER] = api_internal_contract_1.FieldAggregationType.User, + _e[Enums.AggType.AGG_VAR] = api_internal_contract_1.FieldAggregationType.Var, + _e[Enums.AggType.AGG_VARP] = api_internal_contract_1.FieldAggregationType.Varp, + _e[Enums.AggType.AGG_WEEK] = api_internal_contract_1.FieldAggregationType.Week, + _e[Enums.AggType.AGG_WEEKDAY] = api_internal_contract_1.FieldAggregationType.Weekday, + _e[Enums.AggType.AGG_YEAR] = api_internal_contract_1.FieldAggregationType.Year, + _e)); + PresLayerToApiEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_f = {}, + _f[Enums.FieldRole.ROLE_DIMENSION] = api_internal_contract_1.FieldRoleType.Dimension, + _f[Enums.FieldRole.ROLE_MEASURE] = api_internal_contract_1.FieldRoleType.Measure, + _f)); + PresLayerToApiEnumMappings.parameterTypesDomainType = new api_utils_1.EnumConverter((_g = {}, + _g[Enums.ParameterTypesDomainType.Domain_Any] = api_internal_contract_1.DomainRestrictionType.All, + _g[Enums.ParameterTypesDomainType.Domain_List] = api_internal_contract_1.DomainRestrictionType.List, + _g[Enums.ParameterTypesDomainType.Domain_Range] = api_internal_contract_1.DomainRestrictionType.Range, + _g)); + PresLayerToApiEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_h = {}, + _h[Enums.DatePeriodType.PeriodYear] = api_internal_contract_1.DateStepPeriod.Years, + _h[Enums.DatePeriodType.PeriodQuarter] = api_internal_contract_1.DateStepPeriod.Quarters, + _h[Enums.DatePeriodType.PeriodMonth] = api_internal_contract_1.DateStepPeriod.Months, + _h[Enums.DatePeriodType.PeriodWeek] = api_internal_contract_1.DateStepPeriod.Weeks, + _h[Enums.DatePeriodType.PeriodDay] = api_internal_contract_1.DateStepPeriod.Days, + _h[Enums.DatePeriodType.PeriodHour] = api_internal_contract_1.DateStepPeriod.Hours, + _h[Enums.DatePeriodType.PeriodMinute] = api_internal_contract_1.DateStepPeriod.Minutes, + _h[Enums.DatePeriodType.PeriodSecond] = api_internal_contract_1.DateStepPeriod.Seconds, + _h)); + PresLayerToApiEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_j = {}, + _j[Enums.FiltersRelativeDateRangeType.RangeCurrent] = api_internal_contract_1.DateRangeType.Current, + _j[Enums.FiltersRelativeDateRangeType.RangeCurrentToDate] = api_internal_contract_1.DateRangeType.ToDate, + _j[Enums.FiltersRelativeDateRangeType.RangeLast1] = api_internal_contract_1.DateRangeType.Last, + _j[Enums.FiltersRelativeDateRangeType.RangeLastN] = api_internal_contract_1.DateRangeType.LastN, + _j[Enums.FiltersRelativeDateRangeType.RangeNext1] = api_internal_contract_1.DateRangeType.Next, + _j[Enums.FiltersRelativeDateRangeType.RangeNextN] = api_internal_contract_1.DateRangeType.NextN, + _j)); + PresLayerToApiEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_k = {}, + _k[Enums.FiltersDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant, + _k[Enums.FiltersDomainType.Database] = api_internal_contract_1.FilterDomainType.Database, + _k)); + return PresLayerToApiEnumMappings; + }()); + exports.PresLayerToApiEnumMappings = PresLayerToApiEnumMappings; + var ApiToPresLayerEnumMappings = (function () { + function ApiToPresLayerEnumMappings() { + } + ApiToPresLayerEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_a = {}, + _a[api_internal_contract_1.FilterUpdateType.Add] = Enums.FilterUpdateType.ADD, + _a[api_internal_contract_1.FilterUpdateType.All] = Enums.FilterUpdateType.ALL, + _a[api_internal_contract_1.FilterUpdateType.Replace] = Enums.FilterUpdateType.REPLACE, + _a[api_internal_contract_1.FilterUpdateType.Remove] = Enums.FilterUpdateType.REMOVE, + _a)); + ApiToPresLayerEnumMappings.nullOption = new api_utils_1.EnumConverter((_b = {}, + _b[api_internal_contract_1.FilterNullOption.AllValues] = Enums.FiltersQuantitativeIncludedValues.All, + _b[api_internal_contract_1.FilterNullOption.NonNullValues] = Enums.FiltersQuantitativeIncludedValues.NonNull, + _b[api_internal_contract_1.FilterNullOption.NullValues] = Enums.FiltersQuantitativeIncludedValues.Null, + _b)); + ApiToPresLayerEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_c = {}, + _c[api_internal_contract_1.FilterDomainType.Relevant] = Enums.FiltersDomainType.Relevant, + _c[api_internal_contract_1.FilterDomainType.Database] = Enums.FiltersDomainType.Database, + _c)); + return ApiToPresLayerEnumMappings; + }()); + exports.ApiToPresLayerEnumMappings = ApiToPresLayerEnumMappings; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _a, _b, _c; + /* tslint:enable:typedef */ + + +/***/ }, +/* 90 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable */ + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-enums.data'] + Object.defineProperty(exports, "__esModule", { value: true }); + // + var DataScaling; + (function (DataScaling) { + // + DataScaling["SCALING_NONE"] = "none"; + // + DataScaling["SCALING_STANDARDIZED"] = "standardized"; + // + DataScaling["SCALING_NORMALIZED"] = "normalized"; + })(DataScaling = exports.DataScaling || (exports.DataScaling = {})); + // + var ForecastModelType; + (function (ForecastModelType) { + // + ForecastModelType["ForecastModelTypeAutoSeason"] = "auto-season"; + // + ForecastModelType["ForecastModelTypeAuto"] = "auto"; + // + ForecastModelType["ForecastModelTypeCustom"] = "custom"; + })(ForecastModelType = exports.ForecastModelType || (exports.ForecastModelType = {})); + // + var ForecastRangeType; + (function (ForecastRangeType) { + // + ForecastRangeType["ForecastRangeTypeAuto"] = "auto"; + // + ForecastRangeType["ForecastRangeTypeNext"] = "next"; + // + ForecastRangeType["ForecastRangeTypeEndOf"] = "end-of"; + })(ForecastRangeType = exports.ForecastRangeType || (exports.ForecastRangeType = {})); + // + var ForecastStatus; + (function (ForecastStatus) { + // + ForecastStatus["FS_VALID"] = "fs-valid"; + // + ForecastStatus["FS_INVALID_DATETIME"] = "fs-invalid-datetime"; + // + ForecastStatus["FS_INVALID_RESPONSE"] = "fs-invalid-response"; + // + ForecastStatus["FS_NEED_MORE_DATA"] = "fs-need-more-data"; + // + ForecastStatus["FS_TIME_SERIES_TOO_SHORT"] = "fs-time-series-too-short"; + // + ForecastStatus["FS_TIME_SERIES_IRREGULAR"] = "fs-time-series-irregular"; + // + ForecastStatus["FS_NULL_DATETIME"] = "fs-null-datetime"; + // + ForecastStatus["FS_NULL_RESPONSE"] = "fs-null-response"; + // + ForecastStatus["FS_METADATA_INVALID"] = "fs-metadata-invalid"; + // + ForecastStatus["FS_NO_RESPONSE"] = "fs-no-response"; + // + ForecastStatus["FS_EXCESS_DATA"] = "fs-excess-data"; + // + ForecastStatus["FS_EXCESS_PARTITIONS"] = "fs-excess-partitions"; + // + ForecastStatus["FS_DIMENSION_INVALID"] = "fs-dimension-invalid"; + // + ForecastStatus["FS_TABLECALC_INVALID"] = "fs-tablecalc-invalid"; + // + ForecastStatus["FS_TIME_SERIES_TOO_IRREGULAR"] = "fs-time-series-too-irregular"; + // + ForecastStatus["FS_AGGREGATE_FILTER"] = "fs-aggregate-filter"; + // + ForecastStatus["FS_DISAGGREGATE_RESPONSE"] = "fs-disaggregate-response"; + // + ForecastStatus["FS_PERCENTAGE_INVALID"] = "fs-percentage-invalid"; + // + ForecastStatus["FS_TOTAL_INVALID"] = "fs-total-invalid"; + // + ForecastStatus["FS_EXCESS_DATETIME"] = "fs-excess-datetime"; + // + ForecastStatus["FS_DATE_AGG_INCOMPATIBLE"] = "fs-date-agg-incompatible"; + // + ForecastStatus["FS_TIME_SERIES_NOT_POSITIVE"] = "fs-time-series-not-positive"; + // + ForecastStatus["FS_REQUESTED_MODEL_INVALID"] = "fs-requested-model-invalid"; + // + ForecastStatus["FS_TOO_SHORT_FOR_SEASON"] = "fs-too-short-for-season"; + // + ForecastStatus["FS_REQUESTED_MODEL_UNSTABLE"] = "fs-requested-model-unstable"; + // + ForecastStatus["FS_UNDEFINED"] = "fs-undefined"; + })(ForecastStatus = exports.ForecastStatus || (exports.ForecastStatus = {})); + // + var StyleAttribute; + (function (StyleAttribute) { + // + StyleAttribute["saAlternateText"] = "saAlternateText"; + // + StyleAttribute["saAltMarkColor"] = "saAltMarkColor"; + // + StyleAttribute["saAspect"] = "saAspect"; + // + StyleAttribute["saAutoSubtitle"] = "saAutoSubtitle"; + // + StyleAttribute["saBackgroundColor"] = "saBackgroundColor"; + // + StyleAttribute["saBackgroundTransparency"] = "saBackgroundTransparency"; + // + StyleAttribute["saBandSize"] = "saBandSize"; + // + StyleAttribute["saBandColor"] = "saBandColor"; + // + StyleAttribute["saBandLevel"] = "saBandLevel"; + // + StyleAttribute["saBodyType"] = "saBodyType"; + // + StyleAttribute["saBorderColor"] = "saBorderColor"; + // + StyleAttribute["saBorderColorTop"] = "saBorderColorTop"; + // + StyleAttribute["saBorderColorRight"] = "saBorderColorRight"; + // + StyleAttribute["saBorderColorBottom"] = "saBorderColorBottom"; + // + StyleAttribute["saBorderColorLeft"] = "saBorderColorLeft"; + // + StyleAttribute["saBorderStyle"] = "saBorderStyle"; + // + StyleAttribute["saBorderStyleTop"] = "saBorderStyleTop"; + // + StyleAttribute["saBorderStyleRight"] = "saBorderStyleRight"; + // + StyleAttribute["saBorderStyleBottom"] = "saBorderStyleBottom"; + // + StyleAttribute["saBorderStyleLeft"] = "saBorderStyleLeft"; + // + StyleAttribute["saBorderWidth"] = "saBorderWidth"; + // + StyleAttribute["saBorderWidthTop"] = "saBorderWidthTop"; + // + StyleAttribute["saBorderWidthRight"] = "saBorderWidthRight"; + // + StyleAttribute["saBorderWidthBottom"] = "saBorderWidthBottom"; + // + StyleAttribute["saBorderWidthLeft"] = "saBorderWidthLeft"; + // + StyleAttribute["saBoxplotStyle"] = "saBoxplotStyle"; + // + StyleAttribute["saBreakOnSpecial"] = "saBreakOnSpecial"; + // + StyleAttribute["saCell"] = "saCell"; + // + StyleAttribute["saCellW"] = "saCellW"; + // + StyleAttribute["saCellH"] = "saCellH"; + // + StyleAttribute["saCellQ"] = "saCellQ"; + // + StyleAttribute["saCellQMark"] = "saCellQMark"; + // + StyleAttribute["saColor"] = "saColor"; + // + StyleAttribute["saColorMode"] = "saColorMode"; + // + StyleAttribute["saColLevels"] = "saColLevels"; + // + StyleAttribute["saColVertLevels"] = "saColVertLevels"; + // + StyleAttribute["saColHorizHeight"] = "saColHorizHeight"; + // + StyleAttribute["saColVertHeight"] = "saColVertHeight"; + // Deprecated + StyleAttribute["saColHeight"] = "saColHeight"; + // + StyleAttribute["saColWidth"] = "saColWidth"; + // + StyleAttribute["saContent"] = "saContent"; + // + StyleAttribute["saDisplayFieldLabels"] = "saDisplayFieldLabels"; + // + StyleAttribute["saDisplayHeader"] = "saDisplayHeader"; + // + StyleAttribute["saDisplayAlternateText"] = "saDisplayAlternateText"; + // + StyleAttribute["saDivLevel"] = "saDivLevel"; + // + StyleAttribute["saEnabled"] = "saEnabled"; + // + StyleAttribute["saFillAboveColor"] = "saFillAboveColor"; + // + StyleAttribute["saFillBelowColor"] = "saFillBelowColor"; + // + StyleAttribute["saFillColor"] = "saFillColor"; + // + StyleAttribute["saFogBGColor"] = "saFogBGColor"; + // + StyleAttribute["saFogDesaturationWithoutSelection"] = "saFogDesaturationWithoutSelection"; + // + StyleAttribute["saFogDesaturationWithSelection"] = "saFogDesaturationWithSelection"; + // + StyleAttribute["saFont"] = "saFont"; + // + StyleAttribute["saFontFamily"] = "saFontFamily"; + // + StyleAttribute["saFontSize"] = "saFontSize"; + // + StyleAttribute["saFontStyle"] = "saFontStyle"; + // + StyleAttribute["saFontWeight"] = "saFontWeight"; + // + StyleAttribute["saGeographicAreaType"] = "saGeographicAreaType"; + // + StyleAttribute["saHAlign"] = "saHAlign"; + // + StyleAttribute["saHaloColor"] = "saHaloColor"; + // + StyleAttribute["saHaloColorSelected"] = "saHaloColorSelected"; + // + StyleAttribute["saHasFill"] = "saHasFill"; + // + StyleAttribute["saHasHalo"] = "saHasHalo"; + // Deprecated + StyleAttribute["saHasLabel"] = "saHasLabel"; + // + StyleAttribute["saHasStroke"] = "saHasStroke"; + // + StyleAttribute["saHeight"] = "saHeight"; + // + StyleAttribute["saHeightHeader"] = "saHeightHeader"; + // + StyleAttribute["saHighlightLegend"] = "saHighlightLegend"; + // + StyleAttribute["saHnaxis"] = "saHnaxis"; + // + StyleAttribute["saHnlabel"] = "saHnlabel"; + // + StyleAttribute["saInTooltip"] = "saInTooltip"; + // + StyleAttribute["saLineEnd"] = "saLineEnd"; + // + StyleAttribute["saLineEndSize"] = "saLineEndSize"; + // + StyleAttribute["saLineInterpolation"] = "saLineInterpolation"; + // + StyleAttribute["saLineMarkerPosition"] = "saLineMarkerPosition"; + // + StyleAttribute["saLinePattern"] = "saLinePattern"; + // + StyleAttribute["saLinePatternOnly"] = "saLinePatternOnly"; + // + StyleAttribute["saLineVisibility"] = "saLineVisibility"; + // + StyleAttribute["saMap"] = "saMap"; + // + StyleAttribute["saMapStyle"] = "saMapStyle"; + // + StyleAttribute["saMargin"] = "saMargin"; + // + StyleAttribute["saMarginTop"] = "saMarginTop"; + // + StyleAttribute["saMarginRight"] = "saMarginRight"; + // + StyleAttribute["saMarginBottom"] = "saMarginBottom"; + // + StyleAttribute["saMarginLeft"] = "saMarginLeft"; + // + StyleAttribute["saMarkColor"] = "saMarkColor"; + // + StyleAttribute["saMarkTransparency"] = "saMarkTransparency"; + // + StyleAttribute["saMarkLabelsShow"] = "saMarkLabelsShow"; + // + StyleAttribute["saRunningOrderLabelsShow"] = "saRunningOrderLabelsShow"; + // + StyleAttribute["saMarkLabelsMode"] = "saMarkLabelsMode"; + // + StyleAttribute["saMarkLabelsCull"] = "saMarkLabelsCull"; + // + StyleAttribute["saMarkLabelsLineEndFirst"] = "saMarkLabelsLineEndFirst"; + // + StyleAttribute["saMarkLabelsLineEndLast"] = "saMarkLabelsLineEndLast"; + // + StyleAttribute["saMarkLabelsRangeMin"] = "saMarkLabelsRangeMin"; + // + StyleAttribute["saMarkLabelsRangeMax"] = "saMarkLabelsRangeMax"; + // + StyleAttribute["saMarkLabelsRangeScope"] = "saMarkLabelsRangeScope"; + // + StyleAttribute["saMarkLabelsRangeField"] = "saMarkLabelsRangeField"; + // + StyleAttribute["saMarkMarkersMode"] = "saMarkMarkersMode"; + // + StyleAttribute["saMaxHeight"] = "saMaxHeight"; + // + StyleAttribute["saMaxFontSize"] = "saMaxFontSize"; + // + StyleAttribute["saMaxStrokeWidth"] = "saMaxStrokeWidth"; + // + StyleAttribute["saMaxWidth"] = "saMaxWidth"; + // + StyleAttribute["saMidStrokeWidth"] = "saMidStrokeWidth"; + // + StyleAttribute["saMinHeight"] = "saMinHeight"; + // + StyleAttribute["saMinFontSize"] = "saMinFontSize"; + // + StyleAttribute["saMinLength"] = "saMinLength"; + // + StyleAttribute["saMinMapSize"] = "saMinMapSize"; + // + StyleAttribute["saMinSize"] = "saMinSize"; + // + StyleAttribute["saMinStrokeWidth"] = "saMinStrokeWidth"; + // + StyleAttribute["saMinWidth"] = "saMinWidth"; + // + StyleAttribute["saNonhighlightColor"] = "saNonhighlightColor"; + // + StyleAttribute["saOmitOnSpecial"] = "saOmitOnSpecial"; + // + StyleAttribute["saOpacity"] = "saOpacity"; + // + StyleAttribute["saOrientation"] = "saOrientation"; + // + StyleAttribute["saPadding"] = "saPadding"; + // + StyleAttribute["saPaddingTop"] = "saPaddingTop"; + // + StyleAttribute["saPaddingRight"] = "saPaddingRight"; + // + StyleAttribute["saPaddingBottom"] = "saPaddingBottom"; + // + StyleAttribute["saPaddingLeft"] = "saPaddingLeft"; + // + StyleAttribute["saPalette"] = "saPalette"; + // + StyleAttribute["saRenderFoldReversed"] = "saRenderFoldReversed"; + // + StyleAttribute["saReversePalette"] = "saReversePalette"; + // + StyleAttribute["saRounding"] = "saRounding"; + // + StyleAttribute["saRowHorizLevels"] = "saRowHorizLevels"; + // + StyleAttribute["saRowHorizWidth"] = "saRowHorizWidth"; + // + StyleAttribute["saRowLevels"] = "saRowLevels"; + // + StyleAttribute["saRowVertWidth"] = "saRowVertWidth"; + // + StyleAttribute["saSeparator"] = "saSeparator"; + // + StyleAttribute["saShape"] = "saShape"; + // Deprecated + StyleAttribute["saShowLabels"] = "saShowLabels"; + // + StyleAttribute["saSize"] = "saSize"; + // + StyleAttribute["saSizeBar"] = "saSizeBar"; + // + StyleAttribute["saSmartAutoAlignment"] = "saSmartAutoAlignment"; + // + StyleAttribute["saSpace"] = "saSpace"; + // + StyleAttribute["saStrokeColor"] = "saStrokeColor"; + // + StyleAttribute["saStrokeSize"] = "saStrokeSize"; + // + StyleAttribute["saSubtitle"] = "saSubtitle"; + // + StyleAttribute["saTextAlign"] = "saTextAlign"; + // + StyleAttribute["saTextAlignDefault"] = "saTextAlignDefault"; + // + StyleAttribute["saTextDecoration"] = "saTextDecoration"; + // + StyleAttribute["saTextIndent"] = "saTextIndent"; + // + StyleAttribute["saTextOrientation"] = "saTextOrientation"; + // + StyleAttribute["saTextFormat"] = "saTextFormat"; + // + StyleAttribute["saTickColor"] = "saTickColor"; + // + StyleAttribute["saTickLength"] = "saTickLength"; + // Deprecated + StyleAttribute["saTickSpacing"] = "saTickSpacing"; + // + StyleAttribute["saTitle"] = "saTitle"; + // + StyleAttribute["saTotalLabel"] = "saTotalLabel"; + // + StyleAttribute["saVAlign"] = "saVAlign"; + // + StyleAttribute["saVerticalAlign"] = "saVerticalAlign"; + // + StyleAttribute["saVerticalAlignDefault"] = "saVerticalAlignDefault"; + // + StyleAttribute["saVnaxis"] = "saVnaxis"; + // + StyleAttribute["saVnlabel"] = "saVnlabel"; + // + StyleAttribute["saWarnOnSpecial"] = "saWarnOnSpecial"; + // + StyleAttribute["saWashout"] = "saWashout"; + // + StyleAttribute["saWhiskerEnd"] = "saWhiskerEnd"; + // + StyleAttribute["saWhiskerStrokeColor"] = "saWhiskerStrokeColor"; + // + StyleAttribute["saWhiskerStrokeSize"] = "saWhiskerStrokeSize"; + // + StyleAttribute["saWidth"] = "saWidth"; + // + StyleAttribute["saWidthHeader"] = "saWidthHeader"; + // + StyleAttribute["saWrap"] = "saWrap"; + // + StyleAttribute["saZoom"] = "saZoom"; + // Special attributes used for matching + StyleAttribute["saNone"] = "saNone"; + // Special attributes used for matching + StyleAttribute["saAny"] = "saAny"; + })(StyleAttribute = exports.StyleAttribute || (exports.StyleAttribute = {})); + // lowest bit of enum value denotes two-tone styles; newly added styles should follow this pattern. + var BoxplotStyle; + (function (BoxplotStyle) { + // mask for checking if a style is two-tone + BoxplotStyle["BoxplotStyleTwoTone"] = "two-tone"; + // + BoxplotStyle["BoxplotStyleModern"] = "modern"; + // + BoxplotStyle["BoxplotStyleGlass"] = "glass"; + // + BoxplotStyle["BoxplotStyleClassic"] = "classic"; + // + BoxplotStyle["BoxplotStyleClassicTwoTone"] = "classic-two-tone"; + })(BoxplotStyle = exports.BoxplotStyle || (exports.BoxplotStyle = {})); + // used for boxplots and prediction band whiskers + var WhiskerEnd; + (function (WhiskerEnd) { + // + WhiskerEnd["WhiskerEndNone"] = "none"; + // + WhiskerEnd["WhiskerEndSmall"] = "small"; + // + WhiskerEnd["WhiskerEndLarge"] = "large"; + })(WhiskerEnd = exports.WhiskerEnd || (exports.WhiskerEnd = {})); + // + var StyleElement; + (function (StyleElement) { + // + StyleElement["elementAxis"] = "elementAxis"; + // + StyleElement["elementCell"] = "elementCell"; + // + StyleElement["elementDatalabel"] = "elementDatalabel"; + // + StyleElement["elementDropspot"] = "elementDropspot"; + // + StyleElement["elementHeader"] = "elementHeader"; + // + StyleElement["elementFieldLabel"] = "elementFieldLabel"; + // + StyleElement["elementFieldLabelDecoration"] = "elementFieldLabelDecoration"; + // + StyleElement["elementFieldLabelSpanner"] = "elementFieldLabelSpanner"; + // + StyleElement["elementLabel"] = "elementLabel"; + // + StyleElement["elementMark"] = "elementMark"; + // + StyleElement["elementPane"] = "elementPane"; + // + StyleElement["elementTable"] = "elementTable"; + // + StyleElement["elementWorksheet"] = "elementWorksheet"; + // + StyleElement["elementBasesheet"] = "elementBasesheet"; + // + StyleElement["elementDashboard"] = "elementDashboard"; + // + StyleElement["elementStoryboard"] = "elementStoryboard"; + // + StyleElement["elementCaption"] = "elementCaption"; + // + StyleElement["elementDropline"] = "elementDropline"; + // + StyleElement["elementRefline"] = "elementRefline"; + // + StyleElement["elementRefBand"] = "elementRefBand"; + // + StyleElement["elementRefBoxplot"] = "elementRefBoxplot"; + // + StyleElement["elementGridline"] = "elementGridline"; + // + StyleElement["elementZeroline"] = "elementZeroline"; + // + StyleElement["elementTrendline"] = "elementTrendline"; + // + StyleElement["elementTableDiv"] = "elementTableDiv"; + // + StyleElement["elementHeaderDiv"] = "elementHeaderDiv"; + // + StyleElement["elementMappedImage"] = "elementMappedImage"; + // + StyleElement["elementAction"] = "elementAction"; + // + StyleElement["elementTitle"] = "elementTitle"; + // + StyleElement["elementLegend"] = "elementLegend"; + // + StyleElement["elementLegendTitle"] = "elementLegendTitle"; + // + StyleElement["elementLegendTitleText"] = "elementLegendTitleText"; + // + StyleElement["elementAxisTitle"] = "elementAxisTitle"; + // + StyleElement["elementAnnotation"] = "elementAnnotation"; + // + StyleElement["elementDashTitle"] = "elementDashTitle"; + // + StyleElement["elementDashSubtitle"] = "elementDashSubtitle"; + // + StyleElement["elementDashText"] = "elementDashText"; + // + StyleElement["elementDashZone"] = "elementDashZone"; + // + StyleElement["elementDashContainer"] = "elementDashContainer"; + // + StyleElement["elementScrollbar"] = "elementScrollbar"; + // Static on/off map layers + StyleElement["elementMapLayer"] = "elementMapLayer"; + // Contains washout + StyleElement["elementMap"] = "elementMap"; + // Initially for UrbanMapping/Claritas data + StyleElement["elementMapDataLayer"] = "elementMapDataLayer"; + // + StyleElement["elementQuickFilter"] = "elementQuickFilter"; + // + StyleElement["elementQuickFilterTitle"] = "elementQuickFilterTitle"; + // + StyleElement["elementParameterCtrl"] = "elementParameterCtrl"; + // + StyleElement["elementParameterCtrlTitle"] = "elementParameterCtrlTitle"; + // + StyleElement["elementPageCardTitle"] = "elementPageCardTitle"; + // + StyleElement["elementStoryDescription"] = "elementStoryDescription"; + // + StyleElement["elementStoryPointCaption"] = "elementStoryPointCaption"; + // + StyleElement["elementStoryTitle"] = "elementStoryTitle"; + // + StyleElement["elementTooltip"] = "elementTooltip"; + // + StyleElement["elementAll"] = "elementAll"; + // + StyleElement["elementPageCardBody"] = "elementPageCardBody"; + // + StyleElement["elementDataHighlighter"] = "elementDataHighlighter"; + // + StyleElement["elementDataHighlighterTitle"] = "elementDataHighlighterTitle"; + // Special elements used for matching and organization + StyleElement["elementNone"] = "elementNone"; + // Special elements used for matching and organization + StyleElement["elementAny"] = "elementAny"; + // Special elements used for matching and organization + StyleElement["elementRoot"] = "elementRoot"; + })(StyleElement = exports.StyleElement || (exports.StyleElement = {})); + // Do not mess with these values. They are sometimes used as array indexes/bounds + var StyleDataClass; + (function (StyleDataClass) { + // + StyleDataClass["dcNormal"] = "dcNormal"; + // + StyleDataClass["dcTotal"] = "dcTotal"; + // + StyleDataClass["dcSubtotal"] = "dcSubtotal"; + // + StyleDataClass["dcCOUNT"] = "dcCOUNT"; + })(StyleDataClass = exports.StyleDataClass || (exports.StyleDataClass = {})); + // + var StyleFieldScope; + (function (StyleFieldScope) { + // + StyleFieldScope["fsNone"] = "fsNone"; + // + StyleFieldScope["fsRows"] = "fsRows"; + // + StyleFieldScope["fsCols"] = "fsCols"; + })(StyleFieldScope = exports.StyleFieldScope || (exports.StyleFieldScope = {})); + // + var StyleSwatch; + (function (StyleSwatch) { + // + StyleSwatch["ssUnspecified"] = "ssUnspecified"; + // + StyleSwatch["ssLight"] = "ssLight"; + // + StyleSwatch["ssDark"] = "ssDark"; + })(StyleSwatch = exports.StyleSwatch || (exports.StyleSwatch = {})); + // + var TableauFontStyle; + (function (TableauFontStyle) { + // + TableauFontStyle["NormalStyle"] = "font-style-normal"; + // + TableauFontStyle["Italic"] = "font-style-italic"; + })(TableauFontStyle = exports.TableauFontStyle || (exports.TableauFontStyle = {})); + // Unsupported for Betsy + var TextDecoration; + (function (TextDecoration) { + // + TextDecoration["NoDecoration"] = "text-decoration-none"; + // + TextDecoration["Underline"] = "text-decoration-underline"; + // not yet supported + TextDecoration["Overline"] = "text-decoration-overline"; + // + TextDecoration["Strikethrough"] = "text-decoration-strikethrough"; + })(TextDecoration = exports.TextDecoration || (exports.TextDecoration = {})); + // + var FontWeight; + (function (FontWeight) { + // + FontWeight["NormalWeight"] = "font-weight-normal"; + // + FontWeight["Bold"] = "font-weight-bold"; + })(FontWeight = exports.FontWeight || (exports.FontWeight = {})); + // + var TextOrient; + (function (TextOrient) { + // + TextOrient["TO_Auto"] = "text-orient-auto"; + // + TextOrient["TO_Horz"] = "text-orient-horizontal"; + // + TextOrient["TO_VertUp"] = "text-orient-vertical-up"; + // + TextOrient["TO_VertDown"] = "text-orient-vertical-down"; + })(TextOrient = exports.TextOrient || (exports.TextOrient = {})); + // + var TextAlign; + (function (TextAlign) { + // + TextAlign["TA_Start"] = "text-align-start"; + // + TextAlign["TA_Center"] = "text-align-center"; + // + TextAlign["TA_End"] = "text-align-end"; + })(TextAlign = exports.TextAlign || (exports.TextAlign = {})); + // + var TextWrapMode; + (function (TextWrapMode) { + // + TextWrapMode["TextWrapOff"] = "text-wrap-off"; + // + TextWrapMode["TextWrapTruncate"] = "text-wrap-truncate"; + // + TextWrapMode["TextWrapOn"] = "text-wrap-on"; + // + TextWrapMode["TextWrapAuto"] = "text-wrap-auto"; + })(TextWrapMode = exports.TextWrapMode || (exports.TextWrapMode = {})); + // + var TextWholeLineMode; + (function (TextWholeLineMode) { + // + TextWholeLineMode["TextWholeLineOff"] = "text-whole-line-off"; + // + TextWholeLineMode["TextWholeLineOn"] = "text-whole-line-on"; + // + TextWholeLineMode["TextWholeLineAuto"] = "text-whole-line-auto"; + })(TextWholeLineMode = exports.TextWholeLineMode || (exports.TextWholeLineMode = {})); + // + var TextBreakMode; + (function (TextBreakMode) { + // + TextBreakMode["TextBreakWhitespaceOnly"] = "text-break-ws-only"; + // + TextBreakMode["TextBreakAuto"] = "text-break-auto"; + })(TextBreakMode = exports.TextBreakMode || (exports.TextBreakMode = {})); + // type of aggregation + var AggType; + (function (AggType) { + // + AggType["AGG_SUM"] = "sum"; + // + AggType["AGG_AVG"] = "average"; + // + AggType["AGG_MIN"] = "min"; + // + AggType["AGG_MAX"] = "max"; + // + AggType["AGG_STDEV"] = "std-dev"; + // + AggType["AGG_STDEVP"] = "std-dev-p"; + // + AggType["AGG_VAR"] = "var"; + // + AggType["AGG_VARP"] = "var-p"; + // + AggType["AGG_COUNT"] = "count"; + // + AggType["AGG_COUNTD"] = "count-d"; + // + AggType["AGG_MEDIAN"] = "median"; + // + AggType["AGG_ATTR"] = "attr"; + // + AggType["AGG_NONE"] = "none"; + // + AggType["AGG_PERCENTILE"] = "percentile"; + // + AggType["AGG_YEAR"] = "year"; + // + AggType["AGG_QTR"] = "qtr"; + // + AggType["AGG_MONTH"] = "month"; + // + AggType["AGG_DAY"] = "day"; + // + AggType["AGG_HOUR"] = "hour"; + // + AggType["AGG_MINUTE"] = "minute"; + // + AggType["AGG_SECOND"] = "second"; + // + AggType["AGG_WEEK"] = "week"; + // + AggType["AGG_WEEKDAY"] = "weekday"; + // + AggType["AGG_MONTHYEAR"] = "month-year"; + // + AggType["AGG_MDY"] = "mdy"; + // + AggType["AGG_END"] = "end"; + // + AggType["TRUNC_YEAR"] = "trunc-year"; + // + AggType["TRUNC_QTR"] = "trunc-qtr"; + // + AggType["TRUNC_MONTH"] = "trunc-month"; + // + AggType["TRUNC_WEEK"] = "trunc-week"; + // + AggType["TRUNC_DAY"] = "trunc-day"; + // + AggType["TRUNC_HOUR"] = "trunc-hour"; + // + AggType["TRUNC_MINUTE"] = "trunc-minute"; + // + AggType["TRUNC_SECOND"] = "trunc-second"; + // + AggType["AGG_QUART1"] = "quart1"; + // + AggType["AGG_QUART3"] = "quart3"; + // + AggType["AGG_SKEWNESS"] = "skewness"; + // + AggType["AGG_KURTOSIS"] = "kurtosis"; + // + AggType["AGG_INOUT"] = "in-out"; + // + AggType["AGG_SUM_XSQR"] = "sum-xsqr"; + // + AggType["AGG_USER"] = "user"; + // + AggType["AGG_COLLECT"] = "collect"; + // + AggType["AGG_COVAR"] = "covar"; + // + AggType["AGG_COVARP"] = "covarp"; + // + AggType["AGG_CORR"] = "corr"; + })(AggType = exports.AggType || (exports.AggType = {})); + // DataValueFormatter::DataTypeEncodings has hardcoded values corresponding to following enum members. So any changes here should be done there too + var DataType; + (function (DataType) { + // + DataType["DT_INTEGER"] = "integer"; + // + DataType["DT_REAL"] = "real"; + // + DataType["DT_STRING"] = "cstring"; + // + DataType["DT_DATETIME"] = "datetime"; + // + DataType["DT_BOOLEAN"] = "boolean"; + // + DataType["DT_DATE"] = "date"; + // + DataType["DT_TUPLE"] = "tuple"; + // + DataType["DT_SPATIAL"] = "spatial"; + // + DataType["DT_UNKNOWN"] = "unknown"; + // + DataType["DT_BINARY"] = "binary"; + // + DataType["DT_TIME"] = "time"; + })(DataType = exports.DataType || (exports.DataType = {})); + // + var DatePeriodType; + (function (DatePeriodType) { + // + DatePeriodType["PeriodYear"] = "year"; + // + DatePeriodType["PeriodQuarter"] = "quarter"; + // + DatePeriodType["PeriodMonth"] = "month"; + // + DatePeriodType["PeriodWeek"] = "week"; + // + DatePeriodType["PeriodDay"] = "day"; + // + DatePeriodType["PeriodHour"] = "hour"; + // + DatePeriodType["PeriodMinute"] = "minute"; + // + DatePeriodType["PeriodSecond"] = "second"; + })(DatePeriodType = exports.DatePeriodType || (exports.DatePeriodType = {})); + // Format prepended to format strings to specify type + var FormatCode; + (function (FormatCode) { + // + FormatCode["AutoFormat"] = "auto-format"; + // + FormatCode["SystemLongDate"] = "system-long-date"; + // + FormatCode["SystemShortDate"] = "system-short-date"; + // + FormatCode["SystemNumber"] = "system-number"; + // + FormatCode["SystemCurrency"] = "system-currency"; + // + FormatCode["SystemTime"] = "system-time"; + // + FormatCode["Custom"] = "custom"; + // + FormatCode["CustomICU"] = "custom-icu"; + // + FormatCode["CustomNumber"] = "custom-number"; + // + FormatCode["CustomCurrency"] = "custom-currency"; + // + FormatCode["CustomScientific"] = "custom-scientific"; + // + FormatCode["CustomPercentage"] = "custom-percentage"; + })(FormatCode = exports.FormatCode || (exports.FormatCode = {})); + // Units specified in a format string + var UnitsFormatEnum; + (function (UnitsFormatEnum) { + // + UnitsFormatEnum["UnitsFmtNone"] = "units-none"; + // + UnitsFormatEnum["UnitsFmtThousands"] = "units-thousands"; + // + UnitsFormatEnum["UnitsFmtMillions"] = "units-millions"; + // + UnitsFormatEnum["UnitsFmtBillionsEnglish"] = "units-billions-english"; + // + UnitsFormatEnum["UnitsFmtBillionsStandard"] = "units-billions-standard"; + })(UnitsFormatEnum = exports.UnitsFormatEnum || (exports.UnitsFormatEnum = {})); + // + var ForecastColumnType; + (function (ForecastColumnType) { + // + ForecastColumnType["FORECAST_NONE"] = "none"; + // + ForecastColumnType["FORECAST_VALUE"] = "value"; + // + ForecastColumnType["FORECAST_INDICATOR"] = "indicator"; + // + ForecastColumnType["FORECAST_PRECISION"] = "precision"; + // + ForecastColumnType["FORECAST_QUALITY"] = "quality"; + // + ForecastColumnType["FORECAST_FIT_TREND"] = "fit_trend"; + // + ForecastColumnType["FORECAST_PRECISION_PERCENT"] = "precision_percent"; + // + ForecastColumnType["FORECAST_PREDICTION_INTERVAL_UPPER"] = "prediction_upper"; + // + ForecastColumnType["FORECAST_PREDICTION_INTERVAL_LOWER"] = "prediction_lower"; + })(ForecastColumnType = exports.ForecastColumnType || (exports.ForecastColumnType = {})); + // + var MarkMarkersMode; + (function (MarkMarkersMode) { + // + MarkMarkersMode["MMM_Auto"] = "mmm-auto"; + // + MarkMarkersMode["MMM_All"] = "mmm_all"; + // + MarkMarkersMode["MMM_None"] = "mmm_none"; + // + MarkMarkersMode["MMM_Default"] = "mmm_default"; + })(MarkMarkersMode = exports.MarkMarkersMode || (exports.MarkMarkersMode = {})); + // + var PercentMode; + (function (PercentMode) { + // + PercentMode["PERCENT_CELL_IN_PANE"] = "cell-in-pane"; + // + PercentMode["PERCENT_ROW_IN_PANE"] = "row-in-pane"; + // + PercentMode["PERCENT_COLUMN_IN_PANE"] = "column-in-pane"; + // + PercentMode["PERCENT_PANE"] = "pane"; + // + PercentMode["PERCENT_ROW"] = "row"; + // + PercentMode["PERCENT_COLUMN"] = "column"; + // + PercentMode["PERCENT_TABLE"] = "table"; + })(PercentMode = exports.PercentMode || (exports.PercentMode = {})); + // + var SpecialValuesMode; + (function (SpecialValuesMode) { + // + SpecialValuesMode["SPECIAL_VALUES_HIDE_AND_WARN"] = "hide-and-warn"; + // + SpecialValuesMode["SPECIAL_VALUES_HIDE"] = "hide"; + // + SpecialValuesMode["SPECIAL_VALUES_HIDE_BREAK_LINES"] = "hide-break-lines"; + // + SpecialValuesMode["SPECIAL_VALUES_SHOW"] = "show"; + })(SpecialValuesMode = exports.SpecialValuesMode || (exports.SpecialValuesMode = {})); + // + var LayoutType; + (function (LayoutType) { + // + LayoutType["LAYOUT_CARTESIAN"] = "cartesian"; + // + LayoutType["LAYOUT_DEFAULT"] = "default"; + })(LayoutType = exports.LayoutType || (exports.LayoutType = {})); + // + var ShelfType; + (function (ShelfType) { + // + ShelfType["ST_NONE"] = "none-shelf"; + // + ShelfType["ST_COLUMNS_SHELF"] = "columns-shelf"; + // + ShelfType["ST_ROWS_SHELF"] = "rows-shelf"; + // + ShelfType["ST_PAGES_SHELF"] = "pages-shelf"; + // + ShelfType["ST_FILTER_SHELF"] = "filter-shelf"; + // + ShelfType["ST_IMAGE_SHELF"] = "image-shelf"; + // + ShelfType["ST_MEASURES_SHELF"] = "measures-shelf"; + // + ShelfType["ST_SHOWME_SHELF"] = "show-me-shelf"; + // + ShelfType["ST_ENCODING_SHELF"] = "encoding-shelf"; + // + ShelfType["ST_CLUSTER_SHELF"] = "cluster-shelf"; + // + ShelfType["ST_GEOMETRY_SHELF"] = "geometry-shelf"; + // + ShelfType["ST_END"] = "end-shelf"; + // + ShelfType["ST_FINAL"] = "final-shelf"; + })(ShelfType = exports.ShelfType || (exports.ShelfType = {})); + // + var RestrictType; + (function (RestrictType) { + // + RestrictType["RT_INTERSECT"] = "rt-intersection"; + // + RestrictType["RT_UNION"] = "rt-union"; + })(RestrictType = exports.RestrictType || (exports.RestrictType = {})); + // + var TooltipMode; + (function (TooltipMode) { + // + TooltipMode["TM_NONE"] = "none"; + // + TooltipMode["TM_STICKY"] = "sticky"; + // + TooltipMode["TM_SMOOTH"] = "smooth"; + })(TooltipMode = exports.TooltipMode || (exports.TooltipMode = {})); + // + var ColumnGroups; + (function (ColumnGroups) { + // 0x01 + ColumnGroups["COLS_IN_OUTPUT"] = "cols-in-output"; + // 0x02 + ColumnGroups["COLS_IN_FILTER_SHELF"] = "cols-in-filter-shelf"; + // 0x04 + ColumnGroups["COLS_REF_BY_FILTERS"] = "cols-ref-by-filters"; + // 0x08 + ColumnGroups["COLS_REF_BY_OMEASURES"] = "cols-ref-by-omeasures"; + // 0x10 + ColumnGroups["COLS_REF_BY_JOIN_LOD"] = "cols-ref-by-join-lod"; + // 0x20 + ColumnGroups["COLS_HIDDEN"] = "cols-hidden"; + // 0x40 + ColumnGroups["COLS_REF_BY_SORTS"] = "cols-ref-by-sorts"; + // + ColumnGroups["COLS_REF_BY_FILTERS_OR_SORTS"] = "cols-ref-by-filters-or-sorts"; + // + ColumnGroups["COLS_ON_SHELVES"] = "cols-on-shelves"; + // + ColumnGroups["COLS_ALL"] = "cols-all"; + })(ColumnGroups = exports.ColumnGroups || (exports.ColumnGroups = {})); + // + var ButtonsOption; + (function (ButtonsOption) { + // + ButtonsOption["BO_HIDE"] = "buttons-hide"; + })(ButtonsOption = exports.ButtonsOption || (exports.ButtonsOption = {})); + // + var SelectionRelaxationOption; + (function (SelectionRelaxationOption) { + // + SelectionRelaxationOption["SRO_ALLOW"] = "selection-relaxation-allow"; + // + SelectionRelaxationOption["SRO_DISALLOW"] = "selection-relaxation-disallow"; + })(SelectionRelaxationOption = exports.SelectionRelaxationOption || (exports.SelectionRelaxationOption = {})); + // + var EncodingType; + (function (EncodingType) { + // a text encoding + EncodingType["ET_TEXT"] = "text-encoding"; + // a color encoding + EncodingType["ET_COLOR"] = "color-encoding"; + // a size encoding + EncodingType["ET_SIZE"] = "size-encoding"; + // a shape encoding + EncodingType["ET_SHAPE"] = "shape-encoding"; + // an image encoding + EncodingType["ET_IMAGE"] = "image-encoding"; + // a sort (path) encoding (currently only for line or polygon charts) + EncodingType["ET_SORT"] = "sort-encoding"; + // a wedge size (angle) encoding (currently only for pie charts) + EncodingType["ET_WEDGESIZE"] = "wedge-size-encoding"; + // a geometry encoding + EncodingType["ET_GEOMETRY"] = "geometry-encoding"; + // a level of detail encoding + EncodingType["ET_LOD"] = "level-of-detail-encoding"; + // encoding used for the data highlighter/legend mechanism + EncodingType["ET_HIGHLIGHT"] = "highlight-encoding"; + // a tooltip encoding + EncodingType["ET_TOOLTIP"] = "tooltip-encoding"; + // a temporary label placed above marks for the table calc dialog + EncodingType["ET_RUNNINGORDER"] = "runningorder-encoding"; + // the number of encodings, this is invalid input for an encoding presentation model + EncodingType["NUM_ENCODINGS"] = "num-encodings"; + // an invalid encoding + EncodingType["ET_INVALID"] = "invalid-encoding"; + })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); + // Enumeration of valid horizontal alignments. + var LabelHAlignment; + (function (LabelHAlignment) { + // + LabelHAlignment["LHA_Left"] = "h-align-left"; + // + LabelHAlignment["LHA_Center"] = "h-align-center"; + // + LabelHAlignment["LHA_Right"] = "h-align-right"; + // + LabelHAlignment["LHA_Automatic"] = "h-align-auto"; + })(LabelHAlignment = exports.LabelHAlignment || (exports.LabelHAlignment = {})); + // Enumeration of valid vertical alignments. + var LabelVAlignment; + (function (LabelVAlignment) { + // + LabelVAlignment["LVA_Bottom"] = "v-align-bottom"; + // + LabelVAlignment["LVA_Center"] = "v-align-center"; + // + LabelVAlignment["LVA_Top"] = "v-align-top"; + // + LabelVAlignment["LVA_Automatic"] = "v-align-auto"; + })(LabelVAlignment = exports.LabelVAlignment || (exports.LabelVAlignment = {})); + // Enumeration of valid label positions. + var LabelPosition; + (function (LabelPosition) { + // Position each text run relative to the center of the original bbox. Use the original bbox as the height and width of the text mark. Used for non-stacked OO text marks. + LabelPosition["CenterInOriginalBbox"] = "label-position-center-in-original-box"; + // Position each text run relative to the bottom left corner of the measured bbox. Use the measured bbox as the width and height of the label. Used for labels + LabelPosition["OriginAtLowerLeft"] = "label-position-origin-at-lower-left"; + // Position each text run relative to the center of the measured bbox. Use the measured bbox as the width and height of the text mark. Used for most text marks. + LabelPosition["OriginAtCenter"] = "label-position-origin-at-center"; + })(LabelPosition = exports.LabelPosition || (exports.LabelPosition = {})); + // Enumeration of ways to use color. Values can be or'ed together to make a mask for allowed options + var ColorMode; + (function (ColorMode) { + // Color user specified + ColorMode["CLRM_User"] = "clrm-user"; + // Color selected automatically + ColorMode["CLRM_Auto"] = "clrm-auto"; + // Color matches mark color + ColorMode["CLRM_Match"] = "clrm-match"; + // No color (transparent or not drawn) + ColorMode["CLRM_None"] = "clrm-none"; + })(ColorMode = exports.ColorMode || (exports.ColorMode = {})); + // + var MarkLabelsMode; + (function (MarkLabelsMode) { + // + MarkLabelsMode["MLM_All"] = "mlm-all"; + // + MarkLabelsMode["MLM_Selection"] = "mlm-selection"; + // + MarkLabelsMode["MLM_Highlight"] = "mlm-highlight"; + // + MarkLabelsMode["MLM_LineEnds"] = "mlm-line-ends"; + // min/max setting + MarkLabelsMode["MLM_Range"] = "mlm-range"; + // most recent (only relevant when date field is in play) + MarkLabelsMode["MLM_MostRecent"] = "mlm-most-recent"; + // ...this is " virtual " (runtime only, not saved, not shown as a user setting + MarkLabelsMode["MLM_MultipleValues"] = "mlm-multiple-values"; + // + MarkLabelsMode["MLM_Default"] = "mlm-default"; + })(MarkLabelsMode = exports.MarkLabelsMode || (exports.MarkLabelsMode = {})); + // + var MarkLabelsScope; + (function (MarkLabelsScope) { + // + MarkLabelsScope["MLS_Table"] = "mls-table"; + // + MarkLabelsScope["MLS_Pane"] = "mls-pane"; + // + MarkLabelsScope["MLS_Cell"] = "mls-cell"; + // + MarkLabelsScope["MLS_MultiMark"] = "mls-multimark"; + // ...this is " virtual " (runtime only, not saved, not shown as a user setting) + MarkLabelsScope["MLS_MultipleValues"] = "mls-multiple-values"; + // + MarkLabelsScope["MLS_Default"] = "mls-default"; + })(MarkLabelsScope = exports.MarkLabelsScope || (exports.MarkLabelsScope = {})); + // + var MarkLabelsVisibility; + (function (MarkLabelsVisibility) { + // + MarkLabelsVisibility["MLV_Hidden"] = "mlv-hidden"; + // + MarkLabelsVisibility["MLV_Visible"] = "mlv-visible"; + // + MarkLabelsVisibility["MLV_UseCurrent"] = "mlv-use-current"; + })(MarkLabelsVisibility = exports.MarkLabelsVisibility || (exports.MarkLabelsVisibility = {})); + // + var StackingMode; + (function (StackingMode) { + // + StackingMode["StackingOff"] = "off"; + // + StackingMode["StackingOn"] = "on"; + // + StackingMode["StackingAuto"] = "auto"; + })(StackingMode = exports.StackingMode || (exports.StackingMode = {})); + // + var MarkAlignment; + (function (MarkAlignment) { + // + MarkAlignment["MarkAlignmentLeft"] = "mark-alignment-left"; + // + MarkAlignment["MarkAlignmentRight"] = "mark-alignment-right"; + // + MarkAlignment["MarkAlignmentCenter"] = "mark-alignment-center"; + })(MarkAlignment = exports.MarkAlignment || (exports.MarkAlignment = {})); + // + var PaneLabelComposition; + (function (PaneLabelComposition) { + // + PaneLabelComposition["PLC_None"] = "pane-label-composition-none"; + // + PaneLabelComposition["PLC_Mixed"] = "pane-label-composition-mixed"; + // + PaneLabelComposition["PLC_All"] = "pane-label-composition-all"; + })(PaneLabelComposition = exports.PaneLabelComposition || (exports.PaneLabelComposition = {})); + // The user-specified mark type on the Marks Card + var PrimitiveType; + (function (PrimitiveType) { + // + PrimitiveType["PT_AUTOMATIC"] = "automatic"; + // + PrimitiveType["PT_TEXT"] = "text"; + // + PrimitiveType["PT_IMAGE"] = "image"; + // + PrimitiveType["PT_SHAPE"] = "shape"; + // + PrimitiveType["PT_RECTANGLE"] = "rectangle"; + // + PrimitiveType["PT_BAR"] = "bar"; + // + PrimitiveType["PT_GANTT"] = "gantt"; + // + PrimitiveType["PT_SQUARE"] = "square"; + // + PrimitiveType["PT_CIRCLE"] = "circle"; + // + PrimitiveType["PT_POLYLINE"] = "polyline"; + // line chart + PrimitiveType["PT_LINE"] = "line"; + // + PrimitiveType["PT_POLYGON"] = "polygon"; + // area chart + PrimitiveType["PT_AREA"] = "area"; + // + PrimitiveType["PT_PIE"] = "pie"; + // + PrimitiveType["PT_MULTIPOLYGON"] = "multipolygon"; + // Not an actual primitive type. This is just used to flag the UI that multiple types are in play. + PrimitiveType["PT_MULTIPLE"] = "multiple"; + // used for looping over all values + PrimitiveType["NUM_PRIMITIVES"] = "count"; + // used to flag an unset or invalid state + PrimitiveType["PT_INVALID"] = "invalid"; + })(PrimitiveType = exports.PrimitiveType || (exports.PrimitiveType = {})); + // Defines the way a given primitive behaves on a viz - for instance, a PT_CIRCLE is treated as a point, while a PT_POLYGON would be treated as an area. + var MarkType; + (function (MarkType) { + // + MarkType["MT_POINT"] = "point"; + // + MarkType["MT_LINE"] = "line"; + // + MarkType["MT_AREA"] = "area"; + // + MarkType["MT_INVALID"] = "invalid"; + })(MarkType = exports.MarkType || (exports.MarkType = {})); + // PaneAxis is used to describe which axis of a pane is the independent axis. + var PaneAxis; + (function (PaneAxis) { + // The independent axis is inferred from other properties of the pane. + PaneAxis["AXIS_AUTO"] = "auto"; + // + PaneAxis["AXIS_X"] = "x"; + // + PaneAxis["AXIS_Y"] = "y"; + })(PaneAxis = exports.PaneAxis || (exports.PaneAxis = {})); + // + var Rounding; + (function (Rounding) { + // + Rounding["Rounding_None"] = "none"; + // + Rounding["Rounding_Small"] = "small"; + // + Rounding["Rounding_Medium"] = "medium"; + // + Rounding["Rounding_Large"] = "large"; + })(Rounding = exports.Rounding || (exports.Rounding = {})); + // + var LineEnd; + (function (LineEnd) { + // + LineEnd["LineEnd_None"] = "none"; + // + LineEnd["LineEnd_Arrow"] = "arrow"; + // + LineEnd["LineEnd_OpenArrow"] = "open-arrow"; + // + LineEnd["LineEnd_Dot"] = "dot"; + })(LineEnd = exports.LineEnd || (exports.LineEnd = {})); + // + var LineEndSize; + (function (LineEndSize) { + // + LineEndSize["LineEndSize_Smallest"] = "smallest"; + // + LineEndSize["LineEndSize_Smaller"] = "smaller"; + // + LineEndSize["LineEndSize_Small"] = "small"; + // + LineEndSize["LineEndSize_Medium"] = "medium"; + // + LineEndSize["LineEndSize_Large"] = "large"; + // + LineEndSize["LineEndSize_Larger"] = "larger"; + // + LineEndSize["LineEndSize_Largest"] = "largest"; + })(LineEndSize = exports.LineEndSize || (exports.LineEndSize = {})); + // + var BodyType; + (function (BodyType) { + // + BodyType["BodyType_None"] = "none"; + // + BodyType["BodyType_Box"] = "box"; + // + BodyType["BodyType_Edge"] = "edge"; + })(BodyType = exports.BodyType || (exports.BodyType = {})); + // + var StyleTheme; + (function (StyleTheme) { + // + StyleTheme["themeClassic"] = "classic"; + // + StyleTheme["themeModern"] = "modern"; + // + StyleTheme["themeClean"] = "clean"; + // + StyleTheme["themeSmooth"] = "smooth"; + // + StyleTheme["themeCustom"] = "custom"; + })(StyleTheme = exports.StyleTheme || (exports.StyleTheme = {})); + // + var AxisFoldState; + (function (AxisFoldState) { + // + AxisFoldState["afNone"] = "none"; + // + AxisFoldState["afFolded"] = "folded"; + // + AxisFoldState["afSynchronized"] = "synchronized"; + })(AxisFoldState = exports.AxisFoldState || (exports.AxisFoldState = {})); + // + var LinePattern; + (function (LinePattern) { + // + LinePattern["LinePatternNone"] = "none"; + // + LinePattern["LinePatternSolid"] = "solid"; + // + LinePattern["LinePatternDashed"] = "dashed"; + // + LinePattern["LinePatternDotted"] = "dotted"; + })(LinePattern = exports.LinePattern || (exports.LinePattern = {})); + // + var LineVisibility; + (function (LineVisibility) { + // + LineVisibility["LineVisibilityAuto"] = "automatic"; + // + LineVisibility["LineVisibilityOn"] = "on"; + // + LineVisibility["LineVisibilityOff"] = "off"; + })(LineVisibility = exports.LineVisibility || (exports.LineVisibility = {})); + // + var StylesLinePattern; + (function (StylesLinePattern) { + // + StylesLinePattern["StylesLinePatternSolid"] = "solid"; + // + StylesLinePattern["StylesLinePatternDashed"] = "dashed"; + // + StylesLinePattern["StylesLinePatternDotted"] = "dotted"; + })(StylesLinePattern = exports.StylesLinePattern || (exports.StylesLinePattern = {})); + // + var LineCap; + (function (LineCap) { + // + LineCap["LineCapFlat"] = "flat"; + // + LineCap["LineCapSquare"] = "square"; + // + LineCap["LineCapRound"] = "round"; + // + LineCap["LineCapTriangle"] = "triangle"; + })(LineCap = exports.LineCap || (exports.LineCap = {})); + // + var LineJoin; + (function (LineJoin) { + // + LineJoin["BevelJoin"] = "bevel"; + // + LineJoin["MiterJoin"] = "miter"; + // + LineJoin["RoundJoin"] = "round"; + })(LineJoin = exports.LineJoin || (exports.LineJoin = {})); + // + var LineAlignment; + (function (LineAlignment) { + // + LineAlignment["AlignmentCenter"] = "center"; + // + LineAlignment["AlignmentInset"] = "inset"; + })(LineAlignment = exports.LineAlignment || (exports.LineAlignment = {})); + // + var FillMode; + (function (FillMode) { + // + FillMode["FillEvenOdd"] = "even-odd"; + // + FillMode["FillWinding"] = "winding"; + })(FillMode = exports.FillMode || (exports.FillMode = {})); + // + var BorderStyle; + (function (BorderStyle) { + // none + BorderStyle["BorderStyleNone"] = "bs-none"; + // hidden + BorderStyle["BorderStyleHidden"] = "bs-hidden"; + // dotted + BorderStyle["BorderStyleDotted"] = "bs-dotted"; + // dashed + BorderStyle["BorderStyleDashed"] = "bs-dashed"; + // solid + BorderStyle["BorderStyleSolid"] = "bs-solid"; + // double + BorderStyle["BorderStyleDouble"] = "bs-double"; + // groove + BorderStyle["BorderStyleGroove"] = "bs-groove"; + // ridge + BorderStyle["BorderStyleRidge"] = "bs-ridge"; + // inset + BorderStyle["BorderStyleInset"] = "bs-inset"; + // outset + BorderStyle["BorderStyleOutset"] = "bs-outset"; + // invalid + BorderStyle["BorderStyleInvalid"] = "bs-invalid"; + })(BorderStyle = exports.BorderStyle || (exports.BorderStyle = {})); + // + var ColorPaletteType; + (function (ColorPaletteType) { + // + ColorPaletteType["ColorPaletteRegular"] = "color-palette-regular"; + // + ColorPaletteType["ColorPaletteOrderedDiverging"] = "palette-ordered-diverging"; + // + ColorPaletteType["ColorPaletteOrderedLinear"] = "palette-ordered-linear"; + })(ColorPaletteType = exports.ColorPaletteType || (exports.ColorPaletteType = {})); + // + var PaletteFlags; + (function (PaletteFlags) { + // + PaletteFlags["PaletteFlagNone"] = "palette-flag-none"; + // + PaletteFlags["PaletteFlagCustom"] = "palette-flag-custom"; + // + PaletteFlags["PaletteFlagNotQuantitative"] = "palette-flag-not-quantitative"; + // + PaletteFlags["PaletteFlagNotCategorical"] = "palette-flag-not-categorical"; + // + PaletteFlags["PaletteFlagNotReferenceBand"] = "palette-flag-not-reference-band"; + // + PaletteFlags["PaletteFlagNotBoxplot"] = "palette-flag-not-boxplot"; + // + PaletteFlags["PaletteFlagNotFilledMapLight"] = "palette-flag-not-filled-map-light"; + // + PaletteFlags["PaletteFlagNotFilledMapDark"] = "palette-flag-not-filled-map-dark"; + // + PaletteFlags["PaletteFlagLegacy"] = "palette-flag-legacy"; + })(PaletteFlags = exports.PaletteFlags || (exports.PaletteFlags = {})); + // + var DefaultPaletteType; + (function (DefaultPaletteType) { + // + DefaultPaletteType["SmallNominal"] = "palette-default-small-nominal"; + // + DefaultPaletteType["LargeNominal"] = "palette-default-large-nominal"; + // + DefaultPaletteType["Ordinal"] = "palette-default-ordinal"; + // + DefaultPaletteType["QuantitativePositive"] = "palette-default-quant-pos"; + // + DefaultPaletteType["QuantitativeNegative"] = "palette-default-quant-neg"; + // + DefaultPaletteType["QuantitativeDiverging"] = "palette-default-quant-div"; + // + DefaultPaletteType["QuantitativePositiveLight"] = "palette-default-quant-pos-light"; + // + DefaultPaletteType["QuantitativeNegativeLight"] = "palette-default-quant-neg-light"; + // + DefaultPaletteType["QuantitativeDivergingLight"] = "palette-default-quant-div-light"; + // + DefaultPaletteType["QuantitativePositiveArea"] = "palette-default-quant-pos-area"; + // + DefaultPaletteType["QuantitativeNegativeArea"] = "palette-default-quant-neg-area"; + // + DefaultPaletteType["QuantitativeDivergingArea"] = "palette-default-quant-div-area"; + })(DefaultPaletteType = exports.DefaultPaletteType || (exports.DefaultPaletteType = {})); + // + var ShowBounds; + (function (ShowBounds) { + // + ShowBounds["Both"] = "show-both"; + // + ShowBounds["Upper"] = "show-upper"; + // + ShowBounds["Lower"] = "show-lower"; + })(ShowBounds = exports.ShowBounds || (exports.ShowBounds = {})); + // Sample vs. population standard deviation + var StDevType; + (function (StDevType) { + // + StDevType["Sample"] = "stdev-sample"; + // + StDevType["Population"] = "stdev-population"; + })(StDevType = exports.StDevType || (exports.StDevType = {})); + // + var ReferenceLineFormulaGroup; + (function (ReferenceLineFormulaGroup) { + // + ReferenceLineFormulaGroup["None"] = "none"; + // + ReferenceLineFormulaGroup["Line"] = "line"; + // + ReferenceLineFormulaGroup["Band"] = "band"; + // + ReferenceLineFormulaGroup["Distribution"] = "distribution"; + // + ReferenceLineFormulaGroup["Boxplot"] = "boxplot"; + })(ReferenceLineFormulaGroup = exports.ReferenceLineFormulaGroup || (exports.ReferenceLineFormulaGroup = {})); + // + var ReferenceLineScopeType; + (function (ReferenceLineScopeType) { + // + ReferenceLineScopeType["PerCell"] = "per-cell"; + // + ReferenceLineScopeType["PerPane"] = "per-pane"; + // + ReferenceLineScopeType["PerTable"] = "per-table"; + })(ReferenceLineScopeType = exports.ReferenceLineScopeType || (exports.ReferenceLineScopeType = {})); + // how should the line be labeled + var ReferenceLineLabelType; + (function (ReferenceLineLabelType) { + // no label + ReferenceLineLabelType["None"] = "none"; + // an automatically generated label + ReferenceLineLabelType["Automatic"] = "automatic"; + // + ReferenceLineLabelType["Value"] = "value"; + // + ReferenceLineLabelType["Computation"] = "computation"; + // a user defined label + ReferenceLineLabelType["Custom"] = "custom"; + })(ReferenceLineLabelType = exports.ReferenceLineLabelType || (exports.ReferenceLineLabelType = {})); + // how should the line be computed + var ReferenceLineFormulaType; + (function (ReferenceLineFormulaType) { + // a user specified constant value + ReferenceLineFormulaType["Constant"] = "constant"; + // + ReferenceLineFormulaType["Total"] = "total"; + // total of all values at the given scope <- is this correct? looks like comment from FormulaTotal + ReferenceLineFormulaType["Sum"] = "sum"; + // minimum value in the scope + ReferenceLineFormulaType["Min"] = "min"; + // maximum value in the scope + ReferenceLineFormulaType["Max"] = "max"; + // average value in the scope + ReferenceLineFormulaType["Average"] = "average"; + // median value in the scope + ReferenceLineFormulaType["Median"] = "median"; + // the n quantiles values in the scope + ReferenceLineFormulaType["Quantiles"] = "quantiles"; + // a given percentile in the scope + ReferenceLineFormulaType["Percentile"] = "percentile"; + // mean +- standard deviation + ReferenceLineFormulaType["StandardDeviation"] = "standard-deviation"; + // a given confidence interval around the mean + ReferenceLineFormulaType["ConfidenceInterval"] = "confidence-interval"; + // + ReferenceLineFormulaType["MedianConfidenceInterval"] = "median-confidence-interval"; + })(ReferenceLineFormulaType = exports.ReferenceLineFormulaType || (exports.ReferenceLineFormulaType = {})); + // Line or confidence interval or both + var ReferenceLineConfidenceIntervalState; + (function (ReferenceLineConfidenceIntervalState) { + // display line only + ReferenceLineConfidenceIntervalState["LineOnly"] = "line-only"; + // display the line and a confidence interval + ReferenceLineConfidenceIntervalState["LineAndConfidenceInterval"] = "line-and-interval"; + // display confidence interval only + ReferenceLineConfidenceIntervalState["ConfidenceIntervalOnly"] = "interval-only"; + })(ReferenceLineConfidenceIntervalState = exports.ReferenceLineConfidenceIntervalState || (exports.ReferenceLineConfidenceIntervalState = {})); + // type of distribution. i.e. Percentage, Percentile, Quantile, and Standard Deviation + var ReferenceLineDistributionType; + (function (ReferenceLineDistributionType) { + // distribution type percentage + ReferenceLineDistributionType["Percentages"] = "percentages"; + // distribution type percentile + ReferenceLineDistributionType["Percentiles"] = "percentiles"; + // distribution type quantile + ReferenceLineDistributionType["Quantiles"] = "quantiles"; + // distribution type standard deviation + ReferenceLineDistributionType["StandardDeviation"] = "standard-deviation"; + })(ReferenceLineDistributionType = exports.ReferenceLineDistributionType || (exports.ReferenceLineDistributionType = {})); + // the kind of LOD calc to use for a given reference line + var ReferenceLineLODCalcType; + (function (ReferenceLineLODCalcType) { + // Create a formula using a FIXED-like level-of-detail calculation, to which sheet filters apply, that will go onto a specific sheet + ReferenceLineLODCalcType["MeasureFormula"] = "measure-formula"; + // Create a boolean formula that can be used as a filter + ReferenceLineLODCalcType["BooleanFilter"] = "boolean-filter"; + })(ReferenceLineLODCalcType = exports.ReferenceLineLODCalcType || (exports.ReferenceLineLODCalcType = {})); + // + var BoxplotWhiskerType; + (function (BoxplotWhiskerType) { + // + BoxplotWhiskerType["Standard"] = "standard"; + // + BoxplotWhiskerType["Minmax"] = "minmax"; + })(BoxplotWhiskerType = exports.BoxplotWhiskerType || (exports.BoxplotWhiskerType = {})); + // categories of connection types displayed by the connection UI + var ConnectionTypeCategory; + (function (ConnectionTypeCategory) { + // standard database + ConnectionTypeCategory["CTC_Database"] = "database"; + // 'More Items ...' meta item + ConnectionTypeCategory["CTC_More"] = "more"; + // Other file types + ConnectionTypeCategory["CTC_Other"] = "other"; + // invalid connection category + ConnectionTypeCategory["CTC_Invalid"] = "invalid"; + })(ConnectionTypeCategory = exports.ConnectionTypeCategory || (exports.ConnectionTypeCategory = {})); + // a logical grouping of connection types displayed by the connection UI + var ConnectionTypeGroup; + (function (ConnectionTypeGroup) { + // in a file + ConnectionTypeGroup["CTG_File"] = "file"; + // on a server + ConnectionTypeGroup["CTG_Server"] = "server"; + // on a recent server + ConnectionTypeGroup["CTG_MruServer"] = "mru-server"; + // invalid group + ConnectionTypeGroup["CTG_Invalid"] = "invalid"; + })(ConnectionTypeGroup = exports.ConnectionTypeGroup || (exports.ConnectionTypeGroup = {})); + // The type of metadata a column contains + var CubeMetadataCategory; + (function (CubeMetadataCategory) { + // cube's name + CubeMetadataCategory["CMC_Name"] = "name"; + // cube's description + CubeMetadataCategory["CMC_Description"] = "description"; + // cube's last updated timestamp + CubeMetadataCategory["CMC_LastUpdated"] = "last-updated"; + // invalid + CubeMetadataCategory["CMC_Invalid"] = "invalid"; + })(CubeMetadataCategory = exports.CubeMetadataCategory || (exports.CubeMetadataCategory = {})); + // The type of widget to display to the user when they are specifying connection info + var ConnectionWidgetType; + (function (ConnectionWidgetType) { + // show the join area + ConnectionWidgetType["CWT_JoinArea"] = "join-area"; + // show the cube selection ui + ConnectionWidgetType["CWT_CubeSelection"] = "cube-selection"; + // show the google analytics ui + ConnectionWidgetType["CWT_GoogleAnalytics"] = "google-analytics"; + // show the tableau server ui + ConnectionWidgetType["CWT_TableauServer"] = "tableau-server"; + // do not show any connection widget + ConnectionWidgetType["CWT_NoWidget"] = "no-widget"; + // invalid + ConnectionWidgetType["CWT_Invalid"] = "invalid"; + })(ConnectionWidgetType = exports.ConnectionWidgetType || (exports.ConnectionWidgetType = {})); + // The type of google analytics basic info + var GoogleBasicInfoType; + (function (GoogleBasicInfoType) { + // google analytics account + GoogleBasicInfoType["GA_Account"] = "ga-account"; + // google analytics property + GoogleBasicInfoType["GA_Property"] = "ga-property"; + // google analytics view + GoogleBasicInfoType["GA_View"] = "ga-view"; + // invalid + GoogleBasicInfoType["GA_Invalid"] = "invalid"; + })(GoogleBasicInfoType = exports.GoogleBasicInfoType || (exports.GoogleBasicInfoType = {})); + // The way in which a piece of connection information is specified + var ConnectionSpecificationType; + (function (ConnectionSpecificationType) { + // Uses a combo box + ConnectionSpecificationType["CST_ComboBox"] = "combo-box"; + // Uses a line edit + ConnectionSpecificationType["CST_LineEdit"] = "line-edit"; + // Uses a line edit with a browse button next to it + ConnectionSpecificationType["CST_LineEditBrowse"] = "line-edit-browse"; + // invalid + ConnectionSpecificationType["CST_Invalid"] = "invalid"; + })(ConnectionSpecificationType = exports.ConnectionSpecificationType || (exports.ConnectionSpecificationType = {})); + // GA Date Range + var DateRange; + (function (DateRange) { + // + DateRange["DateRangeFirst"] = "date-range-first"; + // + DateRange["DateRangeLast30Days"] = "date-range-last30"; + // + DateRange["DateRangeToday"] = "date-range-today"; + // + DateRange["DateRangeYesterday"] = "date-range-yesterday"; + // + DateRange["DateRangeLastWeek"] = "date-range-last-week"; + // + DateRange["DateRangeLastMonth"] = "date-range-last-month"; + // + DateRange["DateRangeLastYear"] = "date-range-last-year"; + // + DateRange["DateRangeThisWeekToYesterday"] = "date-range-this-week-to-yesterday"; + // + DateRange["DateRangeThisMonthToYesterday"] = "date-range-this-month-to-yesterday"; + // + DateRange["DateRangeThisYearToYesterday"] = "date-range-this-year-to-yesterday"; + // + DateRange["DateRangeLastWeekToYesterday"] = "date-range-last-week-to-yesterday"; + // + DateRange["DateRangeLastMonthToYesterday"] = "date-range-last-month-to-yesterday"; + // + DateRange["DateRangeLastYearToYesterday"] = "date-range-last-year-to-yesterday"; + // + DateRange["DateRangeFixedRange"] = "date-range-fixed-range"; + // + DateRange["DateRangeFixedStart"] = "date-range-fixed-start"; + // + DateRange["DateRangeCount"] = "date-range-count"; + })(DateRange = exports.DateRange || (exports.DateRange = {})); + // Specifies the type of widget to show in ConnectServerWidget + var ConnectServerWidgetType; + (function (ConnectServerWidgetType) { + // invalid + ConnectServerWidgetType["CSWT_Invalid"] = "invalid"; + // microsoft access + ConnectServerWidgetType["CSWT_Access"] = "access"; + // generic odbc + ConnectServerWidgetType["CSWT_ODBC"] = "odbc"; + // cubes + ConnectServerWidgetType["CSWT_Cube"] = "cube"; + // relational data sources + ConnectServerWidgetType["CSWT_Relational"] = "relational"; + })(ConnectServerWidgetType = exports.ConnectServerWidgetType || (exports.ConnectServerWidgetType = {})); + // + var AuthenticationEnumsMode; + (function (AuthenticationEnumsMode) { + // no authentication widget + AuthenticationEnumsMode["AuthModeNone"] = "auth-mode-none"; + // username and password + AuthenticationEnumsMode["AuthModeBasic"] = "auth-mode-basic"; + // username and password can be blank + AuthenticationEnumsMode["AuthModeBasicNoValidateFields"] = "auth-mode-basic-no-validate-fields"; + // only username + AuthenticationEnumsMode["AuthModeBasicUserNameOnly"] = "auth-mode-basic-username-only"; + // aws access key and secret ID + AuthenticationEnumsMode["AuthModeBasicAWS"] = "auth-mode-basic-aws"; + // username, password, and a list of AuthOptions with radio buttons + AuthenticationEnumsMode["AuthModeRadio"] = "auth-mode-radio"; + // Like AuthModeRadio, but enable username/password even for integrated auth + AuthenticationEnumsMode["AuthModeRadioUnindented"] = "auth-mode-radio-unindented"; + // username, password, and a list of AuthOptions with a combobox + AuthenticationEnumsMode["AuthModeComboBox"] = "auth-mode-combobox"; + // Like AuthModeCombobox, but with option not requiring username/password + AuthenticationEnumsMode["AuthModeComboBoxIntegrated"] = "auth-mode-combobox-integrated"; + // driver, authentication, username, realm, etc + AuthenticationEnumsMode["AuthModeHive"] = "auth-mode-hive"; + // none, azure marketplace account, explicit + AuthenticationEnumsMode["AuthModeOData"] = "auth-mode-odata"; + // edition, authentication, sso domain, etc + AuthenticationEnumsMode["AuthModeSharePoint"] = "auth-mode-sharepoint"; + // username, password, client, & language + AuthenticationEnumsMode["AuthModeSAPBW"] = "auth-mode-sapbw"; + // Ability to switch between two different auth modes each in their own modal dialogs (basic and oauth) + AuthenticationEnumsMode["AuthModeSwitchModal"] = "auth-mode-switch-modal"; + })(AuthenticationEnumsMode = exports.AuthenticationEnumsMode || (exports.AuthenticationEnumsMode = {})); + // + var AuthenticationEnumsReconnectMode; + (function (AuthenticationEnumsReconnectMode) { + // Auth not needed for reconnect + AuthenticationEnumsReconnectMode["ReconnectModeNone"] = "reconnect-mode-none"; + // Username and password + AuthenticationEnumsReconnectMode["ReconnectModeBasic"] = "reconnect-mode-basic"; + // Access file + AuthenticationEnumsReconnectMode["ReconnectModeAccess"] = "reconnect-mode-access"; + // Microsoft Azure Data Market (OData) + AuthenticationEnumsReconnectMode["ReconnectModeDataMarket"] = "reconnect-mode-data-market"; + // Google OAuth + AuthenticationEnumsReconnectMode["ReconnectModeGoogleOAuth"] = "reconnect-mode-google-oauth"; + // SalesforceOAuth, with the option of username/password auth + AuthenticationEnumsReconnectMode["ReconnectModeSalesforceOAuth"] = "reconnect-mode-salesforce-oauth"; + // Web data connector + AuthenticationEnumsReconnectMode["ReconnectModeWebData"] = "reconnect-mode-web-data"; + })(AuthenticationEnumsReconnectMode = exports.AuthenticationEnumsReconnectMode || (exports.AuthenticationEnumsReconnectMode = {})); + // + var AuthenticationEnumsAuthOption; + (function (AuthenticationEnumsAuthOption) { + // FIRST + AuthenticationEnumsAuthOption["AuthExplicit"] = "auth-option-explicit"; + // + AuthenticationEnumsAuthOption["AuthExplicitUnindented"] = "auth-option-explicit-unindented"; + // + AuthenticationEnumsAuthOption["AuthUseWindows"] = "auth-option-use-windows"; + // + AuthenticationEnumsAuthOption["AuthUseWindowsPreferred"] = "auth-option-windows-preferred"; + // + AuthenticationEnumsAuthOption["AuthTeradata"] = "auth-option-teradata"; + // + AuthenticationEnumsAuthOption["AuthLDAP"] = "auth-option-ldap"; + // + AuthenticationEnumsAuthOption["AuthVirtualNode"] = "auth-option-virtual-node"; + // + AuthenticationEnumsAuthOption["AuthODataAccount"] = "auth-option-odata"; + // + AuthenticationEnumsAuthOption["AuthNone"] = "auth-option-none"; + // + AuthenticationEnumsAuthOption["AuthKerberos"] = "auth-option-kerberos"; + // Introduced for Kerberos with fallback, recognizing that the db may or may not be on Windows + AuthenticationEnumsAuthOption["AuthIntegrated"] = "auth-option-integrated"; + // + AuthenticationEnumsAuthOption["AuthUsername"] = "auth-option-username"; + // + AuthenticationEnumsAuthOption["AuthUsernameAndPassword"] = "auth-option-username-and-password"; + // + AuthenticationEnumsAuthOption["AuthSSL"] = "auth-option-ssl"; + // + AuthenticationEnumsAuthOption["AuthHDIEmulator"] = "auth-hdi-emulator"; + // + AuthenticationEnumsAuthOption["AuthHDIService"] = "auth-hdi-service"; + // + AuthenticationEnumsAuthOption["AuthHTTP"] = "auth-http"; + // + AuthenticationEnumsAuthOption["AuthHTTPS"] = "auth-https"; + // + AuthenticationEnumsAuthOption["AuthAccessNoSecurity"] = "auth-option-access-no"; + // + AuthenticationEnumsAuthOption["AuthAccessYesSecurity"] = "auth-option-access-yes"; + // + AuthenticationEnumsAuthOption["AuthOAuth"] = "auth-oauth"; + // + AuthenticationEnumsAuthOption["AuthForms"] = "auth-forms"; + // + AuthenticationEnumsAuthOption["AuthThirdPartySSO"] = "auth-third-party-SSO"; + // LAST + AuthenticationEnumsAuthOption["AuthInvalid"] = "auth-option-invalid"; + // + AuthenticationEnumsAuthOption["AuthSAMLIdP"] = "auth-option-saml-idp"; + })(AuthenticationEnumsAuthOption = exports.AuthenticationEnumsAuthOption || (exports.AuthenticationEnumsAuthOption = {})); + // data source validation modes + var DataSourceParserValidationMode; + (function (DataSourceParserValidationMode) { + // + DataSourceParserValidationMode["WorkbookLoadValidation"] = "workbook-load-validation"; + // + DataSourceParserValidationMode["AutoValidation"] = "auto-validation"; + // + DataSourceParserValidationMode["ForceValidation"] = "force-validation"; + // + DataSourceParserValidationMode["PreventValidation"] = "prevent-validation"; + // + DataSourceParserValidationMode["PreventValidationAndThrow"] = "prevent-validation-and-throw"; + })(DataSourceParserValidationMode = exports.DataSourceParserValidationMode || (exports.DataSourceParserValidationMode = {})); + // Enum for DataGrid/MetadataGrid fields reordering + var FieldOrderType; + (function (FieldOrderType) { + // + FieldOrderType["DATASOURCE_ORDER"] = "datasource-order"; + // + FieldOrderType["ALPHA_PER_TABLE"] = "alpha-per-table"; + // + FieldOrderType["ALPHABETICAL_ORDER"] = "alphabetical-order"; + // + FieldOrderType["CUSTOM_ORDER"] = "custom-order"; + })(FieldOrderType = exports.FieldOrderType || (exports.FieldOrderType = {})); + // + var LineInterpolationMode; + (function (LineInterpolationMode) { + // + LineInterpolationMode["LIM_Linear"] = "lim-linear"; + // + LineInterpolationMode["LIM_Step"] = "lim-step"; + // + LineInterpolationMode["LIM_Jump"] = "lim-jump"; + })(LineInterpolationMode = exports.LineInterpolationMode || (exports.LineInterpolationMode = {})); + // + var LineMarkerPosition; + (function (LineMarkerPosition) { + // + LineMarkerPosition["LMP_Left"] = "lmp-left"; + // + LineMarkerPosition["LMP_Center"] = "lmp-center"; + // + LineMarkerPosition["LMP_Right"] = "lmp-right"; + })(LineMarkerPosition = exports.LineMarkerPosition || (exports.LineMarkerPosition = {})); + // + var FolderRole; + (function (FolderRole) { + // + FolderRole["FOLDER_DIMENSIONS"] = "dimensions"; + // + FolderRole["FOLDER_MEASURES"] = "measure"; + // + FolderRole["FOLDER_GROUPS"] = "groups"; + // + FolderRole["FOLDER_PARAMETERS"] = "parameters"; + })(FolderRole = exports.FolderRole || (exports.FolderRole = {})); + // + var FieldTypeIconSet; + (function (FieldTypeIconSet) { + // + FieldTypeIconSet["FT_SET_ALL"] = "all"; + // + FieldTypeIconSet["FT_SET_CUBE_MEASURES"] = "cube-measures"; + // + FieldTypeIconSet["FT_SET_CUBE_DIMENSIONS"] = "cube-dimensions"; + })(FieldTypeIconSet = exports.FieldTypeIconSet || (exports.FieldTypeIconSet = {})); + // + var FieldPivotStrategy; + (function (FieldPivotStrategy) { + // + FieldPivotStrategy["PIVOT_ON_KEY"] = "pivot-on-key"; + // + FieldPivotStrategy["PIVOT_ON_ALIAS"] = "pivot-on-alias"; + })(FieldPivotStrategy = exports.FieldPivotStrategy || (exports.FieldPivotStrategy = {})); + // + var AliasType; + (function (AliasType) { + // + AliasType["ALIAS_NOTSET"] = "alias-not-set"; + // + AliasType["ALIAS_BEGIN"] = "alias-begin"; + // + AliasType["ALIAS_KEY"] = "alias-key"; + // + AliasType["ALIAS_KEY_NAME"] = "alias-key-name"; + // + AliasType["ALIAS_KEY_MEDNAME"] = "alias-key-medname"; + // + AliasType["ALIAS_KEY_LONGNAME"] = "alias-key-longname"; + // + AliasType["ALIAS_NAME"] = "alias-name"; + // + AliasType["ALIAS_NAME_KEY"] = "alias-name-key"; + // + AliasType["ALIAS_MEDNAME"] = "alias-medname"; + // + AliasType["ALIAS_MEDNAME_KEY"] = "alias-medname-key"; + // + AliasType["ALIAS_LONGNAME"] = "alias-longname"; + // + AliasType["ALIAS_LONGNAME_KEY"] = "alias-longname-key"; + // + AliasType["ALIAS_END"] = "alias-end"; + })(AliasType = exports.AliasType || (exports.AliasType = {})); + // + var AliasTypes; + (function (AliasTypes) { + // + AliasTypes["MASK_ALIAS_KEY"] = "mask-alias-key"; + // + AliasTypes["MASK_ALIAS_NAME"] = "mask-alias-name"; + // + AliasTypes["MASK_ALIAS_MEDNAME"] = "mask-alias-medname"; + // + AliasTypes["MASK_ALIAS_LONGNAME"] = "mask-alias-longname"; + })(AliasTypes = exports.AliasTypes || (exports.AliasTypes = {})); + // + var FieldRole; + (function (FieldRole) { + // + FieldRole["ROLE_DIMENSION"] = "dimension"; + // + FieldRole["ROLE_MEASURE"] = "measure"; + // + FieldRole["ROLE_UNKNOWN"] = "unknown"; + })(FieldRole = exports.FieldRole || (exports.FieldRole = {})); + // + var FieldType; + (function (FieldType) { + // + FieldType["TYPE_QUANTITATIVE"] = "quantitative"; + // + FieldType["TYPE_ORDINAL"] = "ordinal"; + // + FieldType["TYPE_NOMINAL"] = "nominal"; + // + FieldType["TYPE_UNKNOWN"] = "unknown"; + })(FieldType = exports.FieldType || (exports.FieldType = {})); + // + var DataSourceOrder; + (function (DataSourceOrder) { + // + DataSourceOrder["DSO_ALPHABETIC"] = "dso-alphabetic"; + // + DataSourceOrder["DSO_ORDINAL"] = "dso-ordinal"; + })(DataSourceOrder = exports.DataSourceOrder || (exports.DataSourceOrder = {})); + // Where the column comes from + var ColumnClass; + (function (ColumnClass) { + // A metadata column (O or Q Measures) + ColumnClass["COL_METADATA"] = "col-metadata"; + // A physical column on the database + ColumnClass["COL_DATABASE"] = "col-database"; + // A numberic bin (a special kind of calculated column) + ColumnClass["COL_NUMERICBIN"] = "col-numericbin"; + // A Categorical bin (group) + ColumnClass["COL_CATEGORICALBIN"] = "col-categoricalbin"; + // A column instance + ColumnClass["COL_INSTANCE"] = "col-instance"; + // A (raw) mdx calculated column + ColumnClass["COL_MDXCALC"] = "col-mdxcalc"; + // A user-defined calculated column, Tableau expression syntax + ColumnClass["COL_USERCALC"] = "col-usercalc"; + // A column that would have been COL_DATABASE, but the underlying database column does not exist + ColumnClass["COL_DANGLING"] = "col-dangling"; + // A column that contains local supplied data (e.g. Latitude) + ColumnClass["COL_LOCALDATA"] = "col-localdata"; + // A column that contains a visual model attribute (e.g. PaneIndex, Color, ...) + ColumnClass["COL_VISUALDATA"] = "col-visualdata"; + // A column that's a Group (a " Set " in UI terminology) + ColumnClass["COL_GROUP"] = "col-group"; + })(ColumnClass = exports.ColumnClass || (exports.ColumnClass = {})); + // + var VTAggType; + (function (VTAggType) { + // + VTAggType["VTAGG_SUM"] = "sum"; + // + VTAggType["VTAGG_AVG"] = "avg"; + // + VTAggType["VTAGG_MIN"] = "min"; + // + VTAggType["VTAGG_MAX"] = "max"; + // + VTAggType["VTAGG_SERVER"] = "server"; + // + VTAggType["VTAGG_NONE"] = "none"; + // + VTAggType["VTAGG_DEFAULT"] = "default"; + })(VTAggType = exports.VTAggType || (exports.VTAggType = {})); + // + var EntityType; + (function (EntityType) { + // + EntityType["NoEnumerationEntity"] = "no-enumeration-entity"; + // + EntityType["DatabaseEntity"] = "database-entity"; + // + EntityType["SchemaEntity"] = "schema-entity"; + // + EntityType["TableEntity"] = "table-entity"; + })(EntityType = exports.EntityType || (exports.EntityType = {})); + // + var PickEntitySearchType; + (function (PickEntitySearchType) { + // + PickEntitySearchType["PickEntitySearchType_StartsWith"] = "starts-with"; + // + PickEntitySearchType["PickEntitySearchType_Contains"] = "contains"; + // + PickEntitySearchType["PickEntitySearchType_ExactMatch"] = "exact-match"; + // + PickEntitySearchType["PickEntitySearchType_DEFAULT"] = "default"; + })(PickEntitySearchType = exports.PickEntitySearchType || (exports.PickEntitySearchType = {})); + // Parsing methods and structures. + var ExpressionOp; + (function (ExpressionOp) { + // + ExpressionOp["LogicalOr"] = "op-logical-or"; + // + ExpressionOp["LogicalAnd"] = "op-logical-and"; + // + ExpressionOp["LogicalNot"] = "op-logical-not"; + // + ExpressionOp["BitwiseXOr"] = "op-bitwise-xor"; + // + ExpressionOp["BitwiseOr"] = "op-bitwise-or"; + // + ExpressionOp["Equals"] = "op-equals"; + // + ExpressionOp["Greater"] = "op-greater"; + // + ExpressionOp["Less"] = "op-less"; + // + ExpressionOp["GEqual"] = "op-gequal"; + // + ExpressionOp["LEqual"] = "op-lequal"; + // + ExpressionOp["NEqual"] = "op-nequal"; + // + ExpressionOp["Plus"] = "op-plus"; + // + ExpressionOp["Minus"] = "op-minus"; + // + ExpressionOp["BitwiseAnd"] = "op-bitwise-and"; + // + ExpressionOp["Multiply"] = "op-multiply"; + // + ExpressionOp["Divide"] = "op-divide"; + // + ExpressionOp["Modulo"] = "op-modulo"; + // + ExpressionOp["Power"] = "op-power"; + // + ExpressionOp["Positive"] = "op-positive"; + // + ExpressionOp["Negative"] = "op-negative"; + // + ExpressionOp["BitwiseNot"] = "op-bitwise-not"; + // + ExpressionOp["Column"] = "op-column"; + // + ExpressionOp["String"] = "op-string"; + // + ExpressionOp["Number"] = "op-number"; + // + ExpressionOp["Date"] = "op-date"; + // + ExpressionOp["Boolean"] = "op-boolean"; + // + ExpressionOp["Funcall"] = "op-funcall"; + // + ExpressionOp["LParen"] = "op-lparen"; + // + ExpressionOp["RParen"] = "op-rparen"; + // + ExpressionOp["Comma"] = "op-comma"; + // + ExpressionOp["Ident"] = "op-ident"; + // + ExpressionOp["Null"] = "op-null"; + // + ExpressionOp["If"] = "op-if"; + // + ExpressionOp["Elseif"] = "op-elseif"; + // + ExpressionOp["Case"] = "op-case"; + // + ExpressionOp["When"] = "op-when"; + // + ExpressionOp["Then"] = "op-then"; + // + ExpressionOp["Else"] = "op-else"; + // + ExpressionOp["EndExpr"] = "op-endexpr"; + // + ExpressionOp["Whitespace"] = "op-whitespace"; + // + ExpressionOp["Comment"] = "op-comment"; + // + ExpressionOp["LBrace"] = "op-lbrace"; + // + ExpressionOp["RBrace"] = "op-rbrace"; + // + ExpressionOp["Colon"] = "op-colon"; + // + ExpressionOp["Bar"] = "op-bar"; + // + ExpressionOp["Txtype"] = "op-txtype"; + // + ExpressionOp["End"] = "op-end"; + // + ExpressionOp["RBrackets"] = "op-rbrackets"; + // used to represent invalid tokens + ExpressionOp["Invalid"] = "op-invalid"; + })(ExpressionOp = exports.ExpressionOp || (exports.ExpressionOp = {})); + // tri-state bool + var TriBool; + (function (TriBool) { + // + TriBool["TB_Invalid"] = "tribool-invalid"; + // + TriBool["TB_False"] = "tribool-false"; + // + TriBool["TB_True"] = "tribool-true"; + })(TriBool = exports.TriBool || (exports.TriBool = {})); + // table calc reference options set + var ReferenceOptionsSet; + (function (ReferenceOptionsSet) { + // + ReferenceOptionsSet["ROS_Relative"] = "reference-options-set-relative"; + // + ReferenceOptionsSet["ROS_Fixed"] = "reference-options-set-fixed"; + // + ReferenceOptionsSet["ROS_Parameter"] = "reference-options-set-parameter"; + // + ReferenceOptionsSet["ROS_None"] = "reference-options-set-none"; + })(ReferenceOptionsSet = exports.ReferenceOptionsSet || (exports.ReferenceOptionsSet = {})); + // widget state + var WidgetState; + (function (WidgetState) { + // + WidgetState["Hidden"] = "widget-state-hidden"; + // + WidgetState["Disabled"] = "widget-state-disabled"; + // + WidgetState["Enabled"] = "widget-state-enabled"; + })(WidgetState = exports.WidgetState || (exports.WidgetState = {})); + // rank type + var RankType; + (function (RankType) { + // + RankType["Competition"] = "rank-type-competition"; + // + RankType["ModifiedCompetition"] = "rank-type-modified-competition"; + // + RankType["Dense"] = "rank-type-dense"; + // + RankType["Unique"] = "rank-type-unique"; + })(RankType = exports.RankType || (exports.RankType = {})); + // + var TableCalcCommandType; + (function (TableCalcCommandType) { + // + TableCalcCommandType["TableCalcCommandClear"] = "clear"; + })(TableCalcCommandType = exports.TableCalcCommandType || (exports.TableCalcCommandType = {})); + // + var CalcNestingLevel; + (function (CalcNestingLevel) { + // + CalcNestingLevel["Primary"] = "primary"; + // used only for type != TC_CUSTOM + CalcNestingLevel["Secondary"] = "secondary"; + // used only for type == TC_CUSTOM + CalcNestingLevel["Nested"] = "nested"; + })(CalcNestingLevel = exports.CalcNestingLevel || (exports.CalcNestingLevel = {})); + // + var DecimalMode; + (function (DecimalMode) { + // + DecimalMode["DecimalModeAutomatic"] = "automatic"; + // + DecimalMode["DecimalModeManual"] = "manual"; + })(DecimalMode = exports.DecimalMode || (exports.DecimalMode = {})); + // + var TableCalcOrderingType; + (function (TableCalcOrderingType) { + // Advanced... + TableCalcOrderingType["OTField"] = "field"; + // Table (Across) + TableCalcOrderingType["OTRows"] = "rows"; + // Table (Down) + TableCalcOrderingType["OTColumns"] = "columns"; + // Table (Across then Down) + TableCalcOrderingType["OTTable"] = "table"; + // Table (Down then Across) + TableCalcOrderingType["OTTableColumnPrecedence"] = "table-column-precedence"; + // Pane Across + TableCalcOrderingType["OTRowInPane"] = "row-in-pane"; + // Pane (Down) + TableCalcOrderingType["OTColumnInPane"] = "column-in-pane"; + // Pane (Across then Down) + TableCalcOrderingType["OTPane"] = "pane"; + // Pane (Down then Across) + TableCalcOrderingType["OTPaneColumnPrecedence"] = "pane-column-precedence"; + // Cell + TableCalcOrderingType["OTCellInPane"] = "cell-in-pane"; + })(TableCalcOrderingType = exports.TableCalcOrderingType || (exports.TableCalcOrderingType = {})); + // + var TableCalcSortMode; + (function (TableCalcSortMode) { + // + TableCalcSortMode["SM_Automatic"] = "sort-mode-automatic"; + // + TableCalcSortMode["SM_Custom"] = "sort-mode-custom"; + })(TableCalcSortMode = exports.TableCalcSortMode || (exports.TableCalcSortMode = {})); + // + var TableCalcTableCalcType; + (function (TableCalcTableCalcType) { + // none (used to initialize variables) + TableCalcTableCalcType["TC_NONE"] = "none"; + // Running Total + TableCalcTableCalcType["TC_CUMULATIVE"] = "cumulative"; + // Moving Calculation + TableCalcTableCalcType["TC_WINDOW"] = "window"; + // Difference From + TableCalcTableCalcType["TC_DIFF"] = "diff"; + // Percent Difference From + TableCalcTableCalcType["TC_PCTDIFF"] = "pct-diff"; + // Percent From + TableCalcTableCalcType["TC_PCTVALUE"] = "pct-value"; + // Percent Of Total + TableCalcTableCalcType["TC_PCTTOTAL"] = "pct-total"; + // Rank + TableCalcTableCalcType["TC_RANK"] = "rank"; + // Percentile + TableCalcTableCalcType["TC_PCTRANK"] = "pct-rank"; + // Custom + TableCalcTableCalcType["TC_CUSTOM"] = "custom"; + })(TableCalcTableCalcType = exports.TableCalcTableCalcType || (exports.TableCalcTableCalcType = {})); + // + var QuickTableCalcCommandType; + (function (QuickTableCalcCommandType) { + // + QuickTableCalcCommandType["QuickTableCalcCommandRunTotal"] = "run-total"; + // + QuickTableCalcCommandType["QuickTableCalcCommandDifference"] = "difference"; + // + QuickTableCalcCommandType["QuickTableCalcCommandPctDiff"] = "pct-diff"; + // + QuickTableCalcCommandType["QuickTableCalcCommandPctTotal"] = "pct-total"; + // + QuickTableCalcCommandType["QuickTableCalcCommandRank"] = "rank"; + // + QuickTableCalcCommandType["QuickTableCalcCommandPctRank"] = "pct-rank"; + // + QuickTableCalcCommandType["QuickTableCalcCommandMovingAvg"] = "moving-avg"; + // + QuickTableCalcCommandType["QuickTableCalcCommandYtd"] = "ytd"; + // + QuickTableCalcCommandType["QuickTableCalcCommandCgr"] = "cgr"; + // + QuickTableCalcCommandType["QuickTableCalcCommandYOverY"] = "y-over-y"; + // + QuickTableCalcCommandType["QuickTableCalcCommandYtdGrowth"] = "ytd-growth"; + // + QuickTableCalcCommandType["QuickTableCalcCommandCustom"] = "custom"; + })(QuickTableCalcCommandType = exports.QuickTableCalcCommandType || (exports.QuickTableCalcCommandType = {})); + // + var TableCalcAddressCommandType; + (function (TableCalcAddressCommandType) { + // + TableCalcAddressCommandType["TableCalcAddressCommandRel"] = "rel"; + // + TableCalcAddressCommandType["TableCalcAddressCommandAbs"] = "abs"; + // + TableCalcAddressCommandType["TableCalcAddressCommandParam"] = "param"; + // + TableCalcAddressCommandType["TableCalcAddressCommandMore"] = "more"; + })(TableCalcAddressCommandType = exports.TableCalcAddressCommandType || (exports.TableCalcAddressCommandType = {})); + // relative addressing + var TableCalcRelativeAddress; + (function (TableCalcRelativeAddress) { + // + TableCalcRelativeAddress["RelAddrFirst"] = "relative-address-first"; + // + TableCalcRelativeAddress["RelAddrPrevious"] = "relative-address-previous"; + // + TableCalcRelativeAddress["RelAddrNext"] = "relative-address-next"; + // + TableCalcRelativeAddress["RelAddrLast"] = "relative-address-last"; + })(TableCalcRelativeAddress = exports.TableCalcRelativeAddress || (exports.TableCalcRelativeAddress = {})); + // + var CategoricalBinItemType; + (function (CategoricalBinItemType) { + // + CategoricalBinItemType["Unbinned"] = "unbinned"; + // + CategoricalBinItemType["BinMember"] = "categorical-bin-member"; + // + CategoricalBinItemType["Bin"] = "categorical-bin"; + })(CategoricalBinItemType = exports.CategoricalBinItemType || (exports.CategoricalBinItemType = {})); + // The class properties + var CredentialTypePropertiesFlag; + (function (CredentialTypePropertiesFlag) { + // + CredentialTypePropertiesFlag["None"] = "none"; + // + CredentialTypePropertiesFlag["GenericAuthClass"] = "generic-auth-class"; + // + CredentialTypePropertiesFlag["ProviderClass"] = "provider-class"; + // + CredentialTypePropertiesFlag["DataConnectionClass"] = "data-connection-class"; + })(CredentialTypePropertiesFlag = exports.CredentialTypePropertiesFlag || (exports.CredentialTypePropertiesFlag = {})); + // The connector type + var ConnectorType; + (function (ConnectorType) { + // + ConnectorType["Invalid"] = "invalid"; + // + ConnectorType["WebDataConnector"] = "web-data-connector"; + // + ConnectorType["CloudFileConnector"] = "cloud-file-connector"; + // + ConnectorType["LegacyConnector"] = "legacy-connector"; + })(ConnectorType = exports.ConnectorType || (exports.ConnectorType = {})); + // + var TablePillIcon; + (function (TablePillIcon) { + // + TablePillIcon["ListItem"] = "list-item"; + // + TablePillIcon["Sheet"] = "sheet"; + // + TablePillIcon["FoundTable"] = "found-table"; + // + TablePillIcon["NamedRange"] = "named-range"; + // + TablePillIcon["StoredProcedure"] = "stored-procedure"; + })(TablePillIcon = exports.TablePillIcon || (exports.TablePillIcon = {})); + // + var JoinValidationError; + (function (JoinValidationError) { + // + JoinValidationError["JVE_NoError"] = "no-error"; + // + JoinValidationError["JVE_EmptyClause"] = "empty-clause"; + // + JoinValidationError["JVE_TypeMismatch"] = "type-mismatch"; + // + JoinValidationError["JVE_InvalidField"] = "invalid-field"; + // + JoinValidationError["JVE_BadClause"] = "bad-clause"; + // + JoinValidationError["JVE_BadInputRelation"] = "bad-input-relation"; + // + JoinValidationError["JVE_RepeatedFieldReferences"] = "repeated-field-references"; + // + JoinValidationError["JVE_UnsupportedJoinType"] = "unsupported-join-type"; + // + JoinValidationError["JVE_InvalidCalculation"] = "invalid-calculation"; + // + JoinValidationError["JVE_NonSpatialType"] = "non-spatial-type"; + // + JoinValidationError["JVE_NonSpatialComparison"] = "non-spatial-comp"; + // + JoinValidationError["JVE_Unknown"] = "unknown"; + })(JoinValidationError = exports.JoinValidationError || (exports.JoinValidationError = {})); + // + var ConnectionTypeEnum; + (function (ConnectionTypeEnum) { + // -d-s is used to force the enum generator to generate DS with capital letters in .cs just like the .cpp + ConnectionTypeEnum["InvalidDS"] = "invalid-d-s"; + // + ConnectionTypeEnum["FileDS"] = "file-d-s"; + // + ConnectionTypeEnum["ServerDS"] = "server-d-s"; + // + ConnectionTypeEnum["InternetDS"] = "internet-d-s"; + // + ConnectionTypeEnum["TableauServerDS"] = "tableau-server-d-s"; + })(ConnectionTypeEnum = exports.ConnectionTypeEnum || (exports.ConnectionTypeEnum = {})); + // + var ConnectionErrorStage; + (function (ConnectionErrorStage) { + // + ConnectionErrorStage["Unknown"] = "unknown"; + // + ConnectionErrorStage["CreateProtocolFailed"] = "create-protocol-failed"; + // + ConnectionErrorStage["LoadMetadataFailed"] = "load-metadata-failed"; + })(ConnectionErrorStage = exports.ConnectionErrorStage || (exports.ConnectionErrorStage = {})); + // + var SortDirection; + (function (SortDirection) { + // ascending + SortDirection["ST_ASC"] = "asc"; + // descending + SortDirection["ST_DESC"] = "desc"; + })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); + // + var SortType; + (function (SortType) { + // Use the defined ordering + SortType["ST_NATURAL"] = "data-source-order"; + // Alphabetic/numeric ordering of data + SortType["ST_ALPHABETIC"] = "alpha"; + // Specify a secondary field + SortType["ST_COMPUTED"] = "field"; + // Manually defined ordering + SortType["ST_MANUAL"] = "manual"; + })(SortType = exports.SortType || (exports.SortType = {})); + // + var SortEnd; + (function (SortEnd) { + // + SortEnd["ST_TOP"] = "top"; + // + SortEnd["ST_BOTTOM"] = "bottom"; + })(SortEnd = exports.SortEnd || (exports.SortEnd = {})); + // Enumeration for the type of join connecting two tables + var SQLJoinType; + (function (SQLJoinType) { + // + SQLJoinType["SQL_InnerJoin"] = "sql-inner-join"; + // + SQLJoinType["SQL_LeftJoin"] = "sql-left-join"; + // + SQLJoinType["SQL_RightJoin"] = "sql-right-join"; + // + SQLJoinType["SQL_FullJoin"] = "sql-full-join"; + // + SQLJoinType["SQL_CrossJoin"] = "sql-cross-join"; + })(SQLJoinType = exports.SQLJoinType || (exports.SQLJoinType = {})); + // The result of parsing and setting a data value for a property of a quantitative axis. + var SetAxisDataValueResult; + (function (SetAxisDataValueResult) { + // + SetAxisDataValueResult["Success"] = "set-axis-data-value-result-success"; + // + SetAxisDataValueResult["ParseFailure"] = "set-axis-data-value-result-parse-failure"; + // + SetAxisDataValueResult["ValueFailure"] = "set-axis-data-value-result-value-failure"; + })(SetAxisDataValueResult = exports.SetAxisDataValueResult || (exports.SetAxisDataValueResult = {})); + // The type of an axis' extent + var AxisExtentType; + (function (AxisExtentType) { + // + AxisExtentType["Automatic"] = "axis-extent-automatic"; + // + AxisExtentType["Uniform"] = "axis-extent-uniform"; + // + AxisExtentType["Independent"] = "axis-extent-independent"; + // + AxisExtentType["Fixed"] = "axis-extent-fixed"; + })(AxisExtentType = exports.AxisExtentType || (exports.AxisExtentType = {})); + // Enumeration of units tick spacing can take + var TickSpacingUnits; + (function (TickSpacingUnits) { + // + TickSpacingUnits["NoUnits"] = "no-units"; + // + TickSpacingUnits["Years"] = "years"; + // + TickSpacingUnits["Quarters"] = "quarters"; + // + TickSpacingUnits["Months"] = "months"; + // + TickSpacingUnits["Weeks"] = "weeks"; + // + TickSpacingUnits["Days"] = "days"; + // + TickSpacingUnits["Hours"] = "hours"; + // + TickSpacingUnits["Minutes"] = "minutes"; + // + TickSpacingUnits["Seconds"] = "seconds"; + })(TickSpacingUnits = exports.TickSpacingUnits || (exports.TickSpacingUnits = {})); + // Enumeration of whether totals are included in or excluded from the color encoding + var TotalsInclusion; + (function (TotalsInclusion) { + // Totals included in color encoding + TotalsInclusion["IncludeTotals"] = "include-totals"; + // Totals excluded from color encoding + TotalsInclusion["ExcludeTotals"] = "exclude-totals"; + })(TotalsInclusion = exports.TotalsInclusion || (exports.TotalsInclusion = {})); + // How tick marks are being calculated + var TickMarkState; + (function (TickMarkState) { + // + TickMarkState["TicksAutomatic"] = "ticks-automatic"; + // + TickMarkState["TicksManual"] = "ticks-manual"; + // + TickMarkState["TicksNone"] = "ticks-None"; + })(TickMarkState = exports.TickMarkState || (exports.TickMarkState = {})); + // Setting for type of axis range + var AxisRangeType; + (function (AxisRangeType) { + // + AxisRangeType["AutomaticRange"] = "automatic-range"; + // + AxisRangeType["UniformRange"] = "uniform-range"; + // + AxisRangeType["IndependentRange"] = "independent-range"; + // + AxisRangeType["FixedRange"] = "fixed-range"; + // + AxisRangeType["FixedMin"] = "fixed-min"; + // + AxisRangeType["FixedMax"] = "fixed-max"; + // + AxisRangeType["FixedMinUniformMax"] = "fixed-min-uniform-max"; + // + AxisRangeType["FixedMinIndependentMax"] = "fixed-min-independent-max"; + // + AxisRangeType["FixedMaxUniformMin"] = "fixed-max-uniform-min"; + // + AxisRangeType["FixedMaxIndependentMin"] = "fixed-max-independent-min"; + // + AxisRangeType["FixedRangeOrdinal"] = "fixed-range-ordinal"; + })(AxisRangeType = exports.AxisRangeType || (exports.AxisRangeType = {})); + // represents type of widget on the toolbar of rich text editor + var RichTextEditorWidgetKey; + (function (RichTextEditorWidgetKey) { + // + RichTextEditorWidgetKey["None"] = "none"; + // + RichTextEditorWidgetKey["FontSize"] = "fontsize"; + // + RichTextEditorWidgetKey["FontName"] = "fontname"; + // + RichTextEditorWidgetKey["FontColor"] = "color"; + // + RichTextEditorWidgetKey["Bold"] = "bold"; + // + RichTextEditorWidgetKey["Italic"] = "italic"; + // + RichTextEditorWidgetKey["Underline"] = "underline"; + // + RichTextEditorWidgetKey["AlignLeft"] = "justifyleft"; + // + RichTextEditorWidgetKey["AlignCenter"] = "justifycenter"; + // + RichTextEditorWidgetKey["AlignRight"] = "justifyright"; + // + RichTextEditorWidgetKey["ClearFormatting"] = "clearformatting"; + // + RichTextEditorWidgetKey["TableauKeywords"] = "tableaukeywords"; + })(RichTextEditorWidgetKey = exports.RichTextEditorWidgetKey || (exports.RichTextEditorWidgetKey = {})); + // + var CellSizeChange; + (function (CellSizeChange) { + // + CellSizeChange["CSC_Taller"] = "taller"; + // + CellSizeChange["CSC_Shorter"] = "shorter"; + // + CellSizeChange["CSC_Wider"] = "wider"; + // + CellSizeChange["CSC_Narrower"] = "narrower"; + // + CellSizeChange["CSC_Bigger"] = "bigger"; + // + CellSizeChange["CSC_Smaller"] = "smaller"; + })(CellSizeChange = exports.CellSizeChange || (exports.CellSizeChange = {})); + // + var CellTypeEnum; + (function (CellTypeEnum) { + // + CellTypeEnum["CLT_Square"] = "square"; + // + CellTypeEnum["CLT_Text"] = "text"; + })(CellTypeEnum = exports.CellTypeEnum || (exports.CellTypeEnum = {})); + // represents type of formatting pres model + var TypeOfFormatItem; + (function (TypeOfFormatItem) { + // + TypeOfFormatItem["FT_FormatItem"] = "formatItem"; + // + TypeOfFormatItem["FT_FormatContainer"] = "formatContainer"; + // + TypeOfFormatItem["FT_FormatControl"] = "formatControl"; + })(TypeOfFormatItem = exports.TypeOfFormatItem || (exports.TypeOfFormatItem = {})); + // represents type of formatting container + var TypeOfFormatContainer; + (function (TypeOfFormatContainer) { + // + TypeOfFormatContainer["FT_FormatPane"] = "formatPane"; + // + TypeOfFormatContainer["FT_FormatSection"] = "formatSection"; + // + TypeOfFormatContainer["FT_CollapsibleSection"] = "collapsibleSection"; + // + TypeOfFormatContainer["FT_CompositeContainer"] = "compositeContainer"; + // + TypeOfFormatContainer["FT_UnitContainer"] = "unitContainer"; + // + TypeOfFormatContainer["FT_Tab"] = "tab"; + // + TypeOfFormatContainer["FT_TabGroup"] = "tabGroup"; + })(TypeOfFormatContainer = exports.TypeOfFormatContainer || (exports.TypeOfFormatContainer = {})); + // represents type of formatting control + var TypeOfFormatControl; + (function (TypeOfFormatControl) { + // + TypeOfFormatControl["FT_None"] = "none"; + // + TypeOfFormatControl["FT_NumericControl"] = "numeric-control"; + // + TypeOfFormatControl["FT_TextControl"] = "text-control"; + // + TypeOfFormatControl["FT_ColorControl"] = "color-control"; + // + TypeOfFormatControl["FT_SelectorControl"] = "selector-control"; + // + TypeOfFormatControl["FT_ToggleControl"] = "toggle-control"; + })(TypeOfFormatControl = exports.TypeOfFormatControl || (exports.TypeOfFormatControl = {})); + // represents type of formatting widget + var FormatWidgetKey; + (function (FormatWidgetKey) { + // + FormatWidgetKey["FWK_None"] = "none"; + // + FormatWidgetKey["FWK_FontFamily"] = "fontFamily"; + // + FormatWidgetKey["FWK_FontSize"] = "fontSize"; + // + FormatWidgetKey["FWK_ColorSwatch"] = "colorSwatch"; + // + FormatWidgetKey["FWK_Bold"] = "bold"; + // + FormatWidgetKey["FWK_Italics"] = "italics"; + // + FormatWidgetKey["FWK_Underline"] = "underline"; + // + FormatWidgetKey["FWK_LineVisibility"] = "lineVisibility"; + // + FormatWidgetKey["FWK_LinePattern"] = "linePattern"; + // + FormatWidgetKey["FWK_LineSize"] = "lineSize"; + // + FormatWidgetKey["FWK_NumberType"] = "numericType"; + // + FormatWidgetKey["FWK_DecimalPlaces"] = "decimalPlaces"; + // + FormatWidgetKey["FWK_ThousandsSeparator"] = "thousandsSeparator"; + // + FormatWidgetKey["FWK_NumericUnits"] = "numericUnits"; + })(FormatWidgetKey = exports.FormatWidgetKey || (exports.FormatWidgetKey = {})); + // represents identifier for each node in format pane + var FormatNodeIdentifier; + (function (FormatNodeIdentifier) { + // + FormatNodeIdentifier["Format_None_Key"] = "none"; + // + FormatNodeIdentifier["Format_Workbook_Key"] = "workbook"; + // + FormatNodeIdentifier["Format_Font_Key"] = "font"; + // + FormatNodeIdentifier["Format_Color_Key"] = "color"; + // + FormatNodeIdentifier["Format_Lines_Key"] = "lines"; + // + FormatNodeIdentifier["Format_FontAll_Key"] = "font-all"; + // + FormatNodeIdentifier["Format_FontAllControls_Key"] = "font-all-controls"; + // + FormatNodeIdentifier["Format_FontMore_Key"] = "font-more"; + // + FormatNodeIdentifier["Format_FontWorksheetTitles_Key"] = "worksheet-titles"; + // + FormatNodeIdentifier["Format_FontToolTip_Key"] = "font-tooltip"; + // + FormatNodeIdentifier["Format_FontWorksheet_Key"] = "font-worksheet"; + // + FormatNodeIdentifier["Format_FontDashTitles_Key"] = "dash-titles"; + // + FormatNodeIdentifier["Format_FontStoryTitles_Key"] = "story-titles"; + // + FormatNodeIdentifier["Format_FontTitlesControls_Key"] = "titles-controls"; + // + FormatNodeIdentifier["Format_FontTooltipControls_Key"] = "tooltip-controls"; + // + FormatNodeIdentifier["Format_FontWorksheetControls_Key"] = "worksheet-controls"; + // + FormatNodeIdentifier["Format_LineMore_Key"] = "line-more"; + // + FormatNodeIdentifier["Format_LineGrid_Key"] = "line-grid"; + // + FormatNodeIdentifier["Format_LineGridTabs_Key"] = "line-grid-tabs"; + // + FormatNodeIdentifier["Format_LineZero_Key"] = "line-zero"; + // + FormatNodeIdentifier["Format_LineZeroTabs_Key"] = "line-zero-tabs"; + // + FormatNodeIdentifier["Format_LineAxisTick_Key"] = "line-axis-tick"; + // + FormatNodeIdentifier["Format_LineAxisTickTabs_Key"] = "line-axis-tick-tabs"; + // + FormatNodeIdentifier["Format_LineAxisRuler_Key"] = "line-axis-ruler"; + // + FormatNodeIdentifier["Format_LineAxisRulerTabs_Key"] = "line-axis-ruler-tabs"; + // + FormatNodeIdentifier["Format_LineHeaderDivider_Key"] = "line-header-divider"; + // + FormatNodeIdentifier["Format_LineHeaderDividerTabs_Key"] = "line-header-divider-tabs"; + // + FormatNodeIdentifier["Format_LinePaneDivider_Key"] = "line-paneDivider"; + // + FormatNodeIdentifier["Format_LinePaneDividerTabs_Key"] = "line-paneDivider-tabs"; + // + FormatNodeIdentifier["Format_LineGridAll_Key"] = "line-grid-all"; + // + FormatNodeIdentifier["Format_LineGridRow_Key"] = "line-grid-row"; + // + FormatNodeIdentifier["Format_LineGridColumn_Key"] = "line-grid-column"; + // + FormatNodeIdentifier["Format_LineZeroAll_Key"] = "line-zero-all"; + // + FormatNodeIdentifier["Format_LineZeroRow_Key"] = "line-zero-row"; + // + FormatNodeIdentifier["Format_LineZeroColumn_Key"] = "line-zero-column"; + // + FormatNodeIdentifier["Format_LineAxisTickAll_Key"] = "line-axis-tick-all"; + // + FormatNodeIdentifier["Format_LineAxisTickRow_Key"] = "line-axis-tick-row"; + // + FormatNodeIdentifier["Format_LineAxisTickColumn_Key"] = "line-axis-tick-column"; + // + FormatNodeIdentifier["Format_LineAxisRulerAll_Key"] = "line-axis-ruler-all"; + // + FormatNodeIdentifier["Format_LineAxisRulerRow_Key"] = "line-axis-ruler-row"; + // + FormatNodeIdentifier["Format_LineAxisRulerColumn_Key"] = "line-axis-ruler-column"; + // + FormatNodeIdentifier["Format_LineReference_Key"] = "line-reference"; + // + FormatNodeIdentifier["Format_LineDrop_Key"] = "line-drop"; + // + FormatNodeIdentifier["Format_LineTrend_Key"] = "line-trend"; + // + FormatNodeIdentifier["Format_LineVisibility_Key"] = "line-visibility"; + // + FormatNodeIdentifier["Format_LinePattern_Key"] = "line-pattern"; + // + FormatNodeIdentifier["Format_LineWidth_Key"] = "line-width"; + // + FormatNodeIdentifier["Format_LineColor_Key"] = "line-color"; + // + FormatNodeIdentifier["Format_TickColor_Key"] = "tick-color"; + // + FormatNodeIdentifier["Format_BorderPattern_Key"] = "border-pattern"; + // + FormatNodeIdentifier["Format_BorderColor_Key"] = "border-color"; + // + FormatNodeIdentifier["Format_DividerColor_Key"] = "divider-color"; + // + FormatNodeIdentifier["Format_FontFamily_Key"] = "font-family-key"; + // + FormatNodeIdentifier["Format_FontSize_Key"] = "font-size-key"; + // + FormatNodeIdentifier["Format_Bold_Key"] = "bold-key"; + // + FormatNodeIdentifier["Format_Italics_Key"] = "italics-key"; + // + FormatNodeIdentifier["Format_Underline_Key"] = "underline-key"; + // + FormatNodeIdentifier["Format_FontColor_Key"] = "font-color-key"; + // + FormatNodeIdentifier["Format_Number_Container_Key"] = "number-container"; + // + FormatNodeIdentifier["Format_Number_Type_Key"] = "number-container-type"; + // + FormatNodeIdentifier["Format_Number_Units_Key"] = "number-container-units"; + // + FormatNodeIdentifier["Format_Number_Decimal_Key"] = "number-container-decimal"; + // + FormatNodeIdentifier["Format_Number_Thousands_Separator_Key"] = "number-container-thousands-separator"; + // + FormatNodeIdentifier["Format_FontPickerMinimal_Key"] = "font-picker-minimal"; + // + FormatNodeIdentifier["Format_FontPickerDefault_Key"] = "font-picker-default"; + // + FormatNodeIdentifier["Format_LinePickerDefault_Key"] = "line-picker-default"; + // + FormatNodeIdentifier["Format_LinePickerNoVis_Key"] = "line-picker-no-visibility"; + // + FormatNodeIdentifier["Format_LineAxisTickPicker_Key"] = "line-axis-tick-picker"; + })(FormatNodeIdentifier = exports.FormatNodeIdentifier || (exports.FormatNodeIdentifier = {})); + // represents the color swatch that will be used in the ColorControlPresModel + var ColorSwatchType; + (function (ColorSwatchType) { + // + ColorSwatchType["CST_Dark"] = "dark-swatch"; + // + ColorSwatchType["CST_Light"] = "light-swatch"; + })(ColorSwatchType = exports.ColorSwatchType || (exports.ColorSwatchType = {})); + // represents the type of a style picker, affecting the preview rendering and, possibly, the layout + var PickerType; + (function (PickerType) { + // + PickerType["PT_None"] = "none"; + // + PickerType["PT_Font"] = "font"; + // + PickerType["PT_Line"] = "line"; + // + PickerType["PT_Number"] = "number"; + })(PickerType = exports.PickerType || (exports.PickerType = {})); + // + var UpdateScope; + (function (UpdateScope) { + // + UpdateScope["US_Worksheet"] = "worksheet"; + // + UpdateScope["US_Dashboard"] = "dashboard"; + // + UpdateScope["US_QuickFilters"] = "quick-filters"; + // + UpdateScope["US_Story"] = "story"; + })(UpdateScope = exports.UpdateScope || (exports.UpdateScope = {})); + // + var ParameterCtrlTypesDisplayMode; + (function (ParameterCtrlTypesDisplayMode) { + // + ParameterCtrlTypesDisplayMode["MODE_TYPE_IN"] = "type_in"; + // + ParameterCtrlTypesDisplayMode["MODE_COMPACT_LIST"] = "compact"; + // + ParameterCtrlTypesDisplayMode["MODE_LIST"] = "list"; + // + ParameterCtrlTypesDisplayMode["MODE_SLIDER"] = "slider"; + // + ParameterCtrlTypesDisplayMode["MODE_DATETIME"] = "datetime"; + })(ParameterCtrlTypesDisplayMode = exports.ParameterCtrlTypesDisplayMode || (exports.ParameterCtrlTypesDisplayMode = {})); + // flags for display options + var ParameterCtrlTypesDisplayFlag; + (function (ParameterCtrlTypesDisplayFlag) { + // + ParameterCtrlTypesDisplayFlag["DISPLAY_CUSTOM_TITLE"] = "custom_title"; + // + ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_SLIDER"] = "hide_slider_slider"; + // + ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_READOUT"] = "hide_slider_readout"; + // + ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_BUTTONS"] = "hide_slider_buttons"; + })(ParameterCtrlTypesDisplayFlag = exports.ParameterCtrlTypesDisplayFlag || (exports.ParameterCtrlTypesDisplayFlag = {})); + // The follow supports 1024 custom palettes, each with 4m shapes. Encoding is palette << PaletteShift | shape. + var ShapeEncodeConstants; + (function (ShapeEncodeConstants) { + // Shift value for palette + ShapeEncodeConstants["EncodePaletteShift"] = "paletteShift"; + // Mask for getting palette from encoded value. (Then shift down) + ShapeEncodeConstants["EncodePaletteMask"] = "paletteMask"; + // Mask for getting shape from encoded value + ShapeEncodeConstants["EncodeShapeMask"] = "shapeMask"; + })(ShapeEncodeConstants = exports.ShapeEncodeConstants || (exports.ShapeEncodeConstants = {})); + // + var ShapeType; + (function (ShapeType) { + // + ShapeType["ShapeCircle"] = "circle"; + // + ShapeType["ShapeSquare"] = "square"; + // + ShapeType["ShapePlus"] = "plus"; + // + ShapeType["ShapeTimes"] = "times"; + // + ShapeType["ShapeAsterisk"] = "asterisk"; + // + ShapeType["ShapeDiamond"] = "diamond"; + // + ShapeType["ShapeTriangle"] = "triangle"; + // + ShapeType["ShapeDownTriangle"] = "down-triangle"; + // + ShapeType["ShapeLeftTriangle"] = "left-triangle"; + // + ShapeType["ShapeRightTriangle"] = "right-triangle"; + // + ShapeType["MaxAllShapes"] = "invalid"; + })(ShapeType = exports.ShapeType || (exports.ShapeType = {})); + // + var ShapePalette; + (function (ShapePalette) { + // built-in palette + ShapePalette["ShapePaletteFilled"] = "filled"; + // custom palettes + ShapePalette["ShapePaletteCustom1"] = "custom1"; + // + ShapePalette["ShapePaletteCustom2"] = "custom2"; + // + ShapePalette["ShapePaletteCustom3"] = "custom3"; + // + ShapePalette["ShapePaletteCustom4"] = "custom4"; + // + ShapePalette["ShapePaletteCustom5"] = "custom5"; + // + ShapePalette["ShapePaletteCustom6"] = "custom6"; + // + ShapePalette["ShapePaletteCustom7"] = "custom7"; + // + ShapePalette["ShapePaletteCustom8"] = "custom8"; + // + ShapePalette["ShapePaletteCustom9"] = "custom9"; + // + ShapePalette["ShapePaletteCustom10"] = "custom10"; + // + ShapePalette["ShapePaletteCustom11"] = "custom11"; + // and so on... + ShapePalette["ShapePaletteCustom12"] = "custom12"; + // + ShapePalette["ShapePaletteHidden"] = "hidden"; + })(ShapePalette = exports.ShapePalette || (exports.ShapePalette = {})); + // ShapeType and palette mapped into a single value. This enum depends on ShapeType and the implementation of ShapeManager::IntEncode. + var ShapeID; + (function (ShapeID) { + // + ShapeID["ShapeIDCircle"] = "shapeIDCircle"; + // + ShapeID["ShapeIDSquare"] = "shapeIDSquare"; + // + ShapeID["ShapeIDPlus"] = "shapeIDPlus"; + // + ShapeID["ShapeIDTimes"] = "shapeIDTimes"; + // + ShapeID["ShapeIDAsterisk"] = "shapeIDAsterisk"; + // + ShapeID["ShapeIDDiamond"] = "shapeIDDiamond"; + // + ShapeID["ShapeIDTriangle"] = "shapeIDTriangle"; + // + ShapeID["ShapeIDDownTriangle"] = "shapeIDDownTriangle"; + // + ShapeID["ShapeIDLeftTriangle"] = "shapeIDLeftTriangle"; + // + ShapeID["ShapeIDRightTriangle"] = "shapeIDRightTriangle"; + // + ShapeID["ShapeIDFilledCircle"] = "shapeIDFilledCircle"; + // + ShapeID["ShapeIDFilledSquare"] = "shapeIDFilledSquare"; + // + ShapeID["ShapeIDFilledPlus"] = "shapeIDFilledPlus"; + // + ShapeID["ShapeIDFilledTimes"] = "shapeIDFilledTimes"; + // + ShapeID["ShapeIDFilledStar"] = "shapeIDFilledStar"; + // + ShapeID["ShapeIDFilledDiamond"] = "shapeIDFilledDiamond"; + // + ShapeID["ShapeIDFilledTriangle"] = "shapeIDFilledTriangle"; + // + ShapeID["ShapeIDFilledDownTriangle"] = "shapeIDFilledDownTriangle"; + // + ShapeID["ShapeIDFilledLeftTriangle"] = "shapeIDFilledLeftTriangle"; + // + ShapeID["ShapeIDFilledRightTriangle"] = "shapeIDFilledRightTriangle"; + // 0+(ShapePaletteHidden< -1; + }); + // Create a mapping of which index in the data dictionary our columns are in + var columnIndices = columns.map(function (vizDataColumn) { + // The columnIndex is in the same position as the paneIndex + var paneIndex = vizDataColumn.paneIndices.indexOf(i); + var columnIndex = vizDataColumn.columnIndices[paneIndex]; + return columnIndex; + }); + // Get the data for the pane we are processing + var vizPane = vizData.paneColumnsData.paneColumnsList[i]; + if (vizPane.vizPaneColumns.length !== columns.length) { + throw api_utils_1.TableauException.error(ActiveMarksDataConverter.MALFORMED_DATA); + } + var headers = new Array(); + var rows = new Array(); + // Column 0 will be the tuple id column. We can use this as a counter for how many rows we have + var tupleIds = vizPane.vizPaneColumns[0].tupleIds; + var marks = new Array(); + for (var tupleIndex = 0; tupleIndex < tupleIds.length; tupleIndex++) { + // TODO Need to revaluate the place of this logic. If it turns out that we need a separate command + // call to get the marks info, then this logic should not be here but instead in a layer above somewhere + var mark = { + type: api_internal_contract_1.MarkType.Bar, + color: 'red', + tupleId: tupleIds[tupleIndex], + }; + marks.push(mark); + // We will have 1 less value in this row since there's the tupleId column + var cells = new Array(vizPane.vizPaneColumns.length - 1); + for (var j = 1 /* skip the first which is tuple ids */; j < vizPane.vizPaneColumns.length; j++) { + // Next, we need to figure out which column we are reading data for + var column = columns[columnIndices[j]]; + var vizPaneColumnData = vizPane.vizPaneColumns[j]; + // Define the header when we are processing the first row + if (tupleIndex === 0) { + var header = { + dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), + fieldName: column.fn, + isReferenced: true, + index: j - 1, + fieldCaption: column.fieldCaption + }; + headers.push(header); + } + var value = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.valueIndices[tupleIndex]); + var aliasValue = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.aliasIndices[tupleIndex]) || ''; + var formattedValue = aliasValue; // TODO - Figure out how to use the formatStrings + var dataCell = { + value: value, + formattedValue: formattedValue, + aliasedValue: aliasValue + }; + // Add our cell to this row + cells[j - 1] = dataCell; + } + rows.push(cells); + } + var dataTable = { + dataTable: rows, + headers: headers, + marks: marks + }; + result.push(dataTable); + }; + // The data model for the VizDataPresModel is a little strange, so this parsing takes some time to figure out. + // There can be multiple panes of data, so we must go through them one at a time to create data tables + for (var i = 0; i < vizData.paneColumnsData.paneColumnsList.length; i++) { + _loop_1(i); + } + return result; + }; + ActiveMarksDataConverter.MALFORMED_DATA = 'Malformed data table'; + return ActiveMarksDataConverter; + }()); + exports.ActiveMarksDataConverter = ActiveMarksDataConverter; + + +/***/ }, +/* 93 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Enums = __webpack_require__(90); + var EnumMappings_1 = __webpack_require__(89); + var api_utils_1 = __webpack_require__(80); + /** + * Contains static helper methods for converting from an underlying data pres model into the api representation. + * Most of the code is a direct port from ApiUnderlyingDataHandler.cs + * https://opengrok/source/xref/teams_near/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiUnderlyingDataHandler.cs + */ + var UnderlyingDataConverter = (function () { + function UnderlyingDataConverter() { + } + UnderlyingDataConverter.lookupValueFromDictionary = function (dataDictionary, dt, index) { + if (index < 0) { + // per cl 280396 / bugzid 81197 negative data value index means that it is special + dt = Enums.DataType.DT_STRING; + index = -index - 1; + } + var result = null; + var rawValue = UnderlyingDataConverter.getRawValue(dataDictionary, dt, index); + if (rawValue !== null) { + result = rawValue.toString(); + } + return result; + }; + /* tslint:disable-next-line:no-any */ + UnderlyingDataConverter.getRawValue = function (dataDictionary, dt, index) { + if (!dataDictionary.dataSegments) { + return null; + } + for (var _i = 0, _a = Object.keys(dataDictionary.dataSegments); _i < _a.length; _i++) { + var key = _a[_i]; + var dataSegment = dataDictionary.dataSegments[key]; + for (var _b = 0, _c = dataSegment.dataColumns; _b < _c.length; _b++) { + var dataColumn = _c[_b]; + if (!dataColumn || dataColumn.dataType !== dt) { + continue; + } + if (index < dataColumn.dataValues.length) { + return dataColumn.dataValues[index]; + } + index -= dataColumn.dataValues.length; + break; + } + } + return null; + }; + UnderlyingDataConverter.buildDataTable = function (dataDictionary, columns) { + var result = { + dataTable: UnderlyingDataConverter.buildTable(dataDictionary, columns), + headers: columns.map(function (c, i) { return UnderlyingDataConverter.buildColumnModel(c, i); }) + }; + return result; + }; + UnderlyingDataConverter.buildUnderlyingDataTable = function (isSummary, underlyingDataTable) { + var result = { + data: UnderlyingDataConverter.buildDataTable(underlyingDataTable.dataDictionary, underlyingDataTable.underlyingDataTableColumns), + isSummary: isSummary + }; + return result; + }; + UnderlyingDataConverter.buildActiveMarksTable = function (dataDictionary, vizData) { + throw api_utils_1.TableauException.apiNotImplemented(['buildActiveMarksTable']); + }; + UnderlyingDataConverter.buildColumnModel = function (column, index) { + return { + dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), + fieldName: column.fn, + fieldCaption: column.fieldCaption, + isReferenced: !!column.isReferenced, + index: index + }; + }; + UnderlyingDataConverter.buildTable = function (dataDictionary, columns) { + if (columns.length === 0) { + return new Array(); + } + var rowCount = columns[0].formatValIdxs.length; + var columnCount = columns.length; + var result = new Array(rowCount); + // Initialize all of our rows + for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { + result[rowIndex] = new Array(columnCount); + } + // Go through column-by-column and convert the values + for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) { + var column = columns[columnIndex]; + for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { + var formattedValue = UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, Enums.DataType.DT_STRING, column.formatValIdxs[rowIndex]); + if (formattedValue === null) { + throw api_utils_1.TableauException.isNull(['formattedValue']); + } + var value = { + value: UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, column.valueIndices[rowIndex]), + formattedValue: formattedValue, + aliasedValue: formattedValue + }; + result[rowIndex][columnIndex] = value; + } + } + return result; + }; + return UnderlyingDataConverter; + }()); + exports.UnderlyingDataConverter = UnderlyingDataConverter; + + +/***/ }, +/* 94 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(80); + var EnumMappings_1 = __webpack_require__(89); + /** + * Class containing helper methods for converting from ApiPresModels to their PresLayer equivalents + * + * @export + * @class ApiToPresLayerConverter + */ + var ApiToPresLayerConverter = (function () { + function ApiToPresLayerConverter() { + } + ApiToPresLayerConverter.convertSheetPath = function (apiSheetPath) { + if (!apiSheetPath) { + throw api_utils_1.TableauException.isUndefined(['sheetPath']); + } + var result = { + sheetName: apiSheetPath.sheetName, + isDashboard: apiSheetPath.isDashboard, + storyboard: apiSheetPath.storyboard || '', + flipboardZoneId: apiSheetPath.flipboardZoneID || 0, + storyPointId: apiSheetPath.storyPointID || 0, + }; + return result; + }; + ApiToPresLayerConverter.convertExtensionLocator = function (apiExtensionLocator) { + var result = { + addInInstanceId: apiExtensionLocator.instanceId, + sheetPath: ApiToPresLayerConverter.convertSheetPath(apiExtensionLocator.dashboardPath) + }; + return result; + }; + ApiToPresLayerConverter.convertVisualId = function (apiVisualid) { + var result = { + worksheet: apiVisualid.worksheet, + dashboard: apiVisualid.dashboard, + storyboard: apiVisualid.storyboard, + storyPointId: apiVisualid.storyPointID, + flipboardZoneId: apiVisualid.flipboardZoneID + }; + return result; + }; + ApiToPresLayerConverter.convertVisualIdToWorksheet = function (apiVisualId) { + return apiVisualId.worksheet; + }; + ApiToPresLayerConverter.convertVisualIdToDashboard = function (apiVisualId) { + return apiVisualId.dashboard || ''; + }; + ApiToPresLayerConverter.convertFilterValues = function (filterValues) { + if (filterValues.length === 0) { + // platform code expects an empty string for clearing filter values + return ['']; + } + return filterValues; + }; + ApiToPresLayerConverter.convertFilterType = function (filterUpdateType) { + return EnumMappings_1.ApiToPresLayerEnumMappings.filterUpdateType.convert(filterUpdateType); + }; + ApiToPresLayerConverter.ConvertNullOption = function (nullOption) { + return EnumMappings_1.ApiToPresLayerEnumMappings.nullOption.convert(nullOption); + }; + ApiToPresLayerConverter.ConvertFilterDomainType = function (filterDomainType) { + return EnumMappings_1.ApiToPresLayerEnumMappings.filterDomainType.convert(filterDomainType); + }; + return ApiToPresLayerConverter; + }()); + exports.ApiToPresLayerConverter = ApiToPresLayerConverter; + + +/***/ }, +/* 95 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(79); + var Enums_1 = __webpack_require__(90); + var EnumMappings_1 = __webpack_require__(89); + var PresLayerToApiConverter_1 = __webpack_require__(88); + var FiltersConverter = (function () { + function FiltersConverter() { + } + FiltersConverter.convertFiltersPresModel = function (filterPms) { + var filters = []; + filterPms.forEach(function (filterPm) { + switch (filterPm.filterType) { + case Enums_1.FilterType.FLTR_Categorical: { + filters.push(FiltersConverter.convertCategoricalFilterPresModel(filterPm)); + break; + } + case Enums_1.FilterType.FLTR_Quantitative: { + filters.push(FiltersConverter.convertQuantitativeFilterPresModel(filterPm)); + break; + } + case Enums_1.FilterType.FLTR_RelativeDate: { + filters.push(FiltersConverter.convertRelativeDateFilterPresModel(filterPm)); + break; + } + default: + return; + } + }); + return filters; + }; + FiltersConverter.convertCategoricalFilterPresModel = function (filterPm) { + var selectedValues = filterPm.categoricalFilterInfo.captionedFilterValueList.map(function (filterValue) { + return FiltersConverter.convertFilterValuePresModel(filterValue); + }); + var filter = { + values: selectedValues, + isExclude: filterPm.categoricalFilterInfo.exclude, + filterType: api_internal_contract_1.FilterType.Categorical, + fieldCaption: filterPm.fieldCaption, + fieldName: filterPm.fn, + visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel) + }; + return filter; + }; + FiltersConverter.convertQuantitativeFilterPresModel = function (filterPm) { + var minValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMin); + var maxValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMax); + var filter = { + filterType: api_internal_contract_1.FilterType.Range, + fieldCaption: filterPm.fieldCaption, + fieldName: filterPm.fn, + visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), + min: minValue, + max: maxValue, + includeNullValues: FiltersConverter.convertIncludedNullValues(filterPm.quantitativeFilterInfo.included) + }; + return filter; + }; + FiltersConverter.convertRelativeDateFilterPresModel = function (filterPm) { + var anchorDateValue = FiltersConverter.convertFilterValuePresModel(filterPm.relativeDateFilterInfo.captionedAnchorDate); + var filter = { + filterType: api_internal_contract_1.FilterType.RelativeDate, + fieldCaption: filterPm.fieldCaption, + fieldName: filterPm.fn, + visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), + anchorDate: anchorDateValue, + periodType: EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(filterPm.relativeDateFilterInfo.datePeriodType), + rangeType: EnumMappings_1.PresLayerToApiEnumMappings.dateRangeType.convert(filterPm.relativeDateFilterInfo.dateRangeType), + rangeN: filterPm.relativeDateFilterInfo.rangeN + }; + return filter; + }; + FiltersConverter.convertCategoricalDomain = function (domainPm) { + var domainValues = domainPm.captionedFilterValueList.map(function (filterValue) { + return FiltersConverter.convertFilterValuePresModel(filterValue); + }); + return { values: domainValues }; + }; + FiltersConverter.convertQuantitativeDomain = function (domainPm) { + var minValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMin); + var maxValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMax); + return { + max: maxValue, + min: minValue + }; + }; + FiltersConverter.convertFilterValuePresModel = function (dvPM) { + /*tslint:disable-next-line:no-any */ + var value; + switch (dvPM.dataType) { + case Enums_1.DataType.DT_BOOLEAN: { + value = Boolean(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_DATE: { + value = new Date(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_DATETIME: { + value = new Date(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_INTEGER: { + value = Number.parseInt(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_REAL: { + value = Number.parseFloat(dvPM.dataValueStr); + break; + } + // default to string + default: { + value = dvPM.dataValueStr; + break; + } + } + return { + value: value, + // TODO: no easy way of getting back aliased value from platform, will need to investigate further + aliasedValue: '', + formattedValue: dvPM.dataValueDisplayString + }; + }; + FiltersConverter.convertIncludedNullValues = function (includeNull) { + return (includeNull === Enums_1.FiltersQuantitativeIncludedValues.InRangeOrNull || + includeNull === Enums_1.FiltersQuantitativeIncludedValues.All || + includeNull === Enums_1.FiltersQuantitativeIncludedValues.Null); + }; + return FiltersConverter; + }()); + exports.FiltersConverter = FiltersConverter; + + +/***/ }, +/* 96 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_utils_1 = __webpack_require__(80); + /** + * Simple registry class which creates a mapping based on two keys. + * + * @export + * @class MappingRegistry + * @template TInputEnumType + * @template TOutputEnumType + * @template TMappingStorageType + */ + var MappingRegistry = (function () { + function MappingRegistry() { + this._registry = {}; + } + MappingRegistry.prototype.has = function (inputType, outputType) { + var key = this.makeKey(inputType, outputType); + if (!this._registry.hasOwnProperty(key)) { + return false; + } + if (!this._registry[key]) { + return false; + } + return true; + }; + MappingRegistry.prototype.get = function (inputType, outputType) { + if (!this.has(inputType, outputType)) { + throw api_utils_1.TableauException.error(MappingRegistry.MISSING_REQUESTED_MAPPING, [inputType, outputType]); + } + var key = this.makeKey(inputType, outputType); + return this._registry[key]; + }; + MappingRegistry.prototype.addRegistration = function (inputType, outputType, storageItem) { + var key = this.makeKey(inputType, outputType); + // Add this item + this._registry[key] = storageItem; + }; + /** + * Combines the two keys into a unique string + * + * @private + * @param {TInputEnumType} inputType + * @param {TOutputEnumType} outputType + * @returns {string} + * @memberof MappingRegistry + */ + MappingRegistry.prototype.makeKey = function (inputType, outputType) { + var keyObj = { input: inputType, output: outputType }; + return JSON.stringify(keyObj); + }; + MappingRegistry.MISSING_REQUESTED_MAPPING = 'Missing requested mapping: %1 to %2'; + return MappingRegistry; + }()); + exports.MappingRegistry = MappingRegistry; + + +/***/ }, +/* 97 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(79); + var api_utils_1 = __webpack_require__(80); + var EnumMappings_1 = __webpack_require__(89); + /** + * Contains logic for converting Parameter models into their equivalent Api versions + */ + var ParametersDataConverter = (function () { + function ParametersDataConverter() { + } + ParametersDataConverter.convertParameterList = function (parameters) { + return parameters.map(ParametersDataConverter.convertParameter); + }; + // Converts a single parameter. + // Rough port of https://opengrok/source/xref/dev_nessie/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiParameterHandler.cs#95 + ParametersDataConverter.convertParameter = function (param) { + var currentValue = ParametersDataConverter.convertAliasedDataValue(param.valueAlias, param.formattedValue); + var allowableValuesType = EnumMappings_1.PresLayerToApiEnumMappings.parameterTypesDomainType.convert(param.parameterDomainType); + var result = { + name: param.fieldCaption, + fieldName: param.parameterName, + dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(param.dataType), + currentValue: currentValue, + allowableValuesType: allowableValuesType + }; + if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.List) { + var allowableValues = new Array(); + for (var i = 0; i < param.valuesAliases.length; i++) { + var adv = param.valuesAliases[i]; + var formattedValue = param.formattedValues[i]; + allowableValues.push(ParametersDataConverter.convertAliasedDataValue(adv, formattedValue)); + } + result.allowableValues = allowableValues; + } + else if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.Range) { + result.minValue = ParametersDataConverter.makeDataValue(param.valueMin, param.formattedMin); + result.maxValue = ParametersDataConverter.makeDataValue(param.valueMax, param.formattedMax); + result.stepSize = ParametersDataConverter.convertNumber(result.dataType, param.valueInc); + result.dateStepPeriod = EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(param.datePeriodType, false); + } + else { + // Nothing to do in the case that all values are allowed + } + return result; + }; + ParametersDataConverter.convertNumber = function (dataType, value) { + if (value) { + if (dataType === api_internal_contract_1.DataType.Int || dataType === api_internal_contract_1.DataType.Date || dataType === api_internal_contract_1.DataType.DateTime) { + return parseInt(value, 10); + } + else if (dataType === api_internal_contract_1.DataType.Float) { + return parseFloat(value); + } + } + return undefined; + }; + /*tslint:disable-next-line:no-any */ + ParametersDataConverter.makeDataValue = function (value, formattedValue, alias) { + var result = { + value: value, + formattedValue: formattedValue, + aliasedValue: alias || formattedValue + }; + return result; + }; + /*tslint:disable-next-line:no-any */ + ParametersDataConverter.convertAliasedDataValue = function (adv, formattedValue) { + // AliasedDataValues are serialized in kind of a strange way from the platform code. They are output + // as an array of 2 values. The first is the actual value, the second is the alias. See AliasedDataValueSerializer::ToSerializer + if (!adv || !(adv instanceof Array)) { + throw api_utils_1.TableauException.invalid(['aliased data value']); + } + var value = adv[0]; + var alias = adv.length < 2 ? undefined : adv[1]; + return ParametersDataConverter.makeDataValue(value, formattedValue, alias); + }; + return ParametersDataConverter; + }()); + exports.ParametersDataConverter = ParametersDataConverter; + + +/***/ }, +/* 98 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(4)); + __export(__webpack_require__(5)); + __export(__webpack_require__(6)); + __export(__webpack_require__(7)); + __export(__webpack_require__(8)); + + +/***/ }, +/* 99 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var EnumConverter_1 = __webpack_require__(14); + exports.EnumConverter = EnumConverter_1.EnumConverter; + var Param_1 = __webpack_require__(16); + exports.Param = Param_1.Param; + var TableauException_1 = __webpack_require__(15); + exports.TableauException = TableauException_1.TableauException; + + +/***/ }, +/* 100 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implemenation of the PresentationLayer contract with a bit of extra information + * added to work with add-ins. Most work is delegated down to the interopObject which + * communicates directly with the c++ layer via QWebChannel + * + * @class AddInApiPresLayerImpl + * @implements {contract.PresentationLayer} + */ + var AddInApiPresLayerImpl = (function () { + function AddInApiPresLayerImpl(_interopObject) { + var _this = this; + this._interopObject = _interopObject; + this._notificationHandlers = {}; + if (_interopObject && _interopObject.OnNotification) { + _interopObject.OnNotification.connect(function (notification) { + _this.dispatchNotification(notification); + }); + } + } + Object.defineProperty(AddInApiPresLayerImpl.prototype, "AddInInstanceInfo", { + /** + * Gets the instance info for this particular add-in from the c++ code + * + * @readonly + * @type {AddInInstancePresModel} + * @memberof AddInApiPresLayerImpl + */ + get: function () { + return this._interopObject.addInInstanceInfo; + }, + enumerable: true, + configurable: true + }); + /** + * Invokes a command using the pres-layer interop + * + * @template T - The expected return type + * @param {string} commandNamespace + * @param {string} commandName + * @param {object} params + * @returns {Promise} + * @memberof AddInApiPresLayerImpl + */ + AddInApiPresLayerImpl.prototype.invokeCommand = function (commandNamespace, commandName, params) { + var _this = this; + return new Promise(function (resolve, reject) { + try { + commandNamespace = commandNamespace || 'tabdoc'; + _this._interopObject.ExecuteCommand(commandNamespace, commandName, params, function (response) { + if (!response.Success) { + var msg = 'ExecuteCommand failed, with result:' + JSON.stringify(response.Result); + reject(new Error(msg)); + } + else { + resolve(response.Result); + } + }); + } + catch (err) { + reject(err); + } + }); + }; + // This implementation will registration a single instance of a notification handler with the Native C++ object, + // and implement multi-dispatch to the web objects from h.ere + AddInApiPresLayerImpl.prototype.registerNotificationHandler = function (eventId, handler) { + var _this = this; + if (eventId in this._notificationHandlers) { + this._notificationHandlers[eventId].push(handler); + } + else { + this._notificationHandlers[eventId] = [handler]; + try { + this._interopObject.RegisterNotificationHandler(eventId); + } + catch (err) { + // console.log('RegisterNotificationHandler failed: ' + err); + } + } + return function () { return _this.removeNotificationHandler(eventId, handler); }; + }; + AddInApiPresLayerImpl.prototype.removeNotificationHandler = function (eventId, handler) { + var handlerList = this._notificationHandlers[eventId]; + if (!handlerList) { + return; + } + var foundIndex = handlerList.indexOf(handler); + if (foundIndex >= 0) { + handlerList.splice(foundIndex, 1); + } + if (handlerList.length === 0) { + delete this._notificationHandlers[eventId]; + } + }; + AddInApiPresLayerImpl.prototype.dispatchNotification = function (notification) { + // console.log('received notification: ' + JSON.stringify(notification)); + var eventId = notification.eventId; + var presModel = notification.presModel; + if (eventId in this._notificationHandlers) { + var handlers = this._notificationHandlers[eventId]; + for (var i = handlers.length - 1; i >= 0; i--) { + handlers[i](presModel); + } + } + }; + return AddInApiPresLayerImpl; + }()); + exports.AddInApiPresLayerImpl = AddInApiPresLayerImpl; + + +/***/ }, +/* 101 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the InternalApiDispatcher for desktop. Since this will run in the same + * frame as the ApiEventHandler, this class mostly just marshalls down to that implementation + * + * @export + * @class DesktopApiDispatcher + * @implements {InternalApiDispatcher} + */ + var DesktopApiDispatcher = (function () { + function DesktopApiDispatcher(_apiEventHandler) { + var _this = this; + this._apiEventHandler = _apiEventHandler; + this._notificationHandlers = []; + this._apiEventHandler.setEventHandler(function (notificationId, model) { + _this._notificationHandlers.forEach(function (handler) { return handler({ + notificationId: notificationId, + data: model + }); }); + }); + } + DesktopApiDispatcher.prototype.setVersionNumber = function (versionNumber) { + this._apiEventHandler.setVersionNumber(versionNumber); + }; + DesktopApiDispatcher.prototype.execute = function (verb, parameters) { + // Just pass this right through to the ApiEventHandler + return this._apiEventHandler.execute(verb, parameters); + }; + DesktopApiDispatcher.prototype.registerNotificationHandler = function (handler) { + this._notificationHandlers.push(handler); + }; + DesktopApiDispatcher.prototype.unregisterNotificationHandler = function (handler) { + this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; }); + }; + return DesktopApiDispatcher; + }()); + exports.DesktopApiDispatcher = DesktopApiDispatcher; + + +/***/ }, +/* 102 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + __webpack_require__(103); + var qwebchannel_1 = __webpack_require__(104); + /** + * Initializes the QWebChannel contract and returns the pres layer interop object + * + * @returns {Promise} + */ + function initializeWebChannelPresLayer() { + return new Promise(function (resolve, reject) { + try { + // tslint:disable-next-line + new qwebchannel_1.QWebChannel(qt.webChannelTransport, function (channel) { + // tslint:disable-next-line + var addInPresLayer = channel.objects['addInPresLayer']; + resolve(addInPresLayer); + }); + } + catch (e) { + reject(e); + } + }); + } + exports.initializeWebChannelPresLayer = initializeWebChannelPresLayer; + function hasQt() { + return typeof qt === 'object'; + } + exports.hasQt = hasQt; + + +/***/ }, +/* 103 */ +/***/ function(module, exports) { + + + +/***/ }, +/* 104 */ +/***/ function(module, exports, __webpack_require__) { + + /**************************************************************************** + ** + ** Copyright (C) 2015 The Qt Company Ltd. + ** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff + ** Contact: http://www.qt.io/licensing/ + ** + ** This file is part of the QtWebChannel module of the Qt Toolkit. + ** + ** $QT_BEGIN_LICENSE:LGPL21$ + ** Commercial License Usage + ** Licensees holding valid commercial Qt licenses may use this file in + ** accordance with the commercial license agreement provided with the + ** Software or, alternatively, in accordance with the terms contained in + ** a written agreement between you and The Qt Company. For licensing terms + ** and conditions see http://www.qt.io/terms-conditions. For further + ** information use the contact form at http://www.qt.io/contact-us. + ** + ** GNU Lesser General Public License Usage + ** Alternatively, this file may be used under the terms of the GNU Lesser + ** General Public License version 2.1 or version 3 as published by the Free + ** Software Foundation and appearing in the file LICENSE.LGPLv21 and + ** LICENSE.LGPLv3 included in the packaging of this file. Please review the + ** following information to ensure the GNU Lesser General Public License + ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and + ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. + ** + ** As a special exception, The Qt Company gives you certain additional + ** rights. These rights are described in The Qt Company LGPL Exception + ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. + ** + ** $QT_END_LICENSE$ + ** + ****************************************************************************/ + + "use strict"; + + var QWebChannelMessageTypes = { + signal: 1, + propertyUpdate: 2, + init: 3, + idle: 4, + debug: 5, + invokeMethod: 6, + connectToSignal: 7, + disconnectFromSignal: 8, + setProperty: 9, + response: 10, + }; + + var QWebChannel = function(transport, initCallback) + { + if (typeof transport !== "object" || typeof transport.send !== "function") { + console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." + + " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send)); + return; + } + + var channel = this; + this.transport = transport; + + this.send = function(data) + { + if (typeof(data) !== "string") { + data = JSON.stringify(data); + } + channel.transport.send(data); + } + + this.transport.onmessage = function(message) + { + var data = message.data; + if (typeof data === "string") { + data = JSON.parse(data); + } + switch (data.type) { + case QWebChannelMessageTypes.signal: + channel.handleSignal(data); + break; + case QWebChannelMessageTypes.response: + channel.handleResponse(data); + break; + case QWebChannelMessageTypes.propertyUpdate: + channel.handlePropertyUpdate(data); + break; + default: + console.error("invalid message received:", message.data); + break; + } + } + + this.execCallbacks = {}; + this.execId = 0; + this.exec = function(data, callback) + { + if (!callback) { + // if no callback is given, send directly + channel.send(data); + return; + } + if (channel.execId === Number.MAX_VALUE) { + // wrap + channel.execId = Number.MIN_VALUE; + } + if (data.hasOwnProperty("id")) { + console.error("Cannot exec message with property id: " + JSON.stringify(data)); + return; + } + data.id = channel.execId++; + channel.execCallbacks[data.id] = callback; + channel.send(data); + }; + + this.objects = {}; + + this.handleSignal = function(message) + { + var object = channel.objects[message.object]; + if (object) { + object.signalEmitted(message.signal, message.args); + } else { + console.warn("Unhandled signal: " + message.object + "::" + message.signal); + } + } + + this.handleResponse = function(message) + { + if (!message.hasOwnProperty("id")) { + console.error("Invalid response message received: ", JSON.stringify(message)); + return; + } + channel.execCallbacks[message.id](message.data); + delete channel.execCallbacks[message.id]; + } + + this.handlePropertyUpdate = function(message) + { + for (var i in message.data) { + var data = message.data[i]; + var object = channel.objects[data.object]; + if (object) { + object.propertyUpdate(data.signals, data.properties); + } else { + console.warn("Unhandled property update: " + data.object + "::" + data.signal); + } + } + channel.exec({type: QWebChannelMessageTypes.idle}); + } + + this.debug = function(message) + { + channel.send({type: QWebChannelMessageTypes.debug, data: message}); + }; + + channel.exec({type: QWebChannelMessageTypes.init}, function(data) { + for (var objectName in data) { + var object = new QObject(objectName, data[objectName], channel); + } + // now unwrap properties, which might reference other registered objects + for (var objectName in channel.objects) { + channel.objects[objectName].unwrapProperties(); + } + if (initCallback) { + initCallback(channel); + } + channel.exec({type: QWebChannelMessageTypes.idle}); + }); + }; + + function QObject(name, data, webChannel) + { + this.__id__ = name; + webChannel.objects[name] = this; + + // List of callbacks that get invoked upon signal emission + this.__objectSignals__ = {}; + + // Cache of all properties, updated when a notify signal is emitted + this.__propertyCache__ = {}; + + var object = this; + + // ---------------------------------------------------------------------- + + this.unwrapQObject = function(response) + { + if (response instanceof Array) { + // support list of objects + var ret = new Array(response.length); + for (var i = 0; i < response.length; ++i) { + ret[i] = object.unwrapQObject(response[i]); + } + return ret; + } + if (!response + || !response["__QObject*__"] + || response["id"] === undefined) { + return response; + } + + var objectId = response.id; + if (webChannel.objects[objectId]) + return webChannel.objects[objectId]; + + if (!response.data) { + console.error("Cannot unwrap unknown QObject " + objectId + " without data."); + return; + } + + var qObject = new QObject( objectId, response.data, webChannel ); + qObject.destroyed.connect(function() { + if (webChannel.objects[objectId] === qObject) { + delete webChannel.objects[objectId]; + // reset the now deleted QObject to an empty {} object + // just assigning {} though would not have the desired effect, but the + // below also ensures all external references will see the empty map + // NOTE: this detour is necessary to workaround QTBUG-40021 + var propertyNames = []; + for (var propertyName in qObject) { + propertyNames.push(propertyName); + } + for (var idx in propertyNames) { + delete qObject[propertyNames[idx]]; + } + } + }); + // here we are already initialized, and thus must directly unwrap the properties + qObject.unwrapProperties(); + return qObject; + } + + this.unwrapProperties = function() + { + for (var propertyIdx in object.__propertyCache__) { + object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]); + } + } + + function addSignal(signalData, isPropertyNotifySignal) + { + var signalName = signalData[0]; + var signalIndex = signalData[1]; + object[signalName] = { + connect: function(callback) { + if (typeof(callback) !== "function") { + console.error("Bad callback given to connect to signal " + signalName); + return; + } + + object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; + object.__objectSignals__[signalIndex].push(callback); + + if (!isPropertyNotifySignal && signalName !== "destroyed") { + // only required for "pure" signals, handled separately for properties in propertyUpdate + // also note that we always get notified about the destroyed signal + webChannel.exec({ + type: QWebChannelMessageTypes.connectToSignal, + object: object.__id__, + signal: signalIndex + }); + } + }, + disconnect: function(callback) { + if (typeof(callback) !== "function") { + console.error("Bad callback given to disconnect from signal " + signalName); + return; + } + object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; + var idx = object.__objectSignals__[signalIndex].indexOf(callback); + if (idx === -1) { + console.error("Cannot find connection of signal " + signalName + " to " + callback.name); + return; + } + object.__objectSignals__[signalIndex].splice(idx, 1); + if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) { + // only required for "pure" signals, handled separately for properties in propertyUpdate + webChannel.exec({ + type: QWebChannelMessageTypes.disconnectFromSignal, + object: object.__id__, + signal: signalIndex + }); + } + } + }; + } + + /** + * Invokes all callbacks for the given signalname. Also works for property notify callbacks. + */ + function invokeSignalCallbacks(signalName, signalArgs) + { + var connections = object.__objectSignals__[signalName]; + if (connections) { + connections.forEach(function(callback) { + callback.apply(callback, signalArgs); + }); + } + } + + this.propertyUpdate = function(signals, propertyMap) + { + // update property cache + for (var propertyIndex in propertyMap) { + var propertyValue = propertyMap[propertyIndex]; + object.__propertyCache__[propertyIndex] = propertyValue; + } + + for (var signalName in signals) { + // Invoke all callbacks, as signalEmitted() does not. This ensures the + // property cache is updated before the callbacks are invoked. + invokeSignalCallbacks(signalName, signals[signalName]); + } + } + + this.signalEmitted = function(signalName, signalArgs) + { + invokeSignalCallbacks(signalName, signalArgs); + } + + function addMethod(methodData) + { + var methodName = methodData[0]; + var methodIdx = methodData[1]; + object[methodName] = function() { + var args = []; + var callback; + for (var i = 0; i < arguments.length; ++i) { + if (typeof arguments[i] === "function") + callback = arguments[i]; + else + args.push(arguments[i]); + } + + webChannel.exec({ + "type": QWebChannelMessageTypes.invokeMethod, + "object": object.__id__, + "method": methodIdx, + "args": args + }, function(response) { + if (response !== undefined) { + var result = object.unwrapQObject(response); + if (callback) { + (callback)(result); + } + } + }); + }; + } + + function bindGetterSetter(propertyInfo) + { + var propertyIndex = propertyInfo[0]; + var propertyName = propertyInfo[1]; + var notifySignalData = propertyInfo[2]; + // initialize property cache with current value + // NOTE: if this is an object, it is not directly unwrapped as it might + // reference other QObject that we do not know yet + object.__propertyCache__[propertyIndex] = propertyInfo[3]; + + if (notifySignalData) { + if (notifySignalData[0] === 1) { + // signal name is optimized away, reconstruct the actual name + notifySignalData[0] = propertyName + "Changed"; + } + addSignal(notifySignalData, true); + } + + Object.defineProperty(object, propertyName, { + get: function () { + var propertyValue = object.__propertyCache__[propertyIndex]; + if (propertyValue === undefined) { + // This shouldn't happen + console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); + } + + return propertyValue; + }, + set: function(value) { + if (value === undefined) { + console.warn("Property setter for " + propertyName + " called with undefined value!"); + return; + } + object.__propertyCache__[propertyIndex] = value; + webChannel.exec({ + "type": QWebChannelMessageTypes.setProperty, + "object": object.__id__, + "property": propertyIndex, + "value": value + }); + } + }); + + } + + // ---------------------------------------------------------------------- + + data.methods.forEach(addMethod); + + data.properties.forEach(bindGetterSetter); + + data.signals.forEach(function(signal) { addSignal(signal, false); }); + + for (var name in data.enums) { + object[name] = data.enums[name]; + } + } + + //required for use with nodejs + if (true) { + module.exports = { + QWebChannel: QWebChannel + }; + } + + +/***/ } +/******/ ]) +}); +; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCA4ZDdmMWNiOWI3NjA0NzNiNTZjNiIsIndlYnBhY2s6Ly8vLi4vc3JjL01haW4udHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0V4dGVuc2lvbnNBcGkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0ltcGwvRXh0ZW5zaW9uc0ltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9BcGlJbnRlcm5hbENvbnRyYWN0LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL0VudW1zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL0ludGVybmFsQXBpRGlzcGF0Y2hlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9Ob3RpZmljYXRpb25zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL1BhcmFtZXRlcnMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvVmVyYnMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvQXBpU2hhcmVkLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0Rhc2hib2FyZC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TaGVldC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudExpc3RlbmVyTWFuYWdlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL0FwaVV0aWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvRW51bUNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL1RhYmxlYXVFeGNlcHRpb24udHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL3NyYy9QYXJhbS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9WZXJzaW9uTnVtYmVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvRGFzaGJvYXJkSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktZXh0ZXJuYWwtY29udHJhY3Qvc3JjL0FwaUV4dGVybmFsQ29udHJhY3QudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9FbnVtcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9EYXNoYm9hcmRPYmplY3QudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Qb2ludC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TaXplLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1dvcmtzaGVldC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL1NoZWV0SW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9TaGVldEluZm9JbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvV29ya3NoZWV0SW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9EYXRhU291cmNlLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvRGF0YVNvdXJjZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9GaWVsZEltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvQ29ubmVjdGlvblN1bW1hcnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRmllbGQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvVGFibGVTdW1tYXJ5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvU2luZ2xlRXZlbnRNYW5hZ2VySW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1V29ya3NoZWV0RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9HZXREYXRhU2VydmljZS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9SZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvRGF0YVNvdXJjZVNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvRmlsdGVyU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0V4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Nb2RlbHMvRmlsdGVyTW9kZWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9HZXREYXRhTW9kZWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvR2V0RGF0YVNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvTm90aWZpY2F0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9QYXJhbWV0ZXJzU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9QYXJhbWV0ZXJJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvUGFyYW1ldGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvU2VsZWN0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL1NlbGVjdGlvbk1vZGVscy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVCb290c3RyYXAudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvQXBpTWVzc2FnaW5nLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1tZXNzYWdpbmcvc3JjL0Nyb3NzRnJhbWVNZXNzZW5nZXIudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9HdWlkLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1tZXNzYWdpbmcvc3JjL0Nyb3NzRnJhbWVQcmVwYXJlZE1lc3NhZ2UudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvaW50ZXJmYWNlL01lc3NhZ2VUeXBlcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9NZXNzYWdlVHlwZUNoZWNrcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVEaXNwYXRjaGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2V4dGVuc2lvbnMtYXBpL3NyYy9OYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvRW52aXJvbm1lbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvU2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2V4dGVuc2lvbnMtYXBpL3NyYy9TZXJ2aWNlcy9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL0ltcGwvU2V0dGluZ3NTZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvSW1wbC9TZXR0aW5nc0ltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvRXh0ZW5zaW9ucy50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ZyZWxhcmREZXNrdG9wQm9vdHN0cmFwLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9BcGlDb3JlLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9BcGlFdmVudEhhbmRsZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvUGFyYW1zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9nZW4tc3JjL3ByZXNsYXllci9Db21tYW5kSWRzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kUmVnaXN0cmF0aW9uLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9FdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvRW51bU1hcHBpbmdzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2dlbi1zcmMvcHJlc2xheWVyL0VudW1zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9QYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9BY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL1VuZGVybHlpbmdEYXRhQ29udmVydGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9BcGlUb1ByZXNMYXllckNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvRmlsdGVyc0NvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvTWFwcGluZ1JlZ2lzdHJ5LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9QYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0FkZEluQXBpUHJlc0xheWVySW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0Rlc2t0b3BBcGlEaXNwYXRjaGVyLnRzIiwid2VicGFjazovLy8uLi9zcmMvUXRXZWJDaGFubmVsSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vfi9xd2ViY2hhbm5lbC9xd2ViY2hhbm5lbC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsTztBQ1ZBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLHVCQUFlO0FBQ2Y7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7Ozs7Ozs7OztBQ3RDQSxzQ0FBbUQ7QUFFbkQseURBQXdEO0FBRXhELHFGQUFvRjtBQUNwRix5REFBd0Q7QUFDeEQsc0NBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFDO0tBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDcEQsRUFBQyxDQUFDLENBQUM7QUFXSCxPQUFNLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQzs7Ozs7Ozs7QUNuQnpCOzs7O0lBSUc7O0FBRUgsMkZBQTBGO0FBQzFGLDZGQUE0RjtBQUM1RixtQkFBa0I7QUFFbEIsK0NBQXVEO0FBQ3ZELDRDQUFxRDtBQUVyRCwyQ0FBb0Q7QUFHcEQsMkJBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUE0QixDQUFD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QixDQUFDLFFBQVEsSUFBRyw0Q0FBNEIsQ0FBQyxRQUFRO1NBQzlFLEdBQUMsNENBQTRCLENBQUMsR0FBRyxJQUFHLDRDQUE0QixDQUFDLEdBQUc7U0FDcEUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLE1BQU0sSUFBRyw0Q0FBNEIsQ0FBQyxNQUFNO1NBQzFFLEdBQUMsNENBQTRCLENBQUMsR0FBRyxJQUFHLDRDQUE0QixDQUFDLEdBQUc7U0FDcEUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLFNBQVMsSUFBRyw0Q0FBNEIsQ0FBQyxTQUFTO1NBQ2hGLEdBQUMsNENBQTRCLENBQUMsSUFBSSxJQUFHLDRDQUE0QixDQUFDLElBQUk7U0FDdEUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLE1BQU0sSUFBRyw0Q0FBNEIsQ0FBQyxNQUFNO1NBQzFFLEdBQUMsNENBQTRCLENBQUMsTUFBTSxJQUFHLDRDQUE0QixDQUFDLE1BQU07U0FDMUUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLFFBQVEsSUFBRyw0Q0FBNEIsQ0FBQyxRQUFRO1NBQzlFLEdBQUMsNENBQTRCLENBQUMsS0FBSyxJQUFHLDRDQUE0QixDQUFDLEtBQUs7U0FDeEUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLEdBQUcsSUFBRyw0Q0FBNEIsQ0FBQyxHQUFHO1NBQ3BFLEdBQUMsNENBQTRCLENBQUMsUUFBUSxJQUFHLDRDQUE0QixDQUFDLFFBQVE7U0FDOUUsR0FBQyw0Q0FBNEIsQ0FBQyxTQUFTLElBQUcsNENBQTRCLENBQUMsU0FBUztTQUNoRixHQUFDLDRDQUE0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QTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBUztBQUNUO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0EsdUJBQXNCLG1DQUFtQztBQUN6RDs7QUFFQTtBQUNBO0FBQ0EsdUJBQXNCLG1EQUFtRDtBQUN6RTs7QUFFQSxtQkFBa0IsbUNBQW1DO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXNCLG1DQUFtQztBQUN6RCxNQUFLO0FBQ0w7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBMkIscUJBQXFCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnRUFBK0Q7QUFDL0QscUNBQW9DO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBUztBQUNUO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXFCO0FBQ3JCO0FBQ0EsY0FBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFhO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBMkIsc0JBQXNCO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFhO0FBQ2I7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxjQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFpQjtBQUNqQjtBQUNBLFVBQVM7O0FBRVQ7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUEsNENBQTJDLDBCQUEwQixFQUFFOztBQUV2RTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiZnJlbGFyZC1kZXNrdG9wLWJvb3RzdHJhcC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIk1haW5cIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wiTWFpblwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuIFxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvblxuICoqLyIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9kaXN0L1wiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjay9ib290c3RyYXAgOGQ3ZjFjYjliNzYwNDczYjU2YzZcbiAqKi8iLCJpbXBvcnQgKiBhcyB0YWJsZWF1IGZyb20gJ0B0YWJsZWF1L2V4dGVuc2lvbnMtYXBpJztcclxuXHJcbmltcG9ydCB7IGRvQm9vdHN0cmFwIH0gZnJvbSAnLi9GcmVsYXJkRGVza3RvcEJvb3RzdHJhcCc7XHJcblxyXG4vLyBUaGlzIE1haW4gZnVuY3Rpb24gd2lsbCBiZSBleGVjdXRlZCB3aGVuIHRoaXMgbW9kdWxlIGlzIGxvYWRlZC4gQXR0ZW1wdCB0byBkbyBvdXJcclxuLy8gYm9vdHN0cmFwcGluZyB3aXRoIHF0IGFuZCBsb2cgYW55IGVycm9ycyB3ZSBlbmNvdW50ZXJcclxuZG9Cb290c3RyYXAoKS5jYXRjaChlID0+IHtcclxuICBjb25zb2xlLmxvZygnRGVza3RvcCBib290c3RyYXBwaW5nIGZhaWxlZDogJyArIGUpO1xyXG59KTtcclxuXHJcbi8vIERlY2xhcmUgdGhlIGltcG9ydGVkIHRhYmxlYXUgb2JqZWN0IG9uIHRoZSBnbG9iYWwgbmFtZXNwYWNlXHJcbi8vIChUaGlzIG11c3QgZ28gYXdheSBvbmNlIHdlIGRvbid0IGltcG9ydCBhdCB0aGUgQVBJIG91cnNlbHZlcylcclxuZGVjbGFyZSBnbG9iYWwgIHtcclxuICBpbnRlcmZhY2UgV2luZG93IHtcclxuICAgIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgdGFibGVhdTogYW55O1xyXG4gIH1cclxufVxyXG5cclxud2luZG93LnRhYmxlYXUgPSB0YWJsZWF1O1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvTWFpbi50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuLy8gRHVlIHRvIHRoZSB3YXkgd2UgY29uZmlndXJlZCB3ZWJwYWNrLCB3ZSBzaG91bGQgYmUgZXhwb3J0aW5nIHRoaW5ncyB3aGljaCB3aWxsIGJlIHVuZGVyXHJcbi8vIGEgZ2xvYmFsIHZhcmlhYmxlIGNhbGxlZCBcInRhYmxlYXVcIi4gRXhwb3J0IGV2ZXJ5dGhpbmcgd2Ugd2FudCB0byBiZSB2aXNpYmxlIHVuZGVyIHRhYmxlYXVcclxuLy8gZnJvbSB0aGlzIGZpbGUuXHJcblxyXG5pbXBvcnQgeyBFeHRlbnNpb25zSW1wbCB9IGZyb20gJy4vSW1wbC9FeHRlbnNpb25zSW1wbCc7XHJcbmltcG9ydCB7IEV4dGVuc2lvbnMgfSBmcm9tICcuL05hbWVzcGFjZXMvRXh0ZW5zaW9ucyc7XHJcblxyXG5pbXBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5kZWNsYXJlIHZhciBFWFRFTlNJT05fQVBJX1ZFUlNJT05fTlVNQkVSOiBzdHJpbmc7XHJcblZlcnNpb25OdW1iZXIuU2V0VmVyc2lvbk51bWJlcihFWFRFTlNJT05fQVBJX1ZFUlNJT05fTlVNQkVSKTtcclxuXHJcbmNvbnN0IGV4dGVuc2lvbkltcGwgPSBuZXcgRXh0ZW5zaW9uc0ltcGwoKTtcclxuZXhwb3J0IGNvbnN0IGV4dGVuc2lvbnMgPSBuZXcgRXh0ZW5zaW9ucyhleHRlbnNpb25JbXBsKTtcclxuXHJcbi8vIEV4cG9ydCBFbnVtc1xyXG4vLyBUaGVzZSBzaG93IHVwIHVuZGVyIHRoZSB0YWJsZWF1IG9iamVjdC4gSS5lLiB0YWJsZWF1LkV4dGVuc2lvbkNvbnRleHQuU2VydmVyXHJcbmV4cG9ydCB7XHJcbiAgRXh0ZW5zaW9uQ29udGV4dCxcclxuICBFeHRlbnNpb25Nb2RlLFxyXG4gIEFuYWx5dGljc09iamVjdFR5cGUsXHJcbiAgQ29sdW1uVHlwZSxcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gIERhdGFUeXBlLFxyXG4gIERhdGVSYW5nZVR5cGUsXHJcbiAgRGlhbG9nRXZlbnRUeXBlLFxyXG4gIEVuY29kaW5nVHlwZSxcclxuICBFcnJvckNvZGVzLFxyXG4gIEZpZWxkQWdncmVnYXRpb25UeXBlLFxyXG4gIEZpZWxkUm9sZVR5cGUsXHJcbiAgRmlsdGVyRG9tYWluVHlwZSxcclxuICBGaWx0ZXJUeXBlLFxyXG4gIEZpbHRlclVwZGF0ZVR5cGUsXHJcbiAgRmlsdGVyTnVsbE9wdGlvbixcclxuICBNYXJrVHlwZSxcclxuICBQYXJhbWV0ZXJWYWx1ZVR5cGUsXHJcbiAgUGVyaW9kVHlwZSxcclxuICBRdWlja1RhYmxlQ2FsY1R5cGUsXHJcbiAgU2VsZWN0aW9uVXBkYXRlVHlwZSxcclxuICBTaGVldFR5cGUsXHJcbiAgU29ydERpcmVjdGlvbixcclxuICBUYWJsZWF1RXZlbnRUeXBlLFxyXG4gIFRyZW5kTGluZU1vZGVsVHlwZVxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0V4dGVuc2lvbnNBcGkudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV4dGVuc2lvbkRhc2hib2FyZEluZm8sXHJcbiAgRXh0ZW5zaW9uU2V0dGluZ3NJbmZvLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIsXHJcbiAgU2hlZXRQYXRoLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICBEYXNoYm9hcmQsXHJcbiAgRGFzaGJvYXJkSW1wbCxcclxuICBkb0Nyb3NzRnJhbWVCb290c3RyYXAsXHJcbiAgcmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyxcclxuICBWZXJzaW9uTnVtYmVyXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IERhc2hib2FyZENvbnRlbnQgfSBmcm9tICcuLi9OYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL05hbWVzcGFjZXMvRW52aXJvbm1lbnQnO1xyXG5pbXBvcnQgeyBTZXR0aW5ncyB9IGZyb20gJy4uL05hbWVzcGFjZXMvU2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyc7XHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0luaXRpYWxpemF0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IHJlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzIH0gZnJvbSAnLi4vU2VydmljZXMvUmVnaXN0ZXJBbGxFeHRlbnNpb25zU2VydmljZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0ltcGwgfSBmcm9tICcuL1NldHRpbmdzSW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRXh0ZW5zaW9uc0ltcGwge1xyXG4gIHByaXZhdGUgX2luaXRpYWxpemF0aW9uUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcclxuXHJcbiAgcHVibGljIGRhc2hib2FyZENvbnRlbnQ6IERhc2hib2FyZENvbnRlbnQ7XHJcbiAgcHVibGljIGVudmlyb25tZW50OiBFbnZpcm9ubWVudDtcclxuICBwdWJsaWMgc2V0dGluZ3M6IFNldHRpbmdzO1xyXG5cclxuICBwdWJsaWMgaW5pdGlhbGl6ZUFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLl9pbml0aWFsaXphdGlvblByb21pc2UpIHtcclxuICAgICAgdGhpcy5faW5pdGlhbGl6YXRpb25Qcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgIC8vIEZpcnN0IHRoaW5nIHdlIHdhbnQgdG8gZG8gaXMgY2hlY2sgdG8gc2VlIGlmIHRoZXJlIGlzIGEgZGVza3RvcCBkaXNwYXRjaGVyIGFscmVhZHkgcmVnaXN0ZXJlZCBmb3IgdXNcclxuICAgICAgICBpZiAoSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLmhhc0Rlc2t0b3BBcGlEaXNwYXRjaGVyUHJvbWlzZSgpKSB7XHJcbiAgICAgICAgICAvLyBSdW5uaW5nIGluIGRlc2t0b3AsIHVzZSB0aGlzIHByb21pc2VcclxuICAgICAgICAgIGNvbnN0IGRlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSA9IEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKTtcclxuICAgICAgICAgIGRlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZS50aGVuKHRoaXMub25EaXNwYXRjaGVyUmVjZWl2ZWQuYmluZCh0aGlzKSkudGhlbigoKSA9PiB7IHJlc29sdmUoKTsgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFdlIG11c3QgYmUgcnVubmluZyBpbiBzZXJ2ZXIsIHNvIHdlIHNob3VsZCB0cnkgdG8ga2ljayBvZiB0aGUgc2VydmVyIGRpc3BhdGNoZXIgYm9vdHN0cmFwcGluZ1xyXG4gICAgICAgICAgZG9Dcm9zc0ZyYW1lQm9vdHN0cmFwKHdpbmRvdywgVmVyc2lvbk51bWJlci5JbnN0YW5jZSkudGhlbih0aGlzLm9uRGlzcGF0Y2hlclJlY2VpdmVkLmJpbmQodGhpcykpLnRoZW4oKCkgPT4geyByZXNvbHZlKCk7IH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemF0aW9uUHJvbWlzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25EaXNwYXRjaGVyUmVjZWl2ZWQoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBkaXNwYXRjaGVyLnNldFZlcnNpb25OdW1iZXIoVmVyc2lvbk51bWJlci5JbnN0YW5jZSk7XHJcblxyXG4gICAgLy8gQ2FsbCB0byByZWdpc3RlciBhbGwgdGhlIHNlcnZpY2VzIHdoaWNoIHdpbGwgdXNlIHRoZSBuZXdseSBpbml0aWFsaXplZCBkaXNwYXRjaGVyXHJcbiAgICByZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzKGRpc3BhdGNoZXIpO1xyXG4gICAgcmVnaXN0ZXJBbGxFeHRlbnNpb25zU2VydmljZXMoZGlzcGF0Y2hlcik7XHJcblxyXG4gICAgLy8gR2V0IHRoZSBpbml0aWFsaXphdGlvbiBzZXJ2aWNlIGFuZCBpbml0aWFsaXplIHRoaXMgZXh0ZW5zaW9uXHJcbiAgICBjb25zdCBpbml0aWFsaXphdGlvblNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxJbml0aWFsaXphdGlvblNlcnZpY2U+KFxyXG4gICAgICBFeHRlbnNpb25zU2VydmljZU5hbWVzLkluaXRpYWxpemF0aW9uU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIGluaXRpYWxpemF0aW9uU2VydmljZS5pbml0aWFsaXplRGFzaGJvYXJkRXh0ZW5zaW9uc0FzeW5jKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdC5leHRlbnNpb25JbnN0YW5jZS5sb2NhdG9yLmRhc2hib2FyZFBhdGgpIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmlzVW5kZWZpbmVkKFsnRGFzaGJvYXJkUGF0aCddKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kYXNoYm9hcmRDb250ZW50ID0gdGhpcy5pbml0aWFsaXplRGFzaGJvYXJkQ29udGVudChyZXN1bHQuZXh0ZW5zaW9uRGFzaGJvYXJkSW5mbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuZXh0ZW5zaW9uSW5zdGFuY2UubG9jYXRvci5kYXNoYm9hcmRQYXRoKTtcclxuICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudChyZXN1bHQuZXh0ZW5zaW9uRW52aXJvbm1lbnQpO1xyXG4gICAgICB0aGlzLnNldHRpbmdzID0gdGhpcy5pbml0aWFsaXplU2V0dGluZ3MocmVzdWx0LmV4dGVuc2lvblNldHRpbmdzSW5mbyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhc2hib2FyZENvbnRlbnQoaW5mbzogRXh0ZW5zaW9uRGFzaGJvYXJkSW5mbywgc2hlZXRQYXRoOiBTaGVldFBhdGgpOiBEYXNoYm9hcmRDb250ZW50IHtcclxuICAgIGNvbnN0IGRhc2hib2FyZEltcGwgPSBuZXcgRGFzaGJvYXJkSW1wbChpbmZvLCBzaGVldFBhdGgpO1xyXG4gICAgY29uc3QgZGFzaGJvYXJkID0gbmV3IERhc2hib2FyZChkYXNoYm9hcmRJbXBsKTtcclxuICAgIHJldHVybiBuZXcgRGFzaGJvYXJkQ29udGVudChkYXNoYm9hcmQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2V0dGluZ3Moc2V0dGluZ3NJbmZvOiBFeHRlbnNpb25TZXR0aW5nc0luZm8pOiBTZXR0aW5ncyB7XHJcbiAgICBjb25zdCBzZXR0aW5nc0ltcGwgPSBuZXcgU2V0dGluZ3NJbXBsKHNldHRpbmdzSW5mbyk7XHJcbiAgICByZXR1cm4gbmV3IFNldHRpbmdzKHNldHRpbmdzSW1wbCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0ltcGwvRXh0ZW5zaW9uc0ltcGwudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL0VudW1zJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvSW50ZXJuYWxBcGlEaXNwYXRjaGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTm90aWZpY2F0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL1BhcmFtZXRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9WZXJicyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL1ZlcnNpb25OdW1iZXInO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvQXBpSW50ZXJuYWxDb250cmFjdC50c1xuICoqLyIsImV4cG9ydCBlbnVtIEV4dGVuc2lvbkNvbnRleHQge1xyXG4gIERlc2t0b3AgPSAnZGVza3RvcCcsXHJcbiAgU2VydmVyID0gJ3NlcnZlcicsXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFeHRlbnNpb25Nb2RlIHtcclxuICBBdXRob3JpbmcgPSAnYXV0aG9yaW5nJyxcclxuICBWaWV3aW5nID0gJ3ZpZXdpbmcnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ29sdW1uVHlwZSB7XHJcbiAgRGlzY3JldGUgPSAnZGlzY3JldGUnLFxyXG4gIENvbnRpbnVvdXMgPSAnY29udGludW91cydcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGFzaGJvYXJkT2JqZWN0VHlwZSB7XHJcbiAgQmxhbmsgPSAnYmxhbmsnLFxyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG4gIFF1aWNrRmlsdGVyID0gJ3F1aWNrLWZpbHRlcicsXHJcbiAgUGFyYW1ldGVyQ29udHJvbCA9ICdwYXJhbWV0ZXItY29udHJvbCcsXHJcbiAgUGFnZUZpbHRlciA9ICdwYWdlLWZpbHRlcicsXHJcbiAgTGVnZW5kID0gJ2xlZ2VuZCcsXHJcbiAgVGl0bGUgPSAndGl0bGUnLFxyXG4gIFRleHQgPSAndGV4dCcsXHJcbiAgSW1hZ2UgPSAnaW1hZ2UnLFxyXG4gIFdlYlBhZ2UgPSAnd2ViLXBhZ2UnLFxyXG4gIEV4dGVuc2lvbiA9ICdleHRlbnNpb24nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuICBTdHJpbmcgPSAnc3RyaW5nJyxcclxuICBJbnQgPSAnaW50JyxcclxuICBGbG9hdCA9ICdmbG9hdCcsXHJcbiAgQm9vbCA9ICdib29sJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIERhdGVUaW1lID0gJ2RhdGUtdGltZScsXHJcbiAgU3BhdGlhbCA9ICdzcGF0aWFsJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbmNvZGVkRGF0YVR5cGUge1xyXG4gIE51bWJlciA9ICdudW1iZXInLFxyXG4gIFN0cmluZyA9ICdzdHJpbmcnLFxyXG4gIERhdGUgPSAnZGF0ZScsXHJcbiAgQm9vbGVhbiA9ICdib29sZWFuJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xyXG4gIFNlcnZlckVycm9yID0gJ3NlcnZlci1lcnJvcicsXHJcbiAgSW52YWxpZEFnZ3JlZ2F0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZScsXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkTmFtZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZG5hbWUnLFxyXG4gIEludmFsaWRGaWx0ZXJGaWVsZFZhbHVlID0gJ2ludmFsaWQtZmlsdGVyLWZpZWxkLXZhbHVlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSB7XHJcbiAgU3VtID0gJ3N1bScsXHJcbiAgQXZnID0gJ2F2ZycsXHJcbiAgTWluID0gJ21pbicsXHJcbiAgTWF4ID0gJ21heCcsXHJcbiAgU3RkZXYgPSAnc3RkZXYnLFxyXG4gIFN0ZGV2cCA9ICdzdGRldnAnLFxyXG4gIFZhciA9ICd2YXInLFxyXG4gIFZhcnAgPSAndmFycCcsXHJcbiAgQ291bnQgPSAnY291bnQnLFxyXG4gIENvdW50ZCA9ICdjb3VudGQnLFxyXG4gIE1lZGlhbiA9ICdtZWRpYW4nLFxyXG4gIEF0dHIgPSAnYXR0cicsXHJcbiAgTm9uZSA9ICdub25lJyxcclxuICBZZWFyID0gJ3llYXInLFxyXG4gIFF0ciA9ICdxdHInLFxyXG4gIE1vbnRoID0gJ21vbnRoJyxcclxuICBEYXkgPSAnZGF5JyxcclxuICBIb3VyID0gJ2hvdXInLFxyXG4gIE1pbnV0ZSA9ICdtaW51dGUnLFxyXG4gIFNlY29uZCA9ICdzZWNvbmQnLFxyXG4gIFdlZWsgPSAnd2VlaycsXHJcbiAgV2Vla2RheSA9ICd3ZWVrZGF5JyxcclxuICBNb250aFllYXIgPSAnbW9udGgteWVhcicsXHJcbiAgTWR5ID0gJ21keScsXHJcbiAgRW5kID0gJ2VuZCcsXHJcbiAgVHJ1bmNZZWFyID0gJ3RydW5jLXllYXInLFxyXG4gIFRydW5jUXRyID0gJ3RydW5jLXF0cicsXHJcbiAgVHJ1bmNNb250aCA9ICd0cnVuYy1tb250aCcsXHJcbiAgVHJ1bmNXZWVrID0gJ3RydW5jLXdlZWsnLFxyXG4gIFRydW5jRGF5ID0gJ3RydW5jLWRheScsXHJcbiAgVHJ1bmNIb3VyID0gJ3RydW5jLWhvdXInLFxyXG4gIFRydW5jTWludXRlID0gJ3RydW5jLW1pbnV0ZScsXHJcbiAgVHJ1bmNTZWNvbmQgPSAndHJ1bmMtc2Vjb25kJyxcclxuICBRdWFydDEgPSAncXVhcnQxJyxcclxuICBRdWFydDMgPSAncXVhcnQzJyxcclxuICBTa2V3bmVzcyA9ICdza2V3bmVzcycsXHJcbiAgS3VydG9zaXMgPSAna3VydG9zaXMnLFxyXG4gIEluT3V0ID0gJ2luLW91dCcsXHJcbiAgVXNlciA9ICd1c2VyJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWVsZFJvbGVUeXBlIHtcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuICBNZWFzdXJlID0gJ21lYXN1cmUnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqICBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyVXBkYXRlVHlwZSB7XHJcbiAgQWRkID0gJ2FkZCcsXHJcbiAgQWxsID0gJ2FsbCcsXHJcbiAgUmVwbGFjZSA9ICdyZXBsYWNlJyxcclxuICBSZW1vdmUgPSAncmVtb3ZlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTaGVldFR5cGUge1xyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG4gIFN0b3J5ID0gJ3N0b3J5JyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEb21haW5SZXN0cmljdGlvblR5cGUge1xyXG4gIEFsbCA9ICdhbGwnLFxyXG4gIExpc3QgPSAnbGlzdCcsXHJcbiAgUmFuZ2UgPSAncmFuZ2UnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGVTdGVwUGVyaW9kIHtcclxuICBZZWFycyA9ICd5ZWFycycsXHJcbiAgUXVhcnRlcnMgPSAncXVhcnRlcnMnLFxyXG4gIE1vbnRocyA9ICdtb250aHMnLFxyXG4gIFdlZWtzID0gJ3dlZWtzJyxcclxuICBEYXlzID0gJ2RheXMnLFxyXG4gIEhvdXJzID0gJ2hvdXJzJyxcclxuICBNaW51dGVzID0gJ21pbnV0ZXMnLFxyXG4gIFNlY29uZHMgPSAnc2Vjb25kcydcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgd2hpY2ggdmFsdWVzIHRvIGluY2x1ZGUgZm9yIGZpbHRlcmluZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlck51bGxPcHRpb24ge1xyXG4gIE51bGxWYWx1ZXMgPSAnbnVsbHZhbHVlcycsXHJcbiAgTm9uTnVsbFZhbHVlcyA9ICdub25udWxsdmFsdWVzJyxcclxuICBBbGxWYWx1ZXMgPSAnYWxsdmFsdWVzJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIHR5cGUgb2YgZmlsdGVyIGRvbWFpblxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyRG9tYWluVHlwZSB7XHJcbiAgUmVsZXZhbnQgPSAncmVsZXZhbnQnLFxyXG4gIERhdGFiYXNlID0gJ2RhdGFiYXNlJ1xyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgc2VsZWN0aW9uIHR5cGUgZm9yIHNlbGVjdCBtYXJrcyBhcGkuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBTZWxlY3Rpb25VcGRhdGVUeXBlIHtcclxuICBSZXBsYWNlID0gJ3NlbGVjdC1yZXBsYWNlJyxcclxuICBBZGQgPSAnc2VsZWN0LWFkZCcsXHJcbiAgUmVtb3ZlID0gJ3NlbGVjdC1yZW1vdmUnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSBpbmNsdWRlZCB2YWx1ZXMgdHlwZSBmb3IgcmFuZ2Ugc2VsZWN0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMge1xyXG4gIEluY2x1ZGVOdWxsID0gJ2luY2x1ZGUtbnVsbCcsXHJcbiAgSW5jbHVkZU5vbk51bGwgPSAnaW5jbHVkZS1ub24tbnVsbCcsXHJcbiAgSW5jbHVkZUFsbCA9ICdpbmNsdWRlLWFsbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIFR5cGUgb2YgbWFyayBmb3IgYSBnaXZlbiBtYXJrcyBjYXJkIGluIGEgdml6LlxyXG4gKi9cclxuZXhwb3J0IGVudW0gTWFya1R5cGUge1xyXG4gICAgQmFyID0gJ2JhcicsXHJcbiAgICBMaW5lID0gJ2xpbmUnLFxyXG4gICAgQXJlYSA9ICdhcmVhJyxcclxuICAgIFNxdWFyZSA9ICdzcXVhcmUnLFxyXG4gICAgQ2lyY2xlID0gJ2NpcmNsZScsXHJcbiAgICBTaGFwZSA9ICdzaGFwZScsXHJcbiAgICBUZXh0ID0gJ3RleHQnLFxyXG4gICAgTWFwID0gJ21hcCcsXHJcbiAgICBQaWUgPSAncGllJyxcclxuICAgIEdhbnR0QmFyID0gJ2dhbnR0LWJhcicsXHJcbiAgICBQb2x5Z29uID0gJ3BvbHlnb24nLFxyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgdHlwZSBvZiBmaWx0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlclR5cGUge1xyXG4gIENhdGVnb3JpY2FsID0gJ2NhdGVnb3JpY2FsJyxcclxuICBSYW5nZSA9ICdyYW5nZScsXHJcbiAgUmVsYXRpdmVEYXRlID0gJ3JlbGF0aXZlRGF0ZScsXHJcbiAgSGllcmFyY2hpY2FsID0gJ2hpZXJhcmNoaWNhbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVybmFsIGVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIERhdGVSYW5nZVR5cGUgb2YgYSByZWxhdGl2ZSBkYXRlIGZpbHRlclxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGF0ZVJhbmdlVHlwZSB7XHJcbiAgLyoqXHJcbiAgICogUmVmZXJzIHRvIHRoZSBsYXN0IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIExhc3QgPSAnbGFzdCcsXHJcbiAgLyoqXHJcbiAgICogUmVmZXJzIHRvIHRoZSBsYXN0IE4gZGF5cywgd2Vla3MsIG1vbnRocywgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXHJcbiAgICovXHJcbiAgTGFzdE4gPSAnbGFzdE4nLFxyXG4gIC8qKlxyXG4gICAqIFJlZmVycyB0byB0aGUgbmV4dCBkYXksIHdlZWssIG1vbnRoLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cclxuICAgKi9cclxuICBOZXh0ID0gJ25leHQnLFxyXG4gIC8qKlxyXG4gICAqIFJlZmVycyB0byB0aGUgbmV4dCBOIGRheXMsIHdlZWtzLCBtb250aHMsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIE5leHROID0gJ25leHROJyxcclxuICAvKipcclxuICAgKiBSZWZlcnMgdG8gdGhlIGN1cnJlbnQgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXHJcbiAgICovXHJcbiAgQ3VycmVudCA9ICdjdXJyZW50JyxcclxuICAvKipcclxuICAgKiBSZWZlcnMgdG8gZXZlcnl0aGluZyB1cCB0byBhbmQgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIFRvRGF0ZSA9ICd0b0RhdGUnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9FbnVtcy50c1xuICoqLyIsImltcG9ydCB7IE1vZGVsIH0gZnJvbSAnLi9Nb2RlbHMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JZCB9IGZyb20gJy4vTm90aWZpY2F0aW9ucyc7XHJcbmltcG9ydCB7IFZlcmJJZCB9IGZyb20gJy4vVmVyYnMnO1xyXG5pbXBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9WZXJzaW9uTnVtYmVyJztcclxuXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbkhhbmRsZXIgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVQYXJhbWV0ZXJzIHtcclxuICBba2V5OiBzdHJpbmddOiBNb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlUmVzcG9uc2Uge1xyXG4gIHJlc3VsdDogTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIHtcclxuICBub3RpZmljYXRpb25JZDogTm90aWZpY2F0aW9uSWQ7XHJcbiAgZGF0YTogTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIHtcclxuICBzZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIpOiB2b2lkO1xyXG4gIGV4ZWN1dGUodmVyYjogVmVyYklkLCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyk6IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPjtcclxuICByZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQ7XHJcbiAgdW5yZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgV2luZG93IHsgX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXI6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPjsgfVxyXG59XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciB7XHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSgpOiBQcm9taXNlPEludGVybmFsQXBpRGlzcGF0Y2hlcj4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5fX3RhYmxlYXVEZXNrdG9wRGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBoYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gc2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKGRpc3BhdGNoZXI6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPik6IHZvaWQge1xyXG4gICAgd2luZG93Ll9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXIudHNcbiAqKi8iLCJleHBvcnQgZW51bSBOb3RpZmljYXRpb25JZCB7XHJcbiAgU2VsZWN0ZWRNYXJrc0NoYW5nZWQgPSAnc2VsZWN0ZWQtbWFya3MtY2hhbmdlZCcsXHJcbiAgUGFyYW1ldGVyQ2hhbmdlZCA9ICdwYXJhbWV0ZXItY2hhbmdlZCcsXHJcbiAgRmlsdGVyQ2hhbmdlZCA9ICdmaWx0ZXItY2hhbmdlZCdcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMudHNcbiAqKi8iLCJleHBvcnQgZW51bSBQYXJhbWV0ZXJJZCB7XHJcbiAgRXh0ZW5zaW9uTG9jYXRvciA9ICdleHRlbnNpb24tbG9jYXRvcicsXHJcbiAgRXh0ZW5zaW9uQm9vdHN0cmFwSW5mbyA9ICdleHRlbnNpb24tYm9vdHN0cmFwLWluZm8nLFxyXG4gIEV4dGVuc2lvblNldHRpbmdzSW5mbyA9ICdleHRlbnNpb24tc2V0dGluZ3MtaW5mbycsXHJcbiAgVmlzdWFsSWQgPSAndmlzdWFsLWlkJyxcclxuICBTaGVldFBhdGggPSAnc2hlZXQtcGF0aCcsXHJcbiAgSWdub3JlQWxpYXNlcyA9ICdpZ25vcmUtYWxpYXNlcycsXHJcbiAgSWdub3JlU2VsZWN0aW9uID0gJ2lnbm9yZS1zZWxlY3Rpb24nLFxyXG4gIEluY2x1ZGVBbGxDb2x1bW5zID0gJ2luY2x1ZGUtYWxsLWNvbHVtbnMnLFxyXG4gIE1heFJvd3MgPSAnbWF4LXJvd3MnLFxyXG4gIFVuZGVybHlpbmdEYXRhVGFibGUgPSAndW5kZXJseWluZy1kYXRhLXRhYmxlJyxcclxuICBVbmRlcmx5aW5nU3VtbWFyeURhdGFUYWJsZSA9ICd1bmRlcmx5aW5nLXN1bW1hcnktZGF0YS10YWJsZScsXHJcbiAgRGF0YVNvdXJjZURhdGFUYWJsZSA9ICdkYXRhLXNvdXJjZS1kYXRhLXRhYmxlJyxcclxuICBTZXR0aW5nc1ZhbHVlcyA9ICdzZXR0aW5ncy12YWx1ZXMnLFxyXG4gIFNlbGVjdGVkRGF0YSA9ICdzZWxlY3RlZC1kYXRhJyxcclxuICBIaWdobGlnaHRlZERhdGEgPSAnaGlnaGxpZ2h0ZWQtZGF0YScsXHJcblxyXG4gICAvLyBGaWx0ZXIgUGFyYW1zXHJcbiAgRmllbGROYW1lID0gJ2ZpZWxkLW5hbWUnLFxyXG4gIEZpbHRlclZhbHVlcyA9ICdmaWx0ZXItdmFsdWVzJyxcclxuICBGaWx0ZXJVcGRhdGVUeXBlID0gJ2ZpbHRlci11cGRhdGUtdHlwZScsXHJcbiAgSXNFeGNsdWRlTW9kZSA9ICdpcy1leGNsdWRlJyxcclxuICBGaWx0ZXJSYW5nZU1pbiA9ICdmaWx0ZXItcmFuZ2UtbWluJyxcclxuICBGaWx0ZXJSYW5nZU1heCA9ICdmaWx0ZXItcmFuZ2UtbWF4JyxcclxuICBGaWx0ZXJSYW5nZU51bGxPcHRpb24gPSAnZmlsdGVyLXJhbmdlLW51bGwtb3B0aW9uJyxcclxuICBXb3Jrc2hlZXRGaWx0ZXJzID0gJ3dvcmtzaGVldC1maWx0ZXJzJyxcclxuICBGaWVsZElkID0gJ2ZpZWxkLWlkJyxcclxuICBEb21haW5UeXBlID0gJ2RvbWFpbi10eXBlJyxcclxuICBDYXRlZ29yaWNhbERvbWFpbiA9ICdjYXRlZ29yaWNhbC1kb21haW4nLFxyXG4gIFF1YW50aXRhdGl2ZURvbWFpbiA9ICdxdWFudGl0YXRpdmUtZG1haW4nLFxyXG5cclxuICBXb3Jrc2hlZXROYW1lID0gJ3dvcmtzaGVldC1uYW1lJyxcclxuICBEYXNoYm9hcmROYW1lID0gJ2Rhc2hib2FyZCcsXHJcblxyXG4gIFBhcmFtZXRlckluZm8gPSAncGFyYW1ldGVyLWluZm8nLFxyXG4gIFBhcmFtZXRlckluZm9zID0gJ3BhcmFtZXRlci1pbmZvcycsXHJcbiAgUGFyYW1ldGVyQ2FwdGlvbiA9ICdwYXJlbWV0ZXItY2FwdGlvbicsXHJcbiAgUGFyYW1ldGVyRmllbGROYW1lID0gJ3BhcmFtZXRlci1maWVsZC1uYW1lJyxcclxuICBQYXJhbWV0ZXJWYWx1ZSA9ICdwYXJhbWV0ZXItdmFsdWUnLFxyXG4gIFNlbGVjdGlvbiA9ICdzZWxlY3Rpb24nLFxyXG4gIFNlbGVjdGlvblVwZGF0ZVR5cGUgPSAnc2VsZWN0aW9uVXBkYXRlVHlwZScsXHJcbiAgSGllclZhbFNlbGVjdGlvbk1vZGVscyA9ICdoaWVyYXJjaGljYWxWYWx1ZVNlbGVjdGlvbk1vZGVscycsXHJcbiAgUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVscyA9ICdxdWFudGF0aXZlUmFuZ2VTZWxlY3Rpb25Nb2RlbHMnLFxyXG4gIERpbVZhbFNlbGVjdGlvbk1vZGVscyA9ICdkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVscycsXHJcblxyXG4gIERhdGFTb3VyY2VJZCA9ICdkYXRhLXNvdXJjZS1pZCcsXHJcbiAgRGF0YVNjaGVtYSA9ICdkYXRhLXNjaGVtYScsXHJcbiAgRGF0YVNvdXJjZU5hbWUgPSAnZGF0YS1zb3VyY2UtbmFtZScsXHJcbiAgQ29sdW1uc1RvSW5jbHVkZSA9ICdjb2x1bW5zLXRvLWluY2x1ZGUnLFxyXG4gIEpvaW5EZXNjcmlwdGlvbiA9ICdqb2luLWRlc2NyaXB0aW9uJyxcclxuICBDb25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMgPSAnY29ubmVjdGlvbi1kZXNjcmlwdGlvbi1zdW1tYXJpZXMnLFxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvUGFyYW1ldGVycy50c1xuICoqLyIsIi8vIERlY2xhcmUgdGhpcyBrZXkgdHlwZSBhbmQgZXhwb3J0IHRoZSBOb3RpZmljYXRpb25JZCB0byBtYWtlIHRoaXMgYmVoYXZlIGxpa2UgYSBzdHJpbmcgZW51bVxyXG5leHBvcnQgZW51bSBWZXJiSWQge1xyXG4gIEFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXIgPSAnY2F0ZWdvcmljYWwtZmlsdGVyJyxcclxuICBBcHBseVJhbmdlRmlsdGVyID0gJ3JhbmdlLWZpbHRlcicsXHJcbiAgQ2xlYXJGaWx0ZXIgPSAnY2xlYXItZmlsdGVyJyxcclxuICBJbml0aWFsaXplRXh0ZW5zaW9uID0gJ2luaXRpYWxpemUtZXh0ZW5zaW9uJyxcclxuICBHZXREYXRhU3VtbWFyeURhdGEgPSAnZ2V0LXN1bW1hcnktZGF0YScsXHJcbiAgR2V0VW5kZXJseWluZ0RhdGEgPSAnZ2V0LXVuZGVybHlpbmctZGF0YScsXHJcbiAgR2V0RGF0YVNvdXJjZURhdGEgPSAnZ2V0LWRhdGFzb3VyY2UtZGF0YScsXHJcbiAgU2F2ZUV4dGVuc2lvblNldHRpbmdzID0gJ3NhdmUtZXh0ZW5zaW9uLXNldHRpbmdzJyxcclxuICBHZXRTZWxlY3RlZE1hcmtzID0gJ2dldC1zZWxlY3RlZC1tYXJrcycsXHJcbiAgR2V0SGlnaGxpZ2h0ZWRNYXJrcyA9ICdnZXQtaGlnaGxpZ2h0ZWQtbWFya3MnLFxyXG4gIEdldFBhcmFtZXRlcnNGb3JTaGVldCA9ICdnZXQtcGFyYW1ldGVycy1mb3Itc2hlZXQnLFxyXG4gIEZpbmRQYXJhbWV0ZXIgPSAnZmluZC1wYXJhbWV0ZXInLFxyXG4gIENoYW5nZVBhcmFtZXRlclZhbHVlID0gJ2NoYW5nZS1wYXJhbWV0ZXItdmFsdWUnLFxyXG4gIENsZWFyU2VsZWN0ZWRNYXJrcyA9ICdjbGVhci1zZWxlY3RlZC1tYXJrcycsXHJcbiAgU2VsZWN0QnlWYWx1ZSA9ICdzZWxlY3QtYnktdmFsdWUnLFxyXG4gIEdldERhdGFTb3VyY2VzID0gJ2dldC1kYXRhLXNvdXJjZXMnLFxyXG4gIFJlZnJlc2hEYXRhU291cmNlID0gJ3JlZnJlc2gtZGF0YS1zb3VyY2UnLFxyXG4gIEdldEZpbHRlcnMgPSAnZ2V0LWZpbHRlcnMnLFxyXG4gIEdldENhdGVnb3JpY2FsRG9tYWluID0gJ2dldC1jYXRlZ29yaWNhbC1kb21haW4nLFxyXG4gIEdldFJhbmdlRG9tYWluID0gJ2dldC1yYW5nZS1kb21haW4nLFxyXG4gIEdldEpvaW5EZXNjcmlwdGlvbiA9ICdnZXQtam9pbi1kZXNjcmlwdGlvbicsXHJcbiAgR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzID0gJ2dldC1jb25uZWN0aW9uLWRlc2NyaXB0aW9uLXN1bW1hcmllcycsXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9WZXJicy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0IHsgRGFzaGJvYXJkIH0gZnJvbSAnLi9EYXNoYm9hcmQnO1xyXG5leHBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9WZXJzaW9uTnVtYmVyJztcclxuXHJcbmV4cG9ydCB7IERhc2hib2FyZEltcGwgfSBmcm9tICcuL0ltcGwvRGFzaGJvYXJkSW1wbCc7XHJcblxyXG5leHBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgfSBmcm9tICcuL0VudW1NYXBwaW5ncy9JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9TZXJ2aWNlcy9SZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVCb290c3RyYXAnO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0FwaVNoYXJlZC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBEYXNoYm9hcmRJbXBsIH0gZnJvbSAnLi9JbXBsL0Rhc2hib2FyZEltcGwnO1xyXG5pbXBvcnQgeyBTaGVldCB9IGZyb20gJy4vU2hlZXQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZCBleHRlbmRzIFNoZWV0IGltcGxlbWVudHMgQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGFzaGJvYXJkSW1wbDogRGFzaGJvYXJkSW1wbCkge1xyXG4gICAgc3VwZXIoX2Rhc2hib2FyZEltcGwpO1xyXG4gICAgX2Rhc2hib2FyZEltcGwuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXRzKCk6IEFycmF5PENvbnRyYWN0LldvcmtzaGVldD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rhc2hib2FyZEltcGwud29ya3NoZWV0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb2JqZWN0cygpOiBBcnJheTxDb250cmFjdC5EYXNoYm9hcmRPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmRJbXBsLm9iamVjdHM7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRGFzaGJvYXJkLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEV2ZW50TGlzdGVuZXJNYW5hZ2VyIH0gZnJvbSAnLi9FdmVudExpc3RlbmVyTWFuYWdlcic7XHJcblxyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL0ltcGwvU2hlZXRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTaGVldCBleHRlbmRzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgQ29udHJhY3QuU2hlZXQge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zaGVldEltcGw6IFNoZWV0SW1wbCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaGVldFR5cGUoKTogQ29udHJhY3QuU2hlZXRUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwuc2hlZXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaXplKCk6IENvbnRyYWN0LlNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5zaXplO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lOiBzdHJpbmcpOiBQcm9taXNlPENvbnRyYWN0LlBhcmFtZXRlciB8IHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5maW5kUGFyYW1ldGVyQXN5bmMocGFyYW1ldGVyTmFtZSwgdGhpcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyc0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuUGFyYW1ldGVyPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW1wbC5nZXRQYXJhbWV0ZXJzQXN5bmModGhpcyk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2hlZXQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlciB9IGZyb20gJy4vU2luZ2xlRXZlbnRNYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzcyBkZXNpZ25lZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBoYW5kbGVycyBmcm9tIGEgdXNlci4gT25seSB0aG9zZSBldmVudHNcclxuICogd2hpY2ggYXJlIGFkZGVkIHZpYSBBZGROZXdFdmVudFR5cGUgd2lsbCBiZSBzdXBwb3J0ZWQgYnkgdGhpcyBpbnN0YW5jZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgIENvbnRyYWN0LkV2ZW50TGlzdGVuZXJNYW5hZ2VyIHtcclxuICBwcml2YXRlIHN0YXRpYyBVTlNVUFBPUlRFRF9FVkVOVDogc3RyaW5nID0gJ1Vuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiAlMSc7XHJcbiAgcHJpdmF0ZSBfZXZlbnRMaXN0ZW5lck1hbmFnZXJzOiB7IFt0YWJsZWF1RXZlbnRUeXBlOiBzdHJpbmddOiBTaW5nbGVFdmVudE1hbmFnZXI7IH07XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2VycyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXI6IENvbnRyYWN0LlRhYmxlYXVFdmVudEhhbmRsZXJGbik6IENvbnRyYWN0LlRhYmxlYXVFdmVudFVucmVnaXN0ZXJGbiB7XHJcbiAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoRXZlbnRMaXN0ZW5lck1hbmFnZXIuVU5TVVBQT1JURURfRVZFTlQsIFtldmVudFR5cGVdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50VHlwZV0uYWRkRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSwgaGFuZGxlcjogQ29udHJhY3QuVGFibGVhdUV2ZW50SGFuZGxlckZuKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoRXZlbnRMaXN0ZW5lck1hbmFnZXIuVU5TVVBQT1JURURfRVZFTlQsIFtldmVudFR5cGVdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50VHlwZV0ucmVtb3ZlRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhZGROZXdFdmVudFR5cGUoZXZlbnRNYW5hZ2VyOiBTaW5nbGVFdmVudE1hbmFnZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vyc1tldmVudE1hbmFnZXIuZXZlbnRUeXBlXSA9IGV2ZW50TWFuYWdlcjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudExpc3RlbmVyTWFuYWdlci50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJy4vRW51bUNvbnZlcnRlcic7XHJcbmV4cG9ydCB7IFBhcmFtIH0gZnJvbSAnLi9QYXJhbSc7XHJcbmV4cG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICcuL1RhYmxlYXVFeGNlcHRpb24nO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvQXBpVXRpbHMudHNcbiAqKi8iLCJpbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnLi9UYWJsZWF1RXhjZXB0aW9uJztcclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgY29udmVydHMgZnJvbSBhIHNvdXJjZSBlbnVtIHZhbHVlIHRvIGRlc3RpbmF0aW9uIGVudW1cclxuICogdmFsdWUgZ2l2ZW4gYSBtYXBwaW5nIGZyb20gc291cmNlIHRvIGRlc3RpbmF0aW9uIHdoZW4gY29uc3RydWN0ZWQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW51bUNvbnZlcnRlcjxUU291cmNlVHlwZSBleHRlbmRzIHN0cmluZywgVERlc3RpbmF0aW9uVHlwZT4ge1xyXG4gIHByaXZhdGUgc3RhdGljIE1BUFBJTkdfTk9UX0ZPVU5EOiBzdHJpbmcgPSAnTWFwcGluZyBub3QgZm91bmQgZm9yICUxJztcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9tYXBwaW5nczogeyBbZW51bVZhbDogc3RyaW5nXTogVERlc3RpbmF0aW9uVHlwZTsgfSxcclxuICAgIHByaXZhdGUgX2RlZmF1bHRWYWw/OiBURGVzdGluYXRpb25UeXBlKSB7IH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnQoZW51bVZhbDogVFNvdXJjZVR5cGUsIHRocm93SWZNaXNzaW5nPzogYm9vbGVhbik6IFREZXN0aW5hdGlvblR5cGUge1xyXG4gICAgaWYgKHRoaXMuX21hcHBpbmdzLmhhc093blByb3BlcnR5KGVudW1WYWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1tlbnVtVmFsIGFzIHN0cmluZ107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2RlZmF1bHRWYWwgIT09IHVuZGVmaW5lZCAmJiAhdGhyb3dJZk1pc3NpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihFbnVtQ29udmVydGVyLk1BUFBJTkdfTk9UX0ZPVU5ELCBbZW51bVZhbF0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvRW51bUNvbnZlcnRlci50c1xuICoqLyIsImV4cG9ydCBjbGFzcyBUYWJsZWF1RXhjZXB0aW9uIHtcclxuICBwdWJsaWMgc3RhdGljIEFQSV9OT1RfSU1QTEVNRU5URUQ6IHN0cmluZyA9ICclMSBBUEkgbm90IHlldCBpbXBsZW1lbnRlZC4nO1xyXG4gIHB1YmxpYyBzdGF0aWMgVU5ERUZJTkVEOiBzdHJpbmcgPSAnJTEgaXMgdW5kZWZpbmVkLic7XHJcbiAgcHVibGljIHN0YXRpYyBJTlZBTElEX1BBUkFNRVRFUl9WQUxVRTogc3RyaW5nID0gJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlcjogJTEuICUyJztcclxuICBwdWJsaWMgc3RhdGljIElOVkFMSURfUEFSQU1FVEVSX1RZUEU6IHN0cmluZyA9ICdJbnZhbGlkIHR5cGUgZm9yIHBhcmFtZXRlcjogJTEuICUyJztcclxuICBwdWJsaWMgc3RhdGljIE1JU1NJTkdfUEFSQU1FVEVSOiBzdHJpbmcgPSAnTWlzc2luZyBQYXJhbWV0ZXI6ICUxLic7XHJcbiAgcHVibGljIHN0YXRpYyBVTktOT1dOX0VSUk9SOiBzdHJpbmcgPSAnVW5rbm93biBlcnJvci4nO1xyXG4gIHB1YmxpYyBzdGF0aWMgSU5URVJOQUxfRVJST1I6IHN0cmluZyA9ICdJbnRlcm5hbCBlcnJvcjogJTEuJztcclxuICBwdWJsaWMgc3RhdGljIElOVkFMSUQ6IHN0cmluZyA9ICdJbnZhbGlkOiAlMS4gJTInO1xyXG4gIHB1YmxpYyBzdGF0aWMgSVNfTlVMTDogc3RyaW5nID0gJyUxIGlzIG51bGwuJztcclxuXHJcbiAgcHVibGljIHN0YXRpYyBhcGlOb3RJbXBsZW1lbnRlZCAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uQVBJX05PVF9JTVBMRU1FTlRFRCwgcGFyYW1zKTtcclxuICAgIHJldHVybiBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzVW5kZWZpbmVkIChwYXJhbXM6IEFycmF5PHN0cmluZz4pOiBFcnJvciB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gVGFibGVhdUV4Y2VwdGlvbi5mb3JtYXQoVGFibGVhdUV4Y2VwdGlvbi5VTkRFRklORUQsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc051bGwgKHBhcmFtczogQXJyYXk8c3RyaW5nPik6IEVycm9yIHtcclxuICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBUYWJsZWF1RXhjZXB0aW9uLmZvcm1hdChUYWJsZWF1RXhjZXB0aW9uLklTX05VTEwsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpbnZhbGlkUGFyYW1WYWx1ZSAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpbnZhbGlkUGFyYW1UeXBlIChwYXJhbXM6IEFycmF5PHN0cmluZz4pOiBFcnJvciB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gVGFibGVhdUV4Y2VwdGlvbi5mb3JtYXQoVGFibGVhdUV4Y2VwdGlvbi5JTlZBTElEX1BBUkFNRVRFUl9UWVBFLCBwYXJhbXMpO1xyXG4gICAgcmV0dXJuIG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbWlzc2luZ1BhcmFtZXRlciAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uTUlTU0lOR19QQVJBTUVURVIsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpbnZhbGlkIChwYXJhbXM6IEFycmF5PHN0cmluZz4pOiBFcnJvciB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gVGFibGVhdUV4Y2VwdGlvbi5mb3JtYXQoVGFibGVhdUV4Y2VwdGlvbi5JTlZBTElELCBwYXJhbXMpO1xyXG4gICAgcmV0dXJuIG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaW50ZXJuYWxFcnJvciAocGFyYW1zOiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFRhYmxlYXVFeGNlcHRpb24uZm9ybWF0KFRhYmxlYXVFeGNlcHRpb24uSU5URVJOQUxfRVJST1IsIHBhcmFtcyk7XHJcbiAgICByZXR1cm4gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBlcnJvciAobWVzc2FnZTogc3RyaW5nLCBwYXJhbXM/OiBBcnJheTxzdHJpbmc+KTogRXJyb3Ige1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nO1xyXG4gICAgaWYgKHBhcmFtcykge1xyXG4gICAgICByZXN1bHQgPSBUYWJsZWF1RXhjZXB0aW9uLmZvcm1hdChtZXNzYWdlLCBwYXJhbXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gbWVzc2FnZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRXJyb3IocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0IChtZXNzYWdlOiBzdHJpbmcsIHBhcmFtczogQXJyYXk8c3RyaW5nPik6IHN0cmluZyB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgbWF0Y2g6IHN0cmluZyA9ICclJyArIChpICsgMSk7XHJcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UobmV3IFJlZ0V4cChtYXRjaCwgJ2cnKSwgcGFyYW1zW2ldKTtcclxuICAgIH1cclxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UobmV3IFJlZ0V4cCgnJVswLTldKycsICdnJyksICcnKTtcclxuICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnRyaW0oKTtcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvVGFibGVhdUV4Y2VwdGlvbi50c1xuICoqLyIsImltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICcuL1RhYmxlYXVFeGNlcHRpb24nO1xyXG5leHBvcnQgY2xhc3MgUGFyYW0ge1xyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWVzIHRoYXQgYW4gaW5jb21pbmcgcGFyYW1ldGVyIGlzICd0cnV0aHknIGFuZCB0aHJvd3NcclxuICAgKiBhbiBlcnJvciBpZiBpdCdzIG5vdC4gVGhpcyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSB2YWx1ZVxyXG4gICAqIGlzIG51bGwsIHVuZGVmaW5lZCwgTmFOLCB0aGUgZW1wdHkgc3RyaW5nLCAwLCBvciBmYWxzZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcclxuICAgKi9cclxuICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5VmFsdWUoYXJndW1lbnRWYWx1ZTogYW55LCBhcmd1bWVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCFhcmd1bWVudFZhbHVlKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZFBhcmFtVmFsdWUoW2FyZ3VtZW50TmFtZV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhhdCBhIHN0cmluZyBpcyB2YWxpZC4gIFRocm93cyBhbiBlcnJvciBpZiB0aGUgc3RyaW5nIGlzXHJcbiAgICogbnVsbCwgdW5kZWZpbmVkLCBvciBOYU4uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZSB2YWx1ZSB0byB2ZXJpZnlcclxuICAgKiBAcGFyYW0gYXJndW1lbnROYW1lIG5hbWUgb2YgYXJndW1lbnQgdG8gdmVyaWZ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlTdHJpbmcoYXJndW1lbnRWYWx1ZTogc3RyaW5nLCBhcmd1bWVudE5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKGFyZ3VtZW50VmFsdWUgPT09IG51bGwgfHwgYXJndW1lbnRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZFBhcmFtVmFsdWUoW2FyZ3VtZW50TmFtZV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHZhbHVlIGlzIHBhcnQgb2YgdGhlIEVudW1cclxuICAgKlxyXG4gICAqIFN0cmluZyBlbnVtcyBhcmUge3N0cmluZyA6IHN0cmluZ30gZGljdGlvbmFyaWVzIHdoaWNoIGFyZSBub3QgcmV2ZXJzZSBtYXBwYWJsZVxyXG4gICAqIFRoaXMgaXMgYW4gdWdseSB3b3JrYXJvdW5kXHJcbiAgICogQHBhcmFtIHZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBlbnVtVHlwZSBlbnVtIHRvIHZlcmlmeSBhZ2FpbnN0XHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRW51bVZhbHVlPEVudW1UeXBlPih2YWx1ZTogRW51bVR5cGUsIGVudW1UeXBlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZm9yRWFjaCgoZW51bUtleSkgPT4ge1xyXG4gICAgICBpZiAoZW51bVR5cGVbZW51bUtleV0gPT09IHZhbHVlLnRvU3RyaW5nKCkpIHtcclxuICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogc2VyaWFsaXplcyB0aGUgZGF0ZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgc2VydmVyIGV4cGVjdHMuXHJcbiAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gc2VyaWFsaXplXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB5ZWFyOiBudW1iZXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aDogbnVtYmVyID0gZGF0ZS5nZXRVVENNb250aCgpICsgMTtcclxuICAgIGNvbnN0IGRheTogbnVtYmVyID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBoaDogbnVtYmVyID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgY29uc3QgbW06IG51bWJlciA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgY29uc3Qgc2VjOiBudW1iZXIgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyAnICcgKyBoaCArICc6JyArIG1tICsgJzonICsgc2VjO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVCb29sZWFuRm9yUGxhdGZvcm0oYm9vbDogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYm9vbCA/ICd0cnVlJyA6ICdmYWxzZSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtKG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBudW0udG9TdHJpbmcoMTApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHBhcmFtcyBtaW4gYW5kIG1heCBmb3IgYXBwbHlpbmcgcmFuZ2UgZmlsdGVyXHJcbiAgICogQHBhcmFtIG1pbiByYW5nZSBtaW5cclxuICAgKiBAcGFyYW0gbWF4IHJhbmdlIG1heFxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5UmFuZ2VQYXJhbVR5cGUobWluOiBhbnksIG1heDogYW55KTogdm9pZCB7XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuICAgIGlmICghbWluICYmICFtYXgpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pbnZhbGlkUGFyYW1WYWx1ZShbJ1JhbmdlIHBhcmFtZXRlcnMnLCAnQXQgbGVhc3Qgb25lIG9mIG1pbiBvciBtYXggaXMgcmVxdWlyZWQuJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1pbikgJiYgIVBhcmFtLmlzVHlwZURhdGUobWluKSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVR5cGUoWydSYW5nZSBwYXJhbWV0ZXJzJywgJ09ubHkgRGF0ZSBhbmQgbnVtYmVyIGFyZSBhbGxvd2VkIGZvciBwYXJhbWV0ZXIgbWluLiddKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVBhcmFtLmlzVHlwZU51bWJlcihtYXgpICYmICFQYXJhbS5pc1R5cGVEYXRlKG1heCkpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pbnZhbGlkUGFyYW1UeXBlKFsnUmFuZ2UgcGFyYW1ldGVycycsICdPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1heC4nXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZihtaW4pICE9PSB0eXBlb2YobWF4KSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVR5cGUoWydSYW5nZSBwYXJhbWV0ZXJzJywgJ1BhcmFtZXRlcnMgbWluIGFuZCBtYXggc2hvdWxkIGJlIG9mIHRoZSBzYW1lIHR5cGUuJ10pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIGlucHV0IGlzIGEgbnVtYmVyXHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVOdW1iZXIoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZihpbnB1dCkgPT09ICdudW1iZXInIHx8IGlucHV0IGluc3RhbmNlb2YgTnVtYmVyO1xyXG4gIH1cclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGUgaW5wdXQgaXMgYSBEYXRlXHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVEYXRlKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIERhdGU7XHJcbiAgfVxyXG4gIC8qIHRzbGludDplbmFibGU6bm8tYW55ICovXHJcblxyXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwdWJsaWMgc3RhdGljIGlzVHlwZVN0cmluZyhpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mKGlucHV0KSA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XHJcbiAgfVxyXG5cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVCb29sKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YoaW5wdXQpID09PSAnYm9vbGVhbicgfHwgaW5wdXQgaW5zdGFuY2VvZiBCb29sZWFuO1xyXG4gIH1cclxuXHJcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgc2VyaWFsaXplUGFyYW10ZXJWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChQYXJhbS5pc1R5cGVOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBQYXJhbS5zZXJpYWxpemVOdW1iZXJGb3JQbGF0Zm9ybSh2YWx1ZSBhcyBudW1iZXIpO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVEYXRlKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtKHZhbHVlIGFzIERhdGUpO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVCb29sKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gUGFyYW0uc2VyaWFsaXplQm9vbGVhbkZvclBsYXRmb3JtKHZhbHVlIGFzIGJvb2xlYW4pO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZFBhcmFtVmFsdWUoWyd2YWx1ZSddKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL1BhcmFtLnRzXG4gKiovIiwiaW1wb3J0IHsgVmVyc2lvbk51bWJlciBhcyBWZXJzaW9uTnVtYmVyQ29udHJhY3QgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGV4dGVuc2lvbnMgbGlicmFyeVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZlcnNpb25OdW1iZXIgaW1wbGVtZW50cyBWZXJzaW9uTnVtYmVyQ29udHJhY3Qge1xyXG5cclxuICAvLyBVc2luZyBzb21lIHdlYnBhY2sgdHJpY2tzLCB3ZSBjYW4gaW5qZWN0IHRoaXMgdmVyc2lvbiBpbnRvIG91ciBjb2RlIChraW5kYSBsaWtlIGMrKyBwcmVwcm9jZXNzb3Igc3R1ZmYpXHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBWZXJzaW9uTnVtYmVyO1xyXG4gIHByaXZhdGUgc3RhdGljIElOVkFMSURfVkVSU0lPTl9OVU1CRVI6IHN0cmluZyA9ICdJbnZhbGlkIHZlcnNpb24gbnVtYmVyOiAnO1xyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIHZlcnNpb24gbnVtYmVyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IEluc3RhbmNlKCk6IFZlcnNpb25OdW1iZXIge1xyXG4gICAgcmV0dXJuIFZlcnNpb25OdW1iZXIuX2luc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBTZXRWZXJzaW9uTnVtYmVyKG51bVN0cmluZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBWZXJzaW9uTnVtYmVyLl9pbnN0YW5jZSA9IG5ldyBWZXJzaW9uTnVtYmVyKG51bVN0cmluZyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgbWFqb3I6IG51bWJlcjtcclxuICBwdWJsaWMgcmVhZG9ubHkgbWlub3I6IG51bWJlcjtcclxuICBwdWJsaWMgcmVhZG9ubHkgZml4OiBudW1iZXI7XHJcblxyXG4gIC8vIHByaXZhdGUgY29uc3RydWN0b3Igc28gZXZlcnlvbmUgdXNlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2ZXJzaW9uU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnRzID0gdmVyc2lvblN0cmluZy5zcGxpdCgnLicpLm1hcChwID0+IHBhcnNlSW50KHAsIDEwKSk7XHJcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoVmVyc2lvbk51bWJlci5JTlZBTElEX1ZFUlNJT05fTlVNQkVSLCBbdmVyc2lvblN0cmluZ10pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWFqb3IgPSBwYXJ0c1swXTtcclxuICAgIHRoaXMubWlub3IgPSBwYXJ0c1sxXTtcclxuICAgIHRoaXMuZml4ID0gcGFydHNbMl07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5tYWpvcn0uJHt0aGlzLm1pbm9yfS4ke3RoaXMuZml4fWA7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvVmVyc2lvbk51bWJlci50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IERhc2hib2FyZE9iamVjdFR5cGUsIEV4dGVuc2lvbkRhc2hib2FyZEluZm8sIFNoZWV0UGF0aCwgVmlzdWFsSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGFzaGJvYXJkT2JqZWN0IH0gZnJvbSAnLi4vRGFzaGJvYXJkT2JqZWN0JztcclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIH0gZnJvbSAnLi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyc7XHJcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vUG9pbnQnO1xyXG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vU2l6ZSc7XHJcbmltcG9ydCB7IFdvcmtzaGVldCB9IGZyb20gJy4uL1dvcmtzaGVldCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL1NoZWV0SW1wbCc7XHJcbmltcG9ydCB7IFNoZWV0SW5mb0ltcGwgfSBmcm9tICcuL1NoZWV0SW5mb0ltcGwnO1xyXG5pbXBvcnQgeyBXb3Jrc2hlZXRJbXBsIH0gZnJvbSAnLi9Xb3Jrc2hlZXRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRJbXBsIGV4dGVuZHMgU2hlZXRJbXBsIHtcclxuICBwcml2YXRlIF93b3Jrc2hlZXRzOiBBcnJheTxDb250cmFjdC5Xb3Jrc2hlZXQ+O1xyXG4gIHByaXZhdGUgX29iamVjdHM6IEFycmF5PENvbnRyYWN0LkRhc2hib2FyZE9iamVjdD47XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbmZvOiBFeHRlbnNpb25EYXNoYm9hcmRJbmZvLCBwcml2YXRlIF9zaGVldFBhdGg6IFNoZWV0UGF0aCkge1xyXG4gICAgc3VwZXIobmV3IFNoZWV0SW5mb0ltcGwoX2luZm8ubmFtZSwgQ29udHJhY3QuU2hlZXRUeXBlLkRhc2hib2FyZCwgbmV3IFNpemUoX2luZm8uc2l6ZS5oLCBfaW5mby5zaXplLncpKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHdvcmtzaGVldHMoKTogQXJyYXk8Q29udHJhY3QuV29ya3NoZWV0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb2JqZWN0cygpOiBBcnJheTxDb250cmFjdC5EYXNoYm9hcmRPYmplY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9vYmplY3RzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRpYWxpemVXaXRoUHVibGljSW50ZXJmYWNlcyhkYXNoYm9hcmQ6IENvbnRyYWN0LkRhc2hib2FyZCk6IHZvaWQge1xyXG4gICAgdGhpcy5fd29ya3NoZWV0cyA9IG5ldyBBcnJheTxXb3Jrc2hlZXQ+KCk7XHJcbiAgICB0aGlzLl9vYmplY3RzID0gbmV3IEFycmF5PENvbnRyYWN0LkRhc2hib2FyZE9iamVjdD4oKTtcclxuXHJcbiAgICAvLyBQcm9jZXNzIGFsbCB0aGUgem9uZXMgd2hpY2ggYXJlIGNvbnRhaW5lZCBpbiB0aGlzIGRhc2hib2FyZFxyXG4gICAgZm9yIChjb25zdCB6b25lIG9mIHRoaXMuX2luZm8uem9uZXMpIHtcclxuICAgICAgbGV0IHdvcmtzaGVldDogV29ya3NoZWV0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG5cclxuICAgICAgY29uc3Qgem9uZVNpemUgPSBuZXcgU2l6ZSh6b25lLmhlaWdodCwgem9uZS53aWR0aCk7XHJcblxyXG4gICAgICBpZiAoem9uZS56b25lVHlwZSA9PT0gRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXQpIHtcclxuICAgICAgICBjb25zdCBzaGVldEluZm8gPSBuZXcgU2hlZXRJbmZvSW1wbCh6b25lLm5hbWUsIENvbnRyYWN0LlNoZWV0VHlwZS5Xb3Jrc2hlZXQsIHpvbmVTaXplKTtcclxuICAgICAgICBjb25zdCB2aXpJZDogVmlzdWFsSWQgPSB7XHJcbiAgICAgICAgICB3b3Jrc2hlZXQ6IHpvbmUubmFtZSxcclxuICAgICAgICAgIGRhc2hib2FyZDogdGhpcy5faW5mby5uYW1lLFxyXG4gICAgICAgICAgc3Rvcnlib2FyZDogdGhpcy5fc2hlZXRQYXRoLnN0b3J5Ym9hcmQsXHJcbiAgICAgICAgICBmbGlwYm9hcmRab25lSUQ6IHRoaXMuX3NoZWV0UGF0aC5mbGlwYm9hcmRab25lSUQsXHJcbiAgICAgICAgICBzdG9yeVBvaW50SUQ6IHRoaXMuX3NoZWV0UGF0aC5zdG9yeVBvaW50SURcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCB3b3Jrc2hlZXRJbXBsID0gbmV3IFdvcmtzaGVldEltcGwoc2hlZXRJbmZvLCB2aXpJZCwgZGFzaGJvYXJkKTtcclxuICAgICAgICB3b3Jrc2hlZXQgPSBuZXcgV29ya3NoZWV0KHdvcmtzaGVldEltcGwpO1xyXG4gICAgICAgIHRoaXMuX3dvcmtzaGVldHMucHVzaCh3b3Jrc2hlZXQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB6b25lUG9pbnQgPSBuZXcgUG9pbnQoem9uZS54LCB6b25lLnkpO1xyXG5cclxuICAgICAgY29uc3QgZGFzaGJvYXJkT2JqZWN0ID0gbmV3IERhc2hib2FyZE9iamVjdChcclxuICAgICAgICBkYXNoYm9hcmQsXHJcbiAgICAgICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhc2hib2FyZE9iamVjdFR5cGUuY29udmVydCh6b25lLnpvbmVUeXBlKSxcclxuICAgICAgICB6b25lUG9pbnQsXHJcbiAgICAgICAgem9uZVNpemUsXHJcbiAgICAgICAgd29ya3NoZWV0XHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLl9vYmplY3RzLnB1c2goZGFzaGJvYXJkT2JqZWN0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL0Rhc2hib2FyZEltcGwudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vQW5hbHl0aWNzSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRGF0YVNvdXJjZUludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0RhdGFUYWJsZUludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0VuY29kaW5nSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0V2ZW50SW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRmlsdGVySW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VsZWN0aW9uSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vUGFyYW1ldGVySW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VsZWN0aW9uSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2hlZXRJbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB7IEV4dGVuc2lvbnMgfSBmcm9tICcuL05hbWVzcGFjZXMvRXh0ZW5zaW9ucyc7XHJcbmV4cG9ydCB7IERhc2hib2FyZENvbnRlbnQgfSBmcm9tICcuL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudCc7XHJcbmV4cG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi9OYW1lc3BhY2VzL0Vudmlyb25tZW50JztcclxuZXhwb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuL05hbWVzcGFjZXMvU2V0dGluZ3MnO1xyXG5leHBvcnQgeyBVSSB9IGZyb20gJy4vTmFtZXNwYWNlcy9VSSc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9BcGlFeHRlcm5hbENvbnRyYWN0LnRzXG4gKiovIiwiLy8gQWxsIGVudW0gdmFsdWVzIG1hZGUgYXZhaWxhYmxlIHRvIEV4dGVuc2lvbnMgZGV2ZWxvcGVycy5cclxuLy8gRW51bXMgc2hvdWxkIGJlIGtlcHQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLlxyXG5cclxuLyoqXHJcbiAqIFRoZSBjb250ZXh0IGluIHdoaWNoIHRoZSBFeHRlbnNpb25zIGlzIGN1cnJlbnRseSBydW5uaW5nLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRXh0ZW5zaW9uQ29udGV4dCB7XHJcbiAgRGVza3RvcCA9ICdkZXNrdG9wJyxcclxuICBTZXJ2ZXIgPSAnc2VydmVyJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIG1vZGUgaW4gd2hpY2ggdGhlIEV4dGVuc2lvbnMgaXMgY3VycmVudGx5IHJ1bm5pbmcuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBFeHRlbnNpb25Nb2RlIHtcclxuICBBdXRob3JpbmcgPSAnYXV0aG9yaW5nJyxcclxuICBWaWV3aW5nID0gJ3ZpZXdpbmcnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEFuYWx5dGljc09iamVjdFR5cGUge1xyXG4gIENsdXN0ZXIgPSAnY2x1c3RlcicsXHJcbiAgRm9yZWNhc3QgPSAnZm9yZWNhc3QnLFxyXG4gIFRyZW5kTGluZSA9ICd0cmVuZC1saW5lJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDb2x1bW5UeXBlIHtcclxuICBEaXNjcmV0ZSA9ICdkaXNjcmV0ZScsXHJcbiAgQ29udGludW91cyA9ICdjb250aW51b3VzJ1xyXG59XHJcblxyXG4vKipcclxuICogV2hhdCB0aGUgb2JqZWN0IHJlcHJlc2VudHMgaW4gYSBkYXNoYm9hcmQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRPYmplY3RUeXBlIHtcclxuICBCbGFuayA9ICdibGFuaycsXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCcsXHJcbiAgUXVpY2tGaWx0ZXIgPSAncXVpY2stZmlsdGVyJyxcclxuICBQYXJhbWV0ZXJDb250cm9sID0gJ3BhcmFtZXRlci1jb250cm9sJyxcclxuICBQYWdlRmlsdGVyID0gJ3BhZ2UtZmlsdGVyJyxcclxuICBMZWdlbmQgPSAnbGVnZW5kJyxcclxuICBUaXRsZSA9ICd0aXRsZScsXHJcbiAgVGV4dCA9ICd0ZXh0JyxcclxuICBJbWFnZSA9ICdpbWFnZScsXHJcbiAgV2ViUGFnZSA9ICd3ZWItcGFnZScsXHJcbiAgRXh0ZW5zaW9uID0gJ2V4dGVuc2lvbidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YSBhIHZhbHVlIGNhbiBoYXZlXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEYXRhVHlwZSB7XHJcbiAgU3RyaW5nID0gJ3N0cmluZycsXHJcbiAgSW50ID0gJ2ludCcsXHJcbiAgRmxvYXQgPSAnZmxvYXQnLFxyXG4gIEJvb2wgPSAnYm9vbCcsXHJcbiAgRGF0ZSA9ICdkYXRlJyxcclxuICBEYXRlVGltZSA9ICdkYXRlLXRpbWUnLFxyXG4gIFNwYXRpYWwgPSAnc3BhdGlhbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIFZhbGlkIGRhdGUgcmFuZ2VzIGZvciBhIHJlbGF0aXZlIGRhdGUgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGF0ZVJhbmdlVHlwZSB7XHJcbiAgTGFzdCA9ICdsYXN0JyxcclxuICBMYXN0TiA9ICdsYXN0LW4nLFxyXG4gIE5leHQgPSAnbmV4dCcsXHJcbiAgTmV4dE4gPSAnbmV4dC1uJyxcclxuICBDdXJyZW50ID0gJ2N1cnJlbnQnLFxyXG4gIFRvRGF0ZSA9ICd0by1kYXRlJ1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZXMgb2YgZGlhbG9nIGV2ZW50IGZvciBldmVudCBsaXN0ZW5pbmcgYmV0d2VlbiBhIHBhcmVudCBFeHRlbnNpb25zIGFuZCBhIHBvcHVwIGRpYWxvZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIERpYWxvZ0V2ZW50VHlwZSB7XHJcbiAgRGlhbG9nTWVzc2FnZSA9ICdkaWFsb2ctbWVzc2FnZScsXHJcbiAgRGlhbG9nRXZlbnQgPSAnZGlhbG9nLWV2ZW50J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbmNvZGluZ1R5cGUge1xyXG4gIENvbHVtbiA9ICdjb2x1bW4nLFxyXG4gIFJvdyA9ICdyb3cnLFxyXG4gIFBhZ2UgPSAncGFnZScsXHJcbiAgRmlsdGVyID0gJ2ZpbHRlcicsXHJcbiAgTWFya3NUeXBlID0gJ21hcmtzLXR5cGUnLFxyXG4gIE1lYXN1cmVWYWx1ZXMgPSAnbWVhc3VyZS12YWx1ZXMnLFxyXG4gIENvbG9yID0gJ2NvbG9yJyxcclxuICBTaXplID0gJ3NpemUnLFxyXG4gIExhYmVsID0gJ2xhYmVsJyxcclxuICBEZXRhaWwgPSAnZGV0YWlsJyxcclxuICBUb29sdGlwID0gJ3Rvb2x0aXAnLFxyXG4gIFNoYXBlID0gJ3NoYXBlJyxcclxuICBQYXRoID0gJ3BhdGgnLFxyXG4gIEFuZ2xlID0gJ2FuZ2xlJ1xyXG59XHJcblxyXG4vKipcclxuICogQWxsIGVycm9yIGNvZGVzIHVzZWQgYnkgdGhlIEV4dGVuc2lvbnMgQVBJLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRXJyb3JDb2RlcyB7XHJcbiAgLyoqXHJcbiAgICogT25seSBvbmUgZGlhbG9nIGNhbiBiZSBvcGVuZWQgYXQgdGltZSB3aXRoIHRoZSBVSSBuYW1lc3BhY2UgZnVuY3Rpb25hbGl0eS5cclxuICAgKi9cclxuICBEaWFsb2dBbHJlYWR5T3BlbiA9ICdkaWFsb2ctYWxyZWFkeS1vcGVuJyxcclxuICAvKipcclxuICAgKiBUaGUgb3BlbiBkaWFsb2cgd2FzIGNsb3NlZCBieSB0aGUgdXNlci5cclxuICAgKi9cclxuICBEaWFsb2dDbG9zZWRCeVVzZXIgPSAnZGlhbG9nLWNsb3NlZC1ieS11c2VyJyxcclxuICAvKipcclxuICAgKiBBbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIHBlcmZvcm0gYSBmaWx0ZXIgb3BlcmF0aW9uLlxyXG4gICAqL1xyXG4gIEZpbHRlckNhbm5vdEJlUGVyZm9ybWVkID0gJ2ZpbHRlci1jYW5ub3QtYmUtcGVyZm9ybWVkJyxcclxuICAvKipcclxuICAgKiBBbiBlcnJvciBvY2N1cnJlZCB3aXRoaW4gdGhlIFRhYmxlYXUgRXh0ZW5zaW9ucyBBUEkuIENvbnRhY3QgVGFibGVhdSBTdXBwb3J0LlxyXG4gICAqL1xyXG4gIEludGVybmFsRXJyb3IgPSAnaW50ZXJuYWwtZXJyb3InLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgYWdncmVnYXRpb24gd2FzIHNwZWNpZmllZCBmb3IgdGhlIGZpbHRlciwgc3VjaCBhcyBzZXR0aW5nIGEgcmFuZ2UgZmlsdGVyIHRvIFwiU1VNKFNhbGVzKVwiIGluc3RlYWQgb2YgXCJTYWxlc1wiLlxyXG4gICAqL1xyXG4gIEludmFsaWRBZ2dyZWdhdGlvbkZpZWxkTmFtZSA9ICdpbnZhbGlkLWFnZ3JlZ2F0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgZGlhbG9nIG11c3QgZmlyc3QgbGF1bmNoIHRvLCBhbmQgc2VuZCBtZXNzYWdlcyBmcm9tLCB0aGUgc2FtZSBkb21haW4gYXMgdGhlIHBhcmVudCBFeHRlbnNpb25zLlxyXG4gICAqL1xyXG4gIEludmFsaWREb21haW5EaWFsb2cgPSAnaW52YWxpZC1kaWFsb2ctZG9tYWluJyxcclxuICAvKipcclxuICAgKiBBbiBpbnZhbGlkIGRhdGUgd2FzIHNwZWNpZmllZCBpbiBhIG1ldGhvZCB0aGF0IHJlcXVpcmVkIGEgZGF0ZSBwYXJhbWV0ZXIuXHJcbiAgICovXHJcbiAgSW52YWxpZERhdGVQYXJhbWV0ZXIgPSAnaW52YWxpZC1kYXRlLXBhcmFtZXRlcicsXHJcbiAgLyoqXHJcbiAgICogQSBmaWx0ZXIgb3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgb24gYSBmaWVsZCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cclxuICAgKi9cclxuICBJbnZhbGlkRmlsdGVyRmllbGROYW1lID0gJ2ludmFsaWQtZmlsdGVyLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgZmlsdGVyIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyB0aGUgd3JvbmcgZGF0YSB0eXBlIG9yIGZvcm1hdC5cclxuICAgKi9cclxuICBJbnZhbGlkRmlsdGVyRmllbGRWYWx1ZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZC12YWx1ZScsXHJcbiAgLyoqXHJcbiAgICogQSBwYXJhbWV0ZXIgaXMgbm90IHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBvciBmb3JtYXQuIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBFcnJvci5tZXNzYWdlIGZpZWxkLlxyXG4gICAqL1xyXG4gIEludmFsaWRQYXJhbWV0ZXIgPSAnaW52YWxpZC1wYXJhbWV0ZXInLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgZGF0ZSB2YWx1ZSB3YXMgc3BlY2lmaWVkIGluIGEgU2hlZXQuc2VsZWN0TWFya3NBc3luYygpIGNhbGwgZm9yIGEgZGF0ZSBmaWVsZC5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uRGF0ZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi1kYXRlJyxcclxuICAvKipcclxuICAgKiBBIGZpZWxkIHdhcyBzcGVjaWZpZWQgaW4gYSBTaGVldC5zZWxlY3RNYXJrc0FzeW5jKCkgY2FsbCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtc2VsZWN0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgdmFsdWUgd2FzIHNwZWNpZmllZCBpbiBhIFNoZWV0LnNlbGVjdE1hcmtzQXN5bmMoKSBjYWxsLlxyXG4gICAqL1xyXG4gIEludmFsaWRTZWxlY3Rpb25WYWx1ZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi12YWx1ZScsXHJcbiAgLyoqXHJcbiAgICogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG5vdCBzcGVjaWZpZWQsIG51bGwsIG9yIGFuIGVtcHR5IHN0cmluZy9hcnJheS5cclxuICAgKi9cclxuICBOdWxsT3JFbXB0eVBhcmFtZXRlciA9ICdudWxsLW9yLWVtcHR5LXBhcmFtZXRlcicsXHJcbiAgLyoqXHJcbiAgICogQW4gdW5rbm93biBldmVudCBuYW1lIHdhcyBzcGVjaWZpZWQgaW4gdGhlIGNhbGwgdG8gVml6LmFkZEV2ZW50TGlzdGVuZXJvciBWaXoucmVtb3ZlRXZlbnRMaXN0ZW5lci5cclxuICAgKi9cclxuICBVbnN1cHBvcnRlZEV2ZW50TmFtZSA9ICd1bnN1cHBvcnRlZC1ldmVudC1uYW1lJyxcclxuICAvKipcclxuICAgKiBBIG1ldGhvZCB3YXMgdXNlZCBmb3IgYSB0eXBlIG9mIGRhdGFzb3VyY2UgdGhhdCBkb2Vzbid0IHN1cHBvcnQgdGhhdCBtZXRob2QgKHNlZSBnZXRBY3RpdmVUYWJsZXNBc3luYyBmb3IgYW4gZXhhbXBsZSlcclxuICAgKi9cclxuICBVbnN1cHBvcnRlZE1ldGhvZEZvckRhdGFTb3VyY2VUeXBlID0gJ3Vuc3VwcG9ydGVkLW1ldGhvZC1mb3ItZGF0YS1zb3VyY2UtdHlwZSdcclxufVxyXG5cclxuLyoqXHJcbiAqICBUeXBlIG9mIGFnZ3JlZ2F0aW9uIG9uIGEgZmllbGQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSB7XHJcbiAgU3VtID0gJ3N1bScsXHJcbiAgQXZnID0gJ2F2ZycsXHJcbiAgTWluID0gJ21pbicsXHJcbiAgTWF4ID0gJ21heCcsXHJcbiAgU3RkZXYgPSAnc3RkZXYnLFxyXG4gIFN0ZGV2cCA9ICdzdGRldnAnLFxyXG4gIFZhciA9ICd2YXInLFxyXG4gIFZhcnAgPSAndmFycCcsXHJcbiAgQ291bnQgPSAnY291bnQnLFxyXG4gIENvdW50ZCA9ICdjb3VudGQnLFxyXG4gIE1lZGlhbiA9ICdtZWRpYW4nLFxyXG4gIEF0dHIgPSAnYXR0cicsXHJcbiAgTm9uZSA9ICdub25lJyxcclxuICBZZWFyID0gJ3llYXInLFxyXG4gIFF0ciA9ICdxdHInLFxyXG4gIE1vbnRoID0gJ21vbnRoJyxcclxuICBEYXkgPSAnZGF5JyxcclxuICBIb3VyID0gJ2hvdXInLFxyXG4gIE1pbnV0ZSA9ICdtaW51dGUnLFxyXG4gIFNlY29uZCA9ICdzZWNvbmQnLFxyXG4gIFdlZWsgPSAnd2VlaycsXHJcbiAgV2Vla2RheSA9ICd3ZWVrZGF5JyxcclxuICBNb250aFllYXIgPSAnbW9udGgteWVhcicsXHJcbiAgTWR5ID0gJ21keScsXHJcbiAgRW5kID0gJ2VuZCcsXHJcbiAgVHJ1bmNZZWFyID0gJ3RydW5jLXllYXInLFxyXG4gIFRydW5jUXRyID0gJ3RydW5jLXF0cicsXHJcbiAgVHJ1bmNNb250aCA9ICd0cnVuYy1tb250aCcsXHJcbiAgVHJ1bmNXZWVrID0gJ3RydW5jLXdlZWsnLFxyXG4gIFRydW5jRGF5ID0gJ3RydW5jLWRheScsXHJcbiAgVHJ1bmNIb3VyID0gJ3RydW5jLWhvdXInLFxyXG4gIFRydW5jTWludXRlID0gJ3RydW5jLW1pbnV0ZScsXHJcbiAgVHJ1bmNTZWNvbmQgPSAndHJ1bmMtc2Vjb25kJyxcclxuICBRdWFydDEgPSAncXVhcnQxJyxcclxuICBRdWFydDMgPSAncXVhcnQzJyxcclxuICBTa2V3bmVzcyA9ICdza2V3bmVzcycsXHJcbiAgS3VydG9zaXMgPSAna3VydG9zaXMnLFxyXG4gIEluT3V0ID0gJ2luLW91dCcsXHJcbiAgVXNlciA9ICd1c2VyJ1xyXG59XHJcblxyXG4vKipcclxuICogUm9sZSBvZiBhIGZpZWxkLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmllbGRSb2xlVHlwZSB7XHJcbiAgRGltZW5zaW9uID0gJ2RpbWVuc2lvbicsXHJcbiAgTWVhc3VyZSA9ICdtZWFzdXJlJyxcclxuICBVbmtub3duID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBbiBlbnVtZXJhdGlvbiBvZiB0aGUgdmFsaWQgdHlwZXMgb2YgZmlsdGVycyB0aGF0IGNhbiBiZSBhcHBsaWVkLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyVHlwZSB7XHJcbiAgQ2F0ZWdvcmljYWwgPSAnY2F0ZWdvcmljYWwnLFxyXG4gIFJhbmdlID0gJ3JhbmdlJyxcclxuICBIaWVyYXJjaGljYWwgPSAnaGllcmFyY2hpY2FsJyxcclxuICBSZWxhdGl2ZURhdGUgPSAncmVsYXRpdmUtZGF0ZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkaWZmZXJlbnQgdXBkYXRlIHR5cGVzIGZvciBhcHBseWluZyBmaWx0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlclVwZGF0ZVR5cGUge1xyXG4gIEFkZCA9ICdhZGQnLFxyXG4gIEFsbCA9ICdhbGwnLFxyXG4gIFJlcGxhY2UgPSAncmVwbGFjZScsXHJcbiAgUmVtb3ZlID0gJ3JlbW92ZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkb21haW4gdHlwZSBmb3IgYSBmaWx0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlckRvbWFpblR5cGUge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBkb21haW4gdmFsdWVzIHRoYXQgYXJlIHJlbGV2YW50IHRvIHRoZSBzcGVjaWZpZWQgZmlsdGVyXHJcbiAgICogaS5lLiB0aGUgZG9tYWluIGlzIHJlc3RyaWN0ZWQgYnkgYSBwcmV2aW91cyBmaWx0ZXJcclxuICAgKi9cclxuICBSZWxldmFudCA9ICdyZWxldmFudCcsXHJcbiAgLyoqXHJcbiAgICogbGlzdCBvZiBhbGwgcG9zc2libGUgZG9tYWluIHZhbHVlcyBmcm9tIGRhdGFiYXNlXHJcbiAgICovXHJcbiAgRGF0YWJhc2UgPSAnZGF0YWJhc2UnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIHdoaWNoIHZhbHVlcyB0byBpbmNsdWRlIGZvciBmaWx0ZXJpbmdcclxuICogSW5kaWNhdGVzIHdoYXQgdG8gZG8gd2l0aCBudWxsIHZhbHVlcyBmb3IgYSBnaXZlbiBmaWx0ZXIgb3IgbWFyayBzZWxlY3Rpb24gY2FsbC5cclxuICovXHJcbmV4cG9ydCBlbnVtIEZpbHRlck51bGxPcHRpb24ge1xyXG4gIE51bGxWYWx1ZXMgPSAnbnVsbC12YWx1ZXMnLFxyXG4gIE5vbk51bGxWYWx1ZXMgPSAnbm9uLW51bGwtdmFsdWVzJyxcclxuICBBbGxWYWx1ZXMgPSAnYWxsLXZhbHVlcydcclxufVxyXG5cclxuLyoqXHJcbiAqIFR5cGUgb2YgbWFyayBmb3IgYSBnaXZlbiBtYXJrcyBjYXJkIGluIGEgdml6LlxyXG4gKi9cclxuZXhwb3J0IGVudW0gTWFya1R5cGUge1xyXG4gIEJhciA9ICdiYXInLFxyXG4gIExpbmUgPSAnbGluZScsXHJcbiAgQXJlYSA9ICdhcmVhJyxcclxuICBTcXVhcmUgPSAnc3F1YXJlJyxcclxuICBDaXJjbGUgPSAnY2lyY2xlJyxcclxuICBTaGFwZSA9ICdzaGFwZScsXHJcbiAgVGV4dCA9ICd0ZXh0JyxcclxuICBNYXAgPSAnbWFwJyxcclxuICBQaWUgPSAncGllJyxcclxuICBHYW50dEJhciA9ICdnYW50dC1iYXInLFxyXG4gIFBvbHlnb24gPSAncG9seWdvbidcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIGVudW1lcmF0aW9uIGRlc2NyaWJpbmcgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiBhbGxvd2FibGUgdmFsdWVzLlxyXG4gKiBUaGlzIGlzIHVzZWQgZm9yIHJlc3RyaWN0aW5nIHRoZSBkb21haW4gb2YgYSBwYXJhbWV0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIFBhcmFtZXRlclZhbHVlVHlwZSB7XHJcbiAgQWxsID0gJ2FsbCcsXHJcbiAgTGlzdCA9ICdsaXN0JyxcclxuICBSYW5nZSA9ICdyYW5nZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGUgcGVyaW9kIHVzZWQgaW4gZmlsdGVycyBhbmQgaW4gcGFyYW1ldGVycy5cclxuICovXHJcbmV4cG9ydCBlbnVtIFBlcmlvZFR5cGUge1xyXG4gIFllYXJzID0gJ3llYXJzJyxcclxuICBRdWFydGVycyA9ICdxdWFydGVycycsXHJcbiAgTW9udGhzID0gJ21vbnRocycsXHJcbiAgV2Vla3MgPSAnd2Vla3MnLFxyXG4gIERheXMgPSAnZGF5cycsXHJcbiAgSG91cnMgPSAnaG91cnMnLFxyXG4gIE1pbnV0ZXMgPSAnbWludXRlcycsXHJcbiAgU2Vjb25kcyA9ICdzZWNvbmRzJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBRdWlja1RhYmxlQ2FsY1R5cGUge1xyXG4gIFJ1bm5pbmdUb3RhbCA9ICdydW5uaW5nLXRvdGFsJyxcclxuICBEaWZmZXJlbmNlID0gJ2RpZmZlcmVuY2UnLFxyXG4gIFBlcmNlbnREaWZmZXJlbmNlID0gJ3BlcmNlbnQtZGlmZmVyZW5jZScsXHJcbiAgUGVyY2VudE9mVG90YWwgPSAncGVyY2VudC1vZi10b3RhbCcsXHJcbiAgUmFuayA9ICdyYW5rJyxcclxuICBQZXJjZW50aWxlID0gJ3BlcmNlbnRpbGUnLFxyXG4gIE1vdmluZ0F2ZXJhZ2UgPSAnbW92aW5nLWF2ZXJhZ2UnLFxyXG4gIFlURFRvdGFsID0gJ3l0ZC10b3RhbCcsXHJcbiAgQ29tcG91bmRHcm93dGhSYXRlID0gJ2NvbXBvdW5kLWdyb3d0aC1yYXRlJyxcclxuICBZZWFyT3ZlclllYXJHcm93dGggPSAneWVhci1vdmVyLXllYXItZ3Jvd3RoJyxcclxuICBZVERHcm93dGggPSAneXRkLWdyb3d0aCcsXHJcbiAgVW5kZWZpbmVkID0gJ3VuZGVmaW5lZCdcclxufVxyXG5cclxuLyoqXHJcbiAqIEVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIHNlbGVjdGlvbiB0eXBlIGZvciBzZWxlY3QgbWFya3MgYXBpLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gU2VsZWN0aW9uVXBkYXRlVHlwZSB7XHJcbiAgUmVwbGFjZSA9ICdzZWxlY3QtcmVwbGFjZScsXHJcbiAgQWRkID0gJ3NlbGVjdC1hZGQnLFxyXG4gIFJlbW92ZSA9ICdzZWxlY3QtcmVtb3ZlJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIHR5cGUgb2Ygc2hlZXQgYSBTaGVldCBvYmplY3QgcmVwcmVzZW50c1xyXG4gKi9cclxuZXhwb3J0IGVudW0gU2hlZXRUeXBlIHtcclxuICBEYXNoYm9hcmQgPSAnZGFzaGJvYXJkJyxcclxuICBTdG9yeSA9ICdzdG9yeScsXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU29ydERpcmVjdGlvbiB7XHJcbiAgSW5jcmVhc2luZyA9ICdpbmNyZWFzaW5nJyxcclxuICBEZWNyZWFzaW5nID0gJ2RlY3JlYXNpbmcnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGEgY2VydGFpbiB0eXBlIG9mIGV2ZW50IHdoaWNoIGNhbiBiZSBsaXN0ZW5lZCBmb3JcclxuICovXHJcbmV4cG9ydCBlbnVtIFRhYmxlYXVFdmVudFR5cGUge1xyXG4gIC8qKiBSYWlzZWQgd2hlbiBhbnkgZmlsdGVyIGhhcyBjaGFuZ2VkIHN0YXRlLiovXHJcbiAgRmlsdGVyQ2hhbmdlZCA9ICdmaWx0ZXItY2hhbmdlZCcsXHJcblxyXG4gIC8qKiBUaGUgc2VsZWN0ZWQgbWFya3Mgb24gYSB2aXN1YWxpemF0aW9uIGhhcyBjaGFuZ2VkICovXHJcbiAgTWFya1NlbGVjdGlvbkNoYW5nZWQgPSAnbWFyay1zZWxlY3Rpb24tY2hhbmdlZCcsXHJcblxyXG4gIC8qKiBBIHBhcmFtZXRlciBoYXMgaGFkIGl0cyB2YWx1ZSBtb2RpZmllZCAqL1xyXG4gIFBhcmFtZXRlckNoYW5nZWQgPSAncGFyYW1ldGVyLWNoYW5nZWQnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFRyZW5kTGluZU1vZGVsVHlwZSB7XHJcbiAgTGluZWFyID0gJ2xpbmVhcicsXHJcbiAgTG9nYXJpdGhtaWMgPSAnbG9nYXJpdGhtaWMnLFxyXG4gIEV4cG9uZW50aWFsID0gJ2V4cG9uZW50aWFsJyxcclxuICBQb2x5bm9taWFsID0gJ3BvbHlub21pYWwnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktZXh0ZXJuYWwtY29udHJhY3Qvc3JjL0VudW1zLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZGFzaGJvYXJkIG9iamVjdHMgLSB0aGUgem9uZXMgaW4gYSBkYXNoYm9hcmQuXHJcbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgaXQgaXMganVzdCBhIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRPYmplY3QgaW1wbGVtZW50cyBDb250cmFjdC5EYXNoYm9hcmRPYmplY3Qge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2Rhc2hib2FyZDogQ29udHJhY3QuRGFzaGJvYXJkLFxyXG4gICAgcHJpdmF0ZSBfdHlwZTogQ29udHJhY3QuRGFzaGJvYXJkT2JqZWN0VHlwZSxcclxuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiBDb250cmFjdC5Qb2ludCxcclxuICAgIHByaXZhdGUgX3NpemU6IENvbnRyYWN0LlNpemUsXHJcbiAgICBwcml2YXRlIF93b3Jrc2hlZXQ6IENvbnRyYWN0LldvcmtzaGVldCB8IHVuZGVmaW5lZFxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGFzaGJvYXJkKCk6IENvbnRyYWN0LkRhc2hib2FyZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0eXBlKCk6IENvbnRyYWN0LkRhc2hib2FyZE9iamVjdFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCk6IENvbnRyYWN0LlBvaW50IHtcclxuICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBDb250cmFjdC5TaXplIHtcclxuICAgIHJldHVybiB0aGlzLl9zaXplO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXQoKTogQ29udHJhY3QuV29ya3NoZWV0IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXQ7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRGFzaGJvYXJkT2JqZWN0LnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBDb2x1bW5UeXBlIGFzIEV4dGVybmFsQ29sdW1uVHlwZSxcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlIGFzIEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSxcclxuICBEYXRhVHlwZSBhcyBFeHRlcm5hbERhdGFUeXBlLFxyXG4gIERhdGVSYW5nZVR5cGUgYXMgRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLFxyXG4gIEV4dGVuc2lvbkNvbnRleHQgYXMgRXh0ZXJuYWxFeHRlbnNpb25zQ29udGV4dCxcclxuICBFeHRlbnNpb25Nb2RlIGFzIEV4dGVybmFsRXh0ZW5zaW9uc01vZGUsXHJcbiAgRmllbGRBZ2dyZWdhdGlvblR5cGUgYXMgRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZSxcclxuICBGaWVsZFJvbGVUeXBlIGFzIEV4dGVybmFsRmllbGRSb2xlVHlwZSxcclxuICBGaWx0ZXJUeXBlIGFzIEV4dGVybmFsRmlsdGVyVHlwZSxcclxuICBGaWx0ZXJVcGRhdGVUeXBlIGFzIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZSxcclxuICBQYXJhbWV0ZXJWYWx1ZVR5cGUgYXMgRXh0ZXJuYWxQYXJhbWV0ZXJWYWx1ZVR5cGUsXHJcbiAgUGVyaW9kVHlwZSBhcyBFeHRlcm5hbERhdGVQZXJpb2QsXHJcbiAgU2hlZXRUeXBlIGFzIEV4dGVybmFsU2hlZXRUeXBlLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbHVtblR5cGUgYXMgSW50ZXJuYWxDb2x1bW5UeXBlLFxyXG4gIERhc2hib2FyZE9iamVjdFR5cGUgYXMgSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gIERhdGFUeXBlIGFzIEludGVybmFsRGF0YVR5cGUsXHJcbiAgRGF0ZVJhbmdlVHlwZSBhcyBJbnRlcm5hbERhdGVSYW5nZVR5cGUsXHJcbiAgRGF0ZVN0ZXBQZXJpb2QgYXMgSW50ZXJuYWxEYXRlU3RlcFBlcmlvZCxcclxuICBEb21haW5SZXN0cmljdGlvblR5cGUgYXMgSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUsXHJcbiAgRXh0ZW5zaW9uQ29udGV4dCBhcyBJbnRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LFxyXG4gIEV4dGVuc2lvbk1vZGUgYXMgSW50ZXJuYWxFeHRlbnNpb25zTW9kZSxcclxuICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSBhcyBJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLFxyXG4gIEZpZWxkUm9sZVR5cGUgYXMgSW50ZXJuYWxGaWVsZFJvbGVUeXBlLFxyXG4gIEZpbHRlclR5cGUgYXMgSW50ZXJuYWxGaWx0ZXJUeXBlLFxyXG4gIEZpbHRlclVwZGF0ZVR5cGUgYXMgSW50ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLFxyXG4gIFNoZWV0VHlwZSBhcyBJbnRlcm5hbFNoZWV0VHlwZSxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp0eXBlZGVmIC0gRGlzYWJsZSB0aGlzIHRvIG1ha2UgZGVjbGFyaW5nIHRoZXNlIGNsYXNzZXMgYSBiaXQgZWFzaWVyICovXHJcbi8qKlxyXG4gKiBNYXBzIGVudW1zIHVzZWQgYnkgdGhlIGludGVybmFsLWFwaS1jb250cmFjdCB0byB0aGUgZW51bXMgdXNlZFxyXG4gKiBpbiB0aGUgZXh0ZXJuYWwtYXBpLWNvbnRyYWN0LCB3aGljaCBkZXZlbG9wZXJzIGNvZGUgYWdhaW5zdC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3Mge1xyXG4gIHB1YmxpYyBzdGF0aWMgZXh0ZW5zaW9uQ29udGV4dCA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRXh0ZW5zaW9uc0NvbnRleHQsIEV4dGVybmFsRXh0ZW5zaW9uc0NvbnRleHQ+KHtcclxuICAgIFtJbnRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LkRlc2t0b3BdOiBFeHRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LkRlc2t0b3AsXHJcbiAgICBbSW50ZXJuYWxFeHRlbnNpb25zQ29udGV4dC5TZXJ2ZXJdOiBFeHRlcm5hbEV4dGVuc2lvbnNDb250ZXh0LlNlcnZlclxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGV4dGVuc2lvbk1vZGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEV4dGVuc2lvbnNNb2RlLCBFeHRlcm5hbEV4dGVuc2lvbnNNb2RlPih7XHJcbiAgICBbSW50ZXJuYWxFeHRlbnNpb25zTW9kZS5BdXRob3JpbmddOiBFeHRlcm5hbEV4dGVuc2lvbnNNb2RlLkF1dGhvcmluZyxcclxuICAgIFtJbnRlcm5hbEV4dGVuc2lvbnNNb2RlLlZpZXdpbmddOiBFeHRlcm5hbEV4dGVuc2lvbnNNb2RlLlZpZXdpbmdcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb2x1bW5UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxDb2x1bW5UeXBlLCBFeHRlcm5hbENvbHVtblR5cGU+KHtcclxuICAgIFtJbnRlcm5hbENvbHVtblR5cGUuQ29udGludW91c106IEV4dGVybmFsQ29sdW1uVHlwZS5Db250aW51b3VzLFxyXG4gICAgW0ludGVybmFsQ29sdW1uVHlwZS5EaXNjcmV0ZV06IEV4dGVybmFsQ29sdW1uVHlwZS5EaXNjcmV0ZVxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpZWxkQWdncmVnYXRpb25UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZSwgRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQXR0cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQXR0cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkF2Z106IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQXZnLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkNvdW50LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRkXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Db3VudGQsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5EYXldOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkRheSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkVuZF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuRW5kLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuSG91cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuSG91cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkluT3V0XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Jbk91dCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5LdXJ0b3NpcyxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1heF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWF4LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWR5XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZHksXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZWRpYW5dOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1lZGlhbixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1pbl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWluLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWludXRlXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW51dGUsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Nb250aFllYXJdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1vbnRoWWVhcixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmVdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmUsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdHJdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlF0cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlF1YXJ0MV06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQxLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQzXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDMsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TZWNvbmRdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlNlY29uZCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ta2V3bmVzcyxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlN0ZGV2XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlN0ZGV2cF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZwLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU3VtXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdW0sXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY0RheV06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNEYXksXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY0hvdXJdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jSG91cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01pbnV0ZSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTW9udGhdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTW9udGgsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1F0cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNRdHIsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNTZWNvbmQsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1dlZWtdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jV2VlayxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jWWVhcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNZZWFyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVXNlcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVXNlcixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlZhcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFycF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFycCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLldlZWtdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLldlZWssXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5XZWVrZGF5XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5XZWVrZGF5LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuWWVhcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuWWVhcixcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWVsZFJvbGVUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxGaWVsZFJvbGVUeXBlLCBFeHRlcm5hbEZpZWxkUm9sZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbEZpZWxkUm9sZVR5cGUuRGltZW5zaW9uXTogRXh0ZXJuYWxGaWVsZFJvbGVUeXBlLkRpbWVuc2lvbixcclxuICAgIFtJbnRlcm5hbEZpZWxkUm9sZVR5cGUuTWVhc3VyZV06IEV4dGVybmFsRmllbGRSb2xlVHlwZS5NZWFzdXJlLFxyXG4gICAgW0ludGVybmFsRmllbGRSb2xlVHlwZS5Vbmtub3duXTogRXh0ZXJuYWxGaWVsZFJvbGVUeXBlLlVua25vd24sXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc2hlZXRUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxTaGVldFR5cGUsIEV4dGVybmFsU2hlZXRUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkXTogRXh0ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkLFxyXG4gICAgW0ludGVybmFsU2hlZXRUeXBlLlN0b3J5XTogRXh0ZXJuYWxTaGVldFR5cGUuU3RvcnksXHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XTogRXh0ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGFzaGJvYXJkT2JqZWN0VHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSwgRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkV4dGVuc2lvbl06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5FeHRlbnNpb24sXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZV06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZSxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuUGFnZUZpbHRlcl06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYWdlRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYXJhbWV0ZXJDb250cm9sXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlBhcmFtZXRlckNvbnRyb2wsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0XTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRleHQsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5XZWJQYWdlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldlYlBhZ2UsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldvcmtzaGVldF06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXRcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRhVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGF0YVR5cGUsIEV4dGVybmFsRGF0YVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGFUeXBlLkJvb2xdOiBFeHRlcm5hbERhdGFUeXBlLkJvb2wsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5EYXRlXTogRXh0ZXJuYWxEYXRhVHlwZS5EYXRlLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRGF0ZVRpbWVdOiBFeHRlcm5hbERhdGFUeXBlLkRhdGVUaW1lLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRmxvYXRdOiBFeHRlcm5hbERhdGFUeXBlLkZsb2F0LFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuSW50XTogRXh0ZXJuYWxEYXRhVHlwZS5JbnQsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5TdHJpbmddOiBFeHRlcm5hbERhdGFUeXBlLlN0cmluZ1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbHRlclVwZGF0ZVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEZpbHRlclVwZGF0ZVR5cGUsIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BZGRdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWRkLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BbGxdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWxsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuUmVtb3ZlLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZXBsYWNlXTogRXh0ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLlJlcGxhY2VcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBhbGxvd2FibGVWYWx1ZXMgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZSwgRXh0ZXJuYWxQYXJhbWV0ZXJWYWx1ZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZS5BbGxdOiBFeHRlcm5hbFBhcmFtZXRlclZhbHVlVHlwZS5BbGwsXHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuTGlzdF06IEV4dGVybmFsUGFyYW1ldGVyVmFsdWVUeXBlLkxpc3QsXHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2VdOiBFeHRlcm5hbFBhcmFtZXRlclZhbHVlVHlwZS5SYW5nZVxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGRhdGVTdGVwUGVyaW9kID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxEYXRlU3RlcFBlcmlvZCwgRXh0ZXJuYWxEYXRlUGVyaW9kPih7XHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5ZZWFyc106IEV4dGVybmFsRGF0ZVBlcmlvZC5ZZWFycyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLlF1YXJ0ZXJzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLlF1YXJ0ZXJzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuTW9udGhzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLk1vbnRocyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLldlZWtzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLldlZWtzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuRGF5c106IEV4dGVybmFsRGF0ZVBlcmlvZC5EYXlzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuSG91cnNdOiBFeHRlcm5hbERhdGVQZXJpb2QuSG91cnMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5NaW51dGVzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLk1pbnV0ZXMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5TZWNvbmRzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLlNlY29uZHNcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlUmFuZ2VUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxEYXRlUmFuZ2VUeXBlLCBFeHRlcm5hbERhdGVSYW5nZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGVSYW5nZVR5cGUuQ3VycmVudF06IEV4dGVybmFsRGF0ZVJhbmdlVHlwZS5DdXJyZW50LFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5MYXN0XTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3QsXHJcbiAgICBbSW50ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3ROXTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3ROLFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5OZXh0XTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHQsXHJcbiAgICBbSW50ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHROXTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHROLFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5Ub0RhdGVdOiBFeHRlcm5hbERhdGVSYW5nZVR5cGUuVG9EYXRlXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRmlsdGVyVHlwZSwgRXh0ZXJuYWxGaWx0ZXJUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsXTogRXh0ZXJuYWxGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVHlwZS5SYW5nZV0gOiBFeHRlcm5hbEZpbHRlclR5cGUuUmFuZ2UsXHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZV06IEV4dGVybmFsRmlsdGVyVHlwZS5SZWxhdGl2ZURhdGUsXHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLkhpZXJhcmNoaWNhbF06IEV4dGVybmFsRmlsdGVyVHlwZS5IaWVyYXJjaGljYWxcclxuICB9KTtcclxufVxyXG4vKiB0c2xpbnQ6ZW5hYmxlOnR5cGVkZWYgKi9cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBQb2ludCBpbXBsZW1lbnRzIENvbnRyYWN0LlBvaW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfeDogbnVtYmVyLCBwcml2YXRlIF95OiBudW1iZXIpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl94O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB5KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5feTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Qb2ludC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2l6ZSBpbXBsZW1lbnRzIENvbnRyYWN0LlNpemUge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9oZWlnaHQ6IG51bWJlciwgcHJpdmF0ZSBfd2lkdGg6IG51bWJlcikgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGVpZ2h0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5faGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3aWR0aCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NpemUudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IFNoZWV0IH0gZnJvbSAnLi9TaGVldCc7XHJcblxyXG5pbXBvcnQgeyBXb3Jrc2hlZXRJbXBsIH0gZnJvbSAnLi9JbXBsL1dvcmtzaGVldEltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtzaGVldCBleHRlbmRzIFNoZWV0IGltcGxlbWVudHMgQ29udHJhY3QuV29ya3NoZWV0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya3NoZWV0SW1wbDogV29ya3NoZWV0SW1wbCkge1xyXG4gICAgc3VwZXIoX3dvcmtzaGVldEltcGwpO1xyXG5cclxuICAgIC8vIENhbGwgdG8gaW5pdGlhbGl6ZSBldmVudHMgYW5kIHRoZW4gY2FsbCBkb3duIHRvIHRoZSBldmVudCBsaXN0ZW5lciBtYW5hZ2VyIHRvIGhhbmRsZSB0aGluZ3NcclxuICAgIHRoaXMuX3dvcmtzaGVldEltcGwuaW5pdGlhbGl6ZUV2ZW50cyh0aGlzKS5mb3JFYWNoKGUgPT4gdGhpcy5hZGROZXdFdmVudFR5cGUoZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwYXJlbnREYXNoYm9hcmQoKTogQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLnBhcmVudERhc2hib2FyZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlckFzeW5jKFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsIHZhbHVlczogQXJyYXk8c3RyaW5nPiwgdXBkYXRlVHlwZTogQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSwgb3B0aW9uczogQ29udHJhY3QuRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmFwcGx5RmlsdGVyQXN5bmMoZmllbGROYW1lLCB2YWx1ZXMsIHVwZGF0ZVR5cGUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZywgZmlsdGVyT3B0aW9uczogQ29udHJhY3QuUmFuZ2VGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWUsIGZpbHRlck9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuY2xlYXJGaWx0ZXJBc3luYyhmaWVsZE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFuYWx5dGljT2JqZWN0c0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuQW5hbHl0aWNzT2JqZWN0Pj4ge1xyXG4gICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5hcGlOb3RJbXBsZW1lbnRlZChbJ2dldEFuYWx5dGljT2JqZWN0c0FzeW5jJ10pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFTb3VyY2VzQXN5bmMoKTogUHJvbWlzZTxBcnJheTxDb250cmFjdC5EYXRhU291cmNlPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0RGF0YVNvdXJjZXNBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEVuY29kaW5nc0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuRW5jb2Rpbmc+PiB7XHJcbiAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmFwaU5vdEltcGxlbWVudGVkKFsnZ2V0RW5jb2RpbmdzQXN5bmMnXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RmlsdGVyc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuRmlsdGVyW10+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldEZpbHRlcnNBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPENvbnRyYWN0Lk1hcmtzQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdW1tYXJ5RGF0YUFzeW5jKG9wdGlvbnM6IENvbnRyYWN0LkdldFN1bW1hcnlEYXRhT3B0aW9ucyk6IFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRTdW1tYXJ5RGF0YUFzeW5jKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9uczogQ29udHJhY3QuR2V0VW5kZXJseWluZ0RhdGFPcHRpb25zKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5jbGVhclNlbGVjdGVkTWFya3NBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlJREFzeW5jKG1hcmtzSW5mbzogQXJyYXk8Q29udHJhY3QuTWFya0luZm8+LCB1cGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5zZWxlY3RNYXJrc0J5SWRBc3luYyhtYXJrc0luZm8sIHVwZGF0ZVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHNlbGVjdGlvbnM6IEFycmF5PENvbnRyYWN0LlNlbGVjdGlvbkNyaXRlcmlhPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmMoc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0TWFya3NCeUlkQXN5bmMoc2VsZWN0aW9uczogQXJyYXk8Q29udHJhY3QuTWFya0luZm8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25VcGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5zZWxlY3RNYXJrc0J5SWRBc3luYyhzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Xb3Jrc2hlZXQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBTaGVldFBhdGggfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2hlZXRJbmZvSW1wbCB9IGZyb20gJy4vU2hlZXRJbmZvSW1wbCc7XHJcblxyXG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1BhcmFtZXRlcnNTZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNoZWV0SW1wbCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NoZWV0SW5mb0ltcGw6IFNoZWV0SW5mb0ltcGwpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRUeXBlKCk6IENvbnRyYWN0LlNoZWV0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXRJbmZvSW1wbC5zaGVldFR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0UGF0aCgpOiBTaGVldFBhdGgge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRQYXRoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaXplKCk6IENvbnRyYWN0LlNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRTaXplO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8Q29udHJhY3QuUGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8UGFyYW1ldGVyc1NlcnZpY2U+KFNlcnZpY2VOYW1lcy5QYXJhbWV0ZXJzKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhwYXJhbWV0ZXJOYW1lLCBzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyc0FzeW5jKHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuUGFyYW1ldGVyPj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFBhcmFtZXRlcnNTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycyk7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyh0aGlzLnNoZWV0UGF0aCwgc2hlZXQpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvU2hlZXRJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcbi8qKlxyXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgYW4gYXBpIHNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbmFtZSBmb3IgdGhpcyBzZXJ2aWNlLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIHNlcnZpY2UgbmFtZSB3aGljaCB3aWxsIGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGFwaS1zaGFyZWQgcHJvamVjdFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGVudW0gU2VydmljZU5hbWVzIHtcclxuICBEYXRhU291cmNlU2VydmljZSA9ICdkYXRhLXNvdXJjZS1zZXJ2aWNlJyxcclxuICBHZXREYXRhID0gJ2dldC1kYXRhLXNlcnZpY2UnLFxyXG4gIEZpbHRlciA9ICdmaWx0ZXItc2VydmljZScsXHJcbiAgTm90aWZpY2F0aW9uID0gJ25vdGlmaWNhdGlvbi1zZXJ2aWNlJyxcclxuICBQYXJhbWV0ZXJzID0gJ3BhcmFtZXRlcnMtc2VydmljZScsXHJcbiAgU2VsZWN0aW9uID0gJ3NlbGVjdGlvbi1zZXJ2aWNlJ1xyXG59XHJcblxyXG4vKipcclxuICogRG8gc29tZSBnbG9iYWJsIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gY3JlYXRlIGEgc2luZ2xldG9uIG9uIHRoZSB3aW5kb3cgb2JqZWN0XHJcbiAqL1xyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIFdpbmRvdyB7IF9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeTogU2VydmljZVJlZ2lzdHJ5IHwgdW5kZWZpbmVkOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVJlZ2lzdHJ5IHtcclxuICAvKipcclxuICAgKiBSZWdpc3RlcnMgYSBuZXcgc2VydmljZSBpbnRvIHRoZSBzZXJ2aWNlIHJlZ2lzdHJ5LiBBbnkgZXhpc3Rpbmcgb25lIHdpbGxcclxuICAgKiBiZSBvdmVyd3JpdHRlbi4gdGhlIHNlcnZpY2UgaXMgcmVnaXN0ZXJlZCB1bmRlciBzZXJ2aWNlLnNlcnZpY2VOYW1lXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0FwaVNlcnZpY2V9IHNlcnZpY2UgVGhlIHNlcnZpdmUgdG8gcmVnaXN0ZXJcclxuICAgKi9cclxuICByZWdpc3RlclNlcnZpY2Uoc2VydmljZTogQXBpU2VydmljZSk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZ2l2ZW4gc2VydmljZSBmcm9tIHRoZSByZWdpc3RyeS4gSWYgdGhlcmUgaXMgbm90IGFcclxuICAgKiBzZXJ2aWNlIHJlZ2lzdGVyZWQgdW5kZXIgdGhhdCBuYW1lLCB0aHJvd3MgYW5kIGVycm9yXHJcbiAgICpcclxuICAgKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2aWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZS5cclxuICAgKiBAcmV0dXJucyB7VH0gVGhlIHJlcXVlc3RlZCBzZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0U2VydmljZTxUIGV4dGVuZHMgQXBpU2VydmljZT4oc2VydmljZU5hbWU6IHN0cmluZyk6IFQ7XHJcbn1cclxuXHJcbmNsYXNzIFNlcnZpY2VSZWdpc3RyeUltcGwgaW1wbGVtZW50cyBTZXJ2aWNlUmVnaXN0cnkge1xyXG4gIHByaXZhdGUgc3RhdGljIFNFUlZJQ0VfTk9UX1JFR0lTVEVSRUQ6IHN0cmluZyA9ICdObyBTZXJ2aWNlICUxIGlzIHJlZ2lzdGVyZWQnO1xyXG4gIHByaXZhdGUgX3NlcnZpY2VzOiB7IFtzZXJ2aWNlTmFtZTogc3RyaW5nXTogQXBpU2VydmljZTsgfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fc2VydmljZXMgPSB7fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3RlclNlcnZpY2Uoc2VydmljZTogQXBpU2VydmljZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VydmljZXNbc2VydmljZS5zZXJ2aWNlTmFtZV0gPSBzZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlcnZpY2U8VCBleHRlbmRzIEFwaVNlcnZpY2U+KHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBUIHtcclxuICAgIGlmICghdGhpcy5fc2VydmljZXMuaGFzT3duUHJvcGVydHkoc2VydmljZU5hbWUpKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoU2VydmljZVJlZ2lzdHJ5SW1wbC5TRVJWSUNFX05PVF9SRUdJU1RFUkVELCBbc2VydmljZU5hbWVdKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fc2VydmljZXNbc2VydmljZU5hbWVdIGFzIFQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogc3RhdGljIGNsYXNzIHVzZWQgZm9yIGdldHRpbmcgYWNjZXNzIHRvIHRoZSBzaW5nbGUgaW5zdGFuY2VcclxuICogb2YgdGhlIEFwaVNlcnZpY2VSZWdpc3RyeVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2VSZWdpc3RyeSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgU0VSVklDRV9SRUdJU1RSWV9GQUlMRUQ6IHN0cmluZyA9ICdBc3NpZ25pbmcgc2VydmljZSByZWdpc3RyeSBmYWlsZWQnO1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgU2VydmljZVJlZ2lzdHJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogU2VydmljZVJlZ2lzdHJ5IHtcclxuICAgIGlmICghd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeSkge1xyXG4gICAgICBBcGlTZXJ2aWNlUmVnaXN0cnkuc2V0SW5zdGFuY2UobmV3IFNlcnZpY2VSZWdpc3RyeUltcGwoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF3aW5kb3cuX190YWJsZWF1QXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoQXBpU2VydmljZVJlZ2lzdHJ5LlNFUlZJQ0VfUkVHSVNUUllfRkFJTEVEKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2QgdG8gb3ZlcnJpZGUgdGhlIHJlZ2lzdHJ5IGluc3RhbmNlLiBDYW4gYmUgdXNlZCBieSB1bml0IHRlc3RzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NlcnZpY2VSZWdpc3RyeX0gc2VydmljZVJlZ2lzdHJ5IFRoZSBuZXcgcmVnaXN0cnlcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHNldEluc3RhbmNlKHNlcnZpY2VSZWdpc3RyeT86IFNlcnZpY2VSZWdpc3RyeSk6IHZvaWQge1xyXG4gICAgd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeSA9IHNlcnZpY2VSZWdpc3RyeTtcclxuICB9XHJcblxyXG4gIC8vIFByaXZhdGUgdG8gYXZvaWQgYW55b25lIGNvbnN0cnVjdGluZyB0aGlzXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkudHNcbiAqKi8iLCJpbXBvcnQgeyBTaGVldFR5cGUsIFNpemUgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBTaGVldFBhdGggfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNoZWV0SW5mb0ltcGwge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX3NoZWV0VHlwZTogU2hlZXRUeXBlLFxyXG4gICAgcHJpdmF0ZSBfc2hlZXRTaXplOiBTaXplXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRTaXplKCk6IFNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0U2l6ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRUeXBlKCk6IFNoZWV0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaGVldFBhdGgoKTogU2hlZXRQYXRoIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHNoZWV0TmFtZTogdGhpcy5uYW1lLFxyXG4gICAgICBpc0Rhc2hib2FyZDogdGhpcy5zaGVldFR5cGUgPT09IFNoZWV0VHlwZS5EYXNoYm9hcmRcclxuICAgICAgLy8gVE9ETyAtIFN0b3JpZXNcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9TaGVldEluZm9JbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBEYXRhU2NoZW1hLFxyXG4gIERhdGFTb3VyY2UgYXMgRGF0YVNvdXJjZUluZm8sXHJcbiAgRmlsdGVyRXZlbnQsIE5vdGlmaWNhdGlvbklkLFxyXG4gIFZpc3VhbElkLFxyXG4gIFdvcmtzaGVldERhdGFTb3VyY2VJbmZvXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi9EYXRhU291cmNlJztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnLi4vV29ya3NoZWV0JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VJbXBsIH0gZnJvbSAnLi9EYXRhU291cmNlSW1wbCc7XHJcbmltcG9ydCB7IFNoZWV0SW1wbCB9IGZyb20gJy4vU2hlZXRJbXBsJztcclxuaW1wb3J0IHsgU2hlZXRJbmZvSW1wbCB9IGZyb20gJy4vU2hlZXRJbmZvSW1wbCc7XHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlckltcGwgfSBmcm9tICcuL1NpbmdsZUV2ZW50TWFuYWdlckltcGwnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vRXZlbnRzL0ZpbHRlckNoYW5nZWRFdmVudCc7XHJcbmltcG9ydCB7IE1hcmtzU2VsZWN0ZWRFdmVudCB9IGZyb20gJy4uL0V2ZW50cy9NYXJrc1NlbGVjdGVkRXZlbnQnO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXIgfSBmcm9tICcuLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9EYXRhU291cmNlU2VydmljZSc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9GaWx0ZXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2UsIEdldERhdGFUeXBlIH0gZnJvbSAnLi4vU2VydmljZXMvR2V0RGF0YVNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvTm90aWZpY2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZWxlY3Rpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuY29uc3QgdmlzdWFsSWRzQXJlRXF1YWwgPSBmdW5jdGlvbihhOiBWaXN1YWxJZCwgYjogVmlzdWFsSWQpOiBib29sZWFuIHtcclxuICByZXR1cm4gYSAmJiBiICYmXHJcbiAgICBhLndvcmtzaGVldCA9PT0gYi53b3Jrc2hlZXQgJiZcclxuICAgIGEuZGFzaGJvYXJkID09PSBiLmRhc2hib2FyZCAmJlxyXG4gICAgYS5zdG9yeWJvYXJkID09PSBiLnN0b3J5Ym9hcmQgJiZcclxuICAgIGEuc3RvcnlQb2ludElEID09PSBiLnN0b3J5UG9pbnRJRCAmJlxyXG4gICAgYS5mbGlwYm9hcmRab25lSUQgPT09IGIuZmxpcGJvYXJkWm9uZUlEO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtzaGVldEltcGwgZXh0ZW5kcyBTaGVldEltcGwge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzaGVldEluZm9JbXBsOiBTaGVldEluZm9JbXBsLFxyXG4gICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF92aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgX3BhcmVudERhc2hib2FyZDogQ29udHJhY3QuRGFzaGJvYXJkKSB7XHJcbiAgICBzdXBlcihzaGVldEluZm9JbXBsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGFyZW50RGFzaGJvYXJkKCk6IENvbnRyYWN0LkRhc2hib2FyZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGFzaGJvYXJkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGVscGVyIG1ldGhvZCB3aGljaCBnb2VzIHRocm91Z2ggYW5kIHJlZ2lzdGVycyBlYWNoIGV2ZW50IHR5cGUgdGhpcyBpbXBsIGtub3dzIGFib3V0XHJcbiAgICogd2l0aCB0aGUgTm90aWZpY2F0aW9uU2VydmljZS4gSXQgcmV0dXJucyBhbiBhcnJheSBvZiBTaW5nbGVFdmVudE1hbmFnZXIgb2JqZWN0cyB3aGljaFxyXG4gICAqIGNhbiB0aGVuIGJlIHBhc3NlZCB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlciB0byBoYW5kbGUgdXNlciByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7V29ya3NoZWV0fSB3b3Jrc2hlZXQgVGhlIHdvcmtzaGVldCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoZSBldmVudCBub3RpZmljYXRpb25zXHJcbiAgICogQHJldHVybnMge0FycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj59IENvbGxlY3Rpb24gb2YgZXZlbnQgbWFuYWdlcnMgdG8gcGFzcyB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0aWFsaXplRXZlbnRzKHdvcmtzaGVldDogV29ya3NoZWV0KTogQXJyYXk8U2luZ2xlRXZlbnRNYW5hZ2VyPiB7XHJcbiAgICBjb25zdCByZXN1bHRzID0gbmV3IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4oKTtcclxuICAgIGxldCBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxOb3RpZmljYXRpb25TZXJ2aWNlPihTZXJ2aWNlTmFtZXMuTm90aWZpY2F0aW9uKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIHNlcnZpY2UgcmVnaXN0ZXJlZCwganVzdCByZXR1cm5cclxuICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBhbGwgb2YgdGhlIGV2ZW50IG1hbmFnZXJzIHdlJ2xsIG5lZWQgKG9uZSBmb3IgZWFjaCBldmVudCB0eXBlKVxyXG4gICAgY29uc3QgbWFya3NFdmVudCA9IG5ldyBTaW5nbGVFdmVudE1hbmFnZXJJbXBsPE1hcmtzU2VsZWN0ZWRFdmVudD4oQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCk7XHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlLnJlZ2lzdGVySGFuZGxlcihOb3RpZmljYXRpb25JZC5TZWxlY3RlZE1hcmtzQ2hhbmdlZCwgKG1vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZpc3VhbElkID0gbW9kZWwgYXMgVmlzdWFsSWQ7XHJcbiAgICAgIHJldHVybiB2aXN1YWxJZHNBcmVFcXVhbCh2aXN1YWxJZCwgdGhpcy52aXN1YWxJZCk7XHJcbiAgICB9LCAodml6OiBWaXN1YWxJZCkgPT4ge1xyXG4gICAgICBtYXJrc0V2ZW50LnRyaWdnZXJFdmVudCgoKSA9PiBuZXcgTWFya3NTZWxlY3RlZEV2ZW50KHdvcmtzaGVldCkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgZmlsdGVyRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxGaWx0ZXJDaGFuZ2VkRXZlbnQ+KENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuRmlsdGVyQ2hhbmdlZCk7XHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlLnJlZ2lzdGVySGFuZGxlcihOb3RpZmljYXRpb25JZC5GaWx0ZXJDaGFuZ2VkLCAobW9kZWwpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyRXZlbnRSZXNwb25zZSA9IG1vZGVsIGFzIEZpbHRlckV2ZW50O1xyXG4gICAgICByZXR1cm4gdGhpcy52aXN1YWxJZC53b3Jrc2hlZXQgPT09IGZpbHRlckV2ZW50UmVzcG9uc2UudmlzdWFsSWQud29ya3NoZWV0O1xyXG4gICAgfSwgKGV2ZW50OiBGaWx0ZXJFdmVudCkgPT4ge1xyXG4gICAgICBmaWx0ZXJFdmVudC50cmlnZ2VyRXZlbnQoKCkgPT4gbmV3IEZpbHRlckNoYW5nZWRFdmVudCh3b3Jrc2hlZXQsIGV2ZW50LmZpZWxkTmFtZSkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzdWx0cy5wdXNoKG1hcmtzRXZlbnQpO1xyXG4gICAgcmVzdWx0cy5wdXNoKGZpbHRlckV2ZW50KTtcclxuXHJcbiAgICAvLyBUT0RPIC0gb3RoZXIgZXZlbnQgdHlwZXNcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmlzdWFsSWQoKTogVmlzdWFsSWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc3VhbElkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5RmlsdGVyQXN5bmMoXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZywgdmFsdWVzOiBBcnJheTxzdHJpbmc+LCB1cGRhdGVUeXBlOiBDb250cmFjdC5GaWx0ZXJVcGRhdGVUeXBlLCBvcHRpb25zOiBDb250cmFjdC5GaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgICByZXR1cm4gc2VydmljZS5hcHBseUZpbHRlckFzeW5jKHRoaXMudmlzdWFsSWQsIGZpZWxkTmFtZSwgdmFsdWVzLCB1cGRhdGVUeXBlLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZywgZmlsdGVyT3B0aW9uczogQ29udHJhY3QuUmFuZ2VGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUsIGZpbHRlck9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuY2xlYXJGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFTb3VyY2VzQXN5bmMoKTogUHJvbWlzZTxBcnJheTxDb250cmFjdC5EYXRhU291cmNlPj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPERhdGFTb3VyY2VTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRGF0YVNvdXJjZVNlcnZpY2UpO1xyXG5cclxuICAgIHJldHVybiBzZXJ2aWNlLmdldERhdGFTb3VyY2VzQXN5bmMoKS50aGVuPEFycmF5PENvbnRyYWN0LkRhdGFTb3VyY2U+PihyZXN1bHQgPT4ge1xyXG4gICAgICBjb25zdCBkYXRhU2NoZW1hOiBEYXRhU2NoZW1hID0gcmVzdWx0IGFzIERhdGFTY2hlbWE7XHJcbiAgICAgIGNvbnN0IHdvcmtzaGVldERhdGFTb3VyY2VJbmZvOiBXb3Jrc2hlZXREYXRhU291cmNlSW5mbyA9IGRhdGFTY2hlbWEud29ya3NoZWV0RGF0YVNjaGVtYU1hcFt0aGlzLm5hbWVdO1xyXG5cclxuICAgICAgbGV0IGRhdGFTb3VyY2VzOiBBcnJheTxDb250cmFjdC5EYXRhU291cmNlPiA9IFtdO1xyXG5cclxuICAgICAgLy8gRmlyc3QsIGFkZCB0aGUgcHJpbWFyeSBkYXRhc291cmNlLiAgQnkgY29udmVudGlvbiwgaXQgY29tZXMgZmlyc3QgaW4gdGhlIHJldHVybmVkIGFycmF5LlxyXG4gICAgICBsZXQgcHJpbWFyeUlkOiBzdHJpbmcgPSB3b3Jrc2hlZXREYXRhU291cmNlSW5mby5wcmltYXJ5RGF0YVNvdXJjZTtcclxuICAgICAgZGF0YVNvdXJjZXMucHVzaCh0aGlzLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW3ByaW1hcnlJZF0pKTtcclxuXHJcbiAgICAgIC8vIFRoZW4sIGxvb3AgdGhyb3VnaCBhbnkgc2Vjb25kYXJ5IGRhdGEgc291cmNlcyBhbmQgYWRkIHRoZW0uXHJcbiAgICAgIGZvciAobGV0IHNlY29uZGFyeUlkIG9mIHdvcmtzaGVldERhdGFTb3VyY2VJbmZvLnJlZmVyZW5jZWREYXRhU291cmNlTGlzdCkge1xyXG4gICAgICAgIGlmIChzZWNvbmRhcnlJZCAhPT0gcHJpbWFyeUlkKSB7XHJcbiAgICAgICAgICBkYXRhU291cmNlcy5wdXNoKHRoaXMuY3JlYXRlRGF0YVNvdXJjZUZyb21JbmZvKGRhdGFTY2hlbWEuZGF0YVNvdXJjZXNbc2Vjb25kYXJ5SWRdKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZGF0YVNvdXJjZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWx0ZXJzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5GaWx0ZXJbXT4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0RmlsdGVyc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPENvbnRyYWN0Lk1hcmtzQ29sbGVjdGlvbj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8R2V0RGF0YVNlcnZpY2U+KFNlcnZpY2VOYW1lcy5HZXREYXRhKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldEhpZ2hsaWdodGVkTWFya3NBc3luYyh0aGlzLnZpc3VhbElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTdW1tYXJ5RGF0YUFzeW5jKG9wdGlvbnM6IENvbnRyYWN0LkdldFN1bW1hcnlEYXRhT3B0aW9ucyk6IFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8R2V0RGF0YVNlcnZpY2U+KFNlcnZpY2VOYW1lcy5HZXREYXRhKTtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cclxuICAgIHJldHVybiBzZXJ2aWNlLmdldFVuZGVybHlpbmdEYXRhQXN5bmMoXHJcbiAgICAgIHRoaXMudmlzdWFsSWQsIEdldERhdGFUeXBlLlN1bW1hcnksICEhb3B0aW9ucy5pZ25vcmVBbGlhc2VzLCAhIW9wdGlvbnMuaWdub3JlU2VsZWN0aW9uLCB0cnVlLCAwKTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9uczogQ29udHJhY3QuR2V0VW5kZXJseWluZ0RhdGFPcHRpb25zKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxHZXREYXRhU2VydmljZT4oU2VydmljZU5hbWVzLkdldERhdGEpO1xyXG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgICB0aGlzLnZpc3VhbElkLFxyXG4gICAgICBHZXREYXRhVHlwZS5VbmRlcmx5aW5nLFxyXG4gICAgICAhIW9wdGlvbnMuaWdub3JlQWxpYXNlcyxcclxuICAgICAgISFvcHRpb25zLmlnbm9yZVNlbGVjdGlvbixcclxuICAgICAgISFvcHRpb25zLmluY2x1ZGVBbGxDb2x1bW5zLFxyXG4gICAgICBvcHRpb25zLm1heFJvd3MgfHwgMCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8U2VsZWN0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLlNlbGVjdGlvbik7XHJcbiAgICByZXR1cm4gc2VydmljZS5jbGVhclNlbGVjdGVkTWFya3NBc3luYyh0aGlzLnZpc3VhbElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RNYXJrc0J5VmFsdWVBc3luYyhzZWxlY3Rpb25zOiBBcnJheTxDb250cmFjdC5TZWxlY3Rpb25Dcml0ZXJpYT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblVwZGF0ZVR5cGU6IENvbnRyYWN0LlNlbGVjdGlvblVwZGF0ZVR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxTZWxlY3Rpb25TZXJ2aWNlPihTZXJ2aWNlTmFtZXMuU2VsZWN0aW9uKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLnNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHRoaXMudmlzdWFsSWQsIHNlbGVjdGlvbnMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlJZEFzeW5jKHNlbGVjdGlvbnM6IEFycmF5PENvbnRyYWN0Lk1hcmtJbmZvPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFNlbGVjdGlvblNlcnZpY2U+KFNlcnZpY2VOYW1lcy5TZWxlY3Rpb24pO1xyXG4gICAgcmV0dXJuIHNlcnZpY2Uuc2VsZWN0TWFya3NCeUlkQXN5bmModGhpcy52aXN1YWxJZCwgc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU291cmNlSW5mbzogRGF0YVNvdXJjZUluZm8pOiBDb250cmFjdC5EYXRhU291cmNlIHtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2VJbXBsID0gbmV3IERhdGFTb3VyY2VJbXBsKGRhdGFTb3VyY2VJbmZvKTtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBuZXcgRGF0YVNvdXJjZShkYXRhU291cmNlSW1wbCk7XHJcbiAgICBkYXRhU291cmNlSW1wbC5pbml0aWFsaXplV2l0aFB1YmxpY0ludGVyZmFjZXMoZGF0YVNvdXJjZSk7XHJcbiAgICByZXR1cm4gZGF0YVNvdXJjZTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL1dvcmtzaGVldEltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZUltcGwgfSBmcm9tICcuL0ltcGwvRGF0YVNvdXJjZUltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2UgaW1wbGVtZW50cyBDb250cmFjdC5EYXRhU291cmNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YVNvdXJjZUltcGw6IERhdGFTb3VyY2VJbXBsKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmllbGRzKCk6IENvbnRyYWN0LkZpZWxkW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmZpZWxkcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZXh0cmFjdFVwZGF0ZVRpbWUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5leHRyYWN0VXBkYXRlVGltZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNFeHRyYWN0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmlzRXh0cmFjdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWZyZXNoQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwucmVmcmVzaEFzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QWN0aXZlVGFibGVzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5UYWJsZVN1bW1hcnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmdldEFjdGl2ZVRhYmxlc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29ubmVjdGlvblN1bW1hcmllc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ29ubmVjdGlvblN1bW1hcnlbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmdldENvbm5lY3Rpb25TdW1tYXJpZXNBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9ucz86IENvbnRyYWN0LkRhdGFTb3VyY2VVbmRlcmx5aW5nRGF0YU9wdGlvbnMpOlxyXG4gICAgUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0RhdGFTb3VyY2UudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgKiBhcyBJbnRlcm5hbENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEltcGwgfSBmcm9tICcuL0ZpZWxkSW1wbCc7XHJcblxyXG5pbXBvcnQgeyBDb25uZWN0aW9uU3VtbWFyeSB9IGZyb20gJy4uL0Nvbm5lY3Rpb25TdW1tYXJ5JztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi9GaWVsZCc7XHJcbmltcG9ydCB7IFRhYmxlU3VtbWFyeSB9IGZyb20gJy4uL1RhYmxlU3VtbWFyeSc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0RhdGFTb3VyY2VTZXJ2aWNlJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9HZXREYXRhU2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSwgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlSW1wbCB7XHJcbiAgcHJpdmF0ZSBfZmllbGRzOiBGaWVsZFtdO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YVNvdXJjZUluZm86IEludGVybmFsQ29udHJhY3QuRGF0YVNvdXJjZSkge1xyXG4gICAgdGhpcy5fZmllbGRzID0gX2RhdGFTb3VyY2VJbmZvLmZpZWxkcy5tYXAoZmllbGRNb2RlbCA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkSW1wbCA9IG5ldyBGaWVsZEltcGwoZmllbGRNb2RlbCwgdGhpcyk7XHJcbiAgICAgIHJldHVybiBuZXcgRmllbGQoZmllbGRJbXBsKTtcclxuICAgIH0pO1xyXG4gICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbmZvLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUluZm8uaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGV4dHJhY3RVcGRhdGVUaW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUluZm8uZXh0cmFjdFVwZGF0ZVRpbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkcygpOiBDb250cmFjdC5GaWVsZFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzRXh0cmFjdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW5mby5pc0V4dHJhY3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaEFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZGF0YVNvdXJjZVNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxEYXRhU291cmNlU2VydmljZT4oXHJcbiAgICAgIFNlcnZpY2VOYW1lcy5EYXRhU291cmNlU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGFTb3VyY2VTZXJ2aWNlLnJlZnJlc2hBc3luYyh0aGlzLl9kYXRhU291cmNlSW5mby5pZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29ubmVjdGlvblN1bW1hcmllc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ29ubmVjdGlvblN1bW1hcnlbXT4ge1xyXG4gICAgY29uc3QgZGF0YVNvdXJjZVNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxEYXRhU291cmNlU2VydmljZT4oXHJcbiAgICAgIFNlcnZpY2VOYW1lcy5EYXRhU291cmNlU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIGRhdGFTb3VyY2VTZXJ2aWNlLmdldENvbm5lY3Rpb25TdW1tYXJpZXNBc3luYyh0aGlzLl9kYXRhU291cmNlSW5mby5pZCkudGhlbjxDb250cmFjdC5Db25uZWN0aW9uU3VtbWFyeVtdPihzdW1tYXJpZXMgPT4ge1xyXG4gICAgICByZXR1cm4gc3VtbWFyaWVzLm1hcChzdW1tYXJ5ID0+IG5ldyBDb25uZWN0aW9uU3VtbWFyeShzdW1tYXJ5KSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBY3RpdmVUYWJsZXNBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LlRhYmxlU3VtbWFyeVtdPiB7XHJcbiAgICBjb25zdCBkYXRhU291cmNlU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPERhdGFTb3VyY2VTZXJ2aWNlPihcclxuICAgICAgU2VydmljZU5hbWVzLkRhdGFTb3VyY2VTZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gZGF0YVNvdXJjZVNlcnZpY2UuZ2V0QWN0aXZlVGFibGVzQXN5bmModGhpcy5fZGF0YVNvdXJjZUluZm8uaWQpLnRoZW48Q29udHJhY3QuVGFibGVTdW1tYXJ5W10+KHRhYmxlSW5mb3MgPT4ge1xyXG4gICAgICByZXR1cm4gdGFibGVJbmZvcy5tYXAodGFibGVJbmZvID0+IG5ldyBUYWJsZVN1bW1hcnkodGFibGVJbmZvKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnM/OiBDb250cmFjdC5EYXRhU291cmNlVW5kZXJseWluZ0RhdGFPcHRpb25zKTpcclxuICAgIFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgICAgICAgaWdub3JlQWxpYXNlczogZmFsc2UsXHJcbiAgICAgICAgICBtYXhSb3dzOiAxMDAwMCxcclxuICAgICAgICAgIGNvbHVtbnNUb0luY2x1ZGU6IFtdLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcblxyXG4gICAgICBjb25zdCBnZXREYXRhU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICAgIHJldHVybiBnZXREYXRhU2VydmljZS5nZXREYXRhU291cmNlRGF0YUFzeW5jKFxyXG4gICAgICAgIHRoaXMuaWQsXHJcbiAgICAgICAgISFvcHRpb25zLmlnbm9yZUFsaWFzZXMsXHJcbiAgICAgICAgb3B0aW9ucy5tYXhSb3dzIHx8IGRlZmF1bHRPcHRpb25zLm1heFJvd3MsXHJcbiAgICAgICAgb3B0aW9ucy5jb2x1bW5zVG9JbmNsdWRlIHx8IGRlZmF1bHRPcHRpb25zLmNvbHVtbnNUb0luY2x1ZGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRpYWxpemVXaXRoUHVibGljSW50ZXJmYWNlcyhkYXRhU291cmNlOiBDb250cmFjdC5EYXRhU291cmNlKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWVsZHMgPSB0aGlzLl9kYXRhU291cmNlSW5mby5maWVsZHMubWFwKGZpZWxkTW9kZWwgPT4ge1xyXG4gICAgICBjb25zdCBmaWVsZEltcGwgPSBuZXcgRmllbGRJbXBsKGZpZWxkTW9kZWwsIGRhdGFTb3VyY2UpO1xyXG4gICAgICByZXR1cm4gbmV3IEZpZWxkKGZpZWxkSW1wbCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL0RhdGFTb3VyY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0ICogYXMgSW50ZXJuYWxDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIH0gZnJvbSAnLi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRJbXBsIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZmllbGRJbmZvOiBJbnRlcm5hbENvbnRyYWN0LkZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF9wYXJlbnREYXRhU291cmNlOiBDb250cmFjdC5EYXRhU291cmNlKSB7ICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFnZ3JlZ2F0aW9uKCk6IENvbnRyYWN0LkZpZWxkQWdncmVnYXRpb25UeXBlIHtcclxuICAgIHJldHVybiBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZmllbGRBZ2dyZWdhdGlvblR5cGUuY29udmVydCh0aGlzLl9maWVsZEluZm8uYWdncmVnYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IENvbnRyYWN0LkRhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvbGUoKTogQ29udHJhY3QuRmllbGRSb2xlVHlwZSB7XHJcbiAgICByZXR1cm4gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmZpZWxkUm9sZVR5cGUuY29udmVydCh0aGlzLl9maWVsZEluZm8ucm9sZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pc0hpZGRlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNHZW5lcmF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbmZvLmlzR2VuZXJhdGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0NhbGN1bGF0ZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDYWxjdWxhdGVkRmllbGQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzQ29tYmluZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDb21iaW5lZEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ2FsY3VsYXRlZEZpZWxkIHwgdW5kZWZpbmVkPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jIG1ldGhvZCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ltcGwvRmllbGRJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgYSBjb25uZWN0aW9uIHN1bW1hcnkuXHJcbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgaXQgaXMganVzdCBhIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb25uZWN0aW9uU3VtbWFyeSBpbXBsZW1lbnRzIENvbnRyYWN0LkNvbm5lY3Rpb25TdW1tYXJ5IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfY29ubmVjdGlvbkluZm86IENvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnkpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uSW5mby5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25JbmZvLmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2ZXJVUkkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uSW5mby5zZXJ2ZXJVUkk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uSW5mby50eXBlO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0Nvbm5lY3Rpb25TdW1tYXJ5LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcbmltcG9ydCB7IEZpZWxkSW1wbCB9IGZyb20gJy4vSW1wbC9GaWVsZEltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpZWxkIGltcGxlbWVudHMgQ29udHJhY3QuRmllbGQge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9maWVsZEltcGw6IEZpZWxkSW1wbCkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFnZ3JlZ2F0aW9uKCk6IENvbnRyYWN0LkZpZWxkQWdncmVnYXRpb25UeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuYWdncmVnYXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogQ29udHJhY3QuRGF0YVNvdXJjZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmRhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvbGUoKTogQ29udHJhY3QuRmllbGRSb2xlVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLnJvbGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0hpZGRlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNHZW5lcmF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmlzR2VuZXJhdGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0NhbGN1bGF0ZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaXNDYWxjdWxhdGVkRmllbGQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbHVtblR5cGUoKTogQ29udHJhY3QuQ29sdW1uVHlwZSB7XHJcbiAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmFwaU5vdEltcGxlbWVudGVkKFsnRmllbGQuY29sdW1uVHlwZSddKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNDb21iaW5lZEZpZWxkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0NvbWJpbmVkRmllbGQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5DYWxjdWxhdGVkRmllbGQgfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMoKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9GaWVsZC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlSW5mbyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgYSB0YWJsZSBzdW1tYXJ5LlxyXG4gKiBUaGlzIGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIGl0IGlzIGp1c3QgYSBwcm9wZXJ0eSBiYWcuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVGFibGVTdW1tYXJ5IGltcGxlbWVudHMgQ29udHJhY3QuVGFibGVTdW1tYXJ5IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfdGFibGVJbmZvOiBUYWJsZUluZm8pIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZUluZm8ubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZUluZm8uaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25JZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5mby5jb25uZWN0aW9uSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1c3RvbVNRTCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RhYmxlSW5mby5jdXN0b21TUUw7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvVGFibGVTdW1tYXJ5LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlciB9IGZyb20gJy4uL1NpbmdsZUV2ZW50TWFuYWdlcic7XHJcblxyXG4vKipcclxuICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBTaW5nbGVFdmVudE1hbmFnZXIgaW50ZXJmYWNlIGZvciBhIHNpbmdsZSB0eXBlIG9mIFRhYmxlYXUgZXZlbnRcclxuICpcclxuICogQHRlbXBsYXRlIFRFdmVudFR5cGUgVGhlIFRhYmxlYXUgZXZlbnQgdHlwZSB0aGlzIGNsYXNzIHNwZWNpYWxpemVzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxURXZlbnRUeXBlIGV4dGVuZHMgQ29udHJhY3QuVGFibGVhdUV2ZW50PiBpbXBsZW1lbnRzIFNpbmdsZUV2ZW50TWFuYWdlciB7XHJcbiAgcHJpdmF0ZSBfZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlO1xyXG4gIHByaXZhdGUgX2hhbmRsZXJzOiBBcnJheTwoZXZlbnRPYmo6IFRFdmVudFR5cGUpID0+IHZvaWQ+O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlKSB7XHJcbiAgICB0aGlzLl9ldmVudFR5cGUgPSBldmVudFR5cGU7XHJcbiAgICB0aGlzLl9oYW5kbGVycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBldmVudFR5cGUoKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoaGFuZGxlcjogKGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VW5yZWdpc3RlckZuIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzLnB1c2goaGFuZGxlcik7XHJcbiAgICByZXR1cm4gKCkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUV2ZW50TGlzdGVuZXIoaGFuZGxlcjogKGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBiZWZvcmVDb3VudCA9IHRoaXMuX2hhbmRsZXJzLmxlbmd0aDtcclxuICAgIHRoaXMuX2hhbmRsZXJzID0gdGhpcy5faGFuZGxlcnMuZmlsdGVyKGggPT4gaCAhPT0gaGFuZGxlcik7XHJcbiAgICByZXR1cm4gYmVmb3JlQ291bnQgPiB0aGlzLl9oYW5kbGVycy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJpZ2dlckV2ZW50KGV2ZW50R2VuZXJhdG9yOiAoKSA9PiBURXZlbnRUeXBlKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgdGhpcy5faGFuZGxlcnMpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBldmVudE1vZGVsID0gZXZlbnRHZW5lcmF0b3IoKTtcclxuICAgICAgICBoYW5kbGVyKGV2ZW50TW9kZWwpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gU2luY2UgdGhpcyBoYW5kbGVyIGNvdWxkIGJlIG91dHNpZGUgb3VyIGNvbnRyb2wsIGp1c3QgY2F0Y2ggYW55dGhpbmcgaXQgdGhyb3dzIGFuZCBjb250aW51ZSBvblxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW1wbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVXb3Jrc2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ2hhbmdlZEV2ZW50IGV4dGVuZHMgVGFibGVhdVdvcmtzaGVldEV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuRmlsdGVyQ2hhbmdlZEV2ZW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3Iod29ya3NoZWV0OiBDb250cmFjdC5Xb3Jrc2hlZXQsIHByaXZhdGUgX2ZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLkZpbHRlckNoYW5nZWQsIHdvcmtzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWx0ZXJBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LkZpbHRlcj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldC5nZXRGaWx0ZXJzQXN5bmMoKS50aGVuPENvbnRyYWN0LkZpbHRlcj4oZmlsdGVycyA9PiB7XHJcbiAgICAgIC8vIFRPRE86IEZpbHRlcmluZyBvZiB0aGUgZmlsdGVycyBzaG91bGQgZXZlbnR1YWxseSBiZSBkb25lIHBsYXRmb3JtIHNpZGUuXHJcbiAgICAgIGNvbnN0IGV2ZW50ZWRGaWx0ZXIgPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4gKGZpbHRlci5maWVsZE5hbWUgPT09IHRoaXMuX2ZpZWxkTmFtZSkpO1xyXG5cclxuICAgICAgaWYgKCFldmVudGVkRmlsdGVyKSB7XHJcbiAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGhpdCB0aGlzIHVubGVzcyB0aGUgZmlsdGVyIHdhcyByZW1vdmVkIGZyb20gdGhlIHdvcmtzaGVldFxyXG4gICAgICAgIC8vIGFmdGVyIHRoZSBldmVudCB3YXMgcmFpc2VkLlxyXG4gICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW50ZXJuYWxFcnJvcihbJ0ZpbHRlciBubyBsb25nZXIgZm91bmQgaW4gd29ya3NoZWV0LiddKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGV2ZW50ZWRGaWx0ZXI7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlYXVTaGVldEV2ZW50IH0gZnJvbSAnLi9UYWJsZWF1U2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVhdVdvcmtzaGVldEV2ZW50IGV4dGVuZHMgVGFibGVhdVNoZWV0RXZlbnQgaW1wbGVtZW50cyBDb250cmFjdC5UYWJsZWF1V29ya3NoZWV0RXZlbnQge1xyXG4gIHB1YmxpYyBnZXQgd29ya3NoZWV0KCk6IENvbnRyYWN0LldvcmtzaGVldCB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHR5cGU6IENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUsIHByb3RlY3RlZCBfd29ya3NoZWV0OiBDb250cmFjdC5Xb3Jrc2hlZXQpIHtcclxuICAgIHN1cGVyKHR5cGUsIF93b3Jrc2hlZXQpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1V29ya3NoZWV0RXZlbnQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgVGFibGVhdUV2ZW50IH0gZnJvbSAnLi9UYWJsZWF1RXZlbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlYXVTaGVldEV2ZW50IGV4dGVuZHMgVGFibGVhdUV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuVGFibGVhdVNoZWV0RXZlbnQge1xyXG4gIHByaXZhdGUgX3NoZWV0OiBDb250cmFjdC5TaGVldDtcclxuXHJcbiAgcHVibGljIGdldCBzaGVldCgpOiBDb250cmFjdC5TaGVldCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSwgc2hlZXQ6IENvbnRyYWN0LlNoZWV0KSB7XHJcbiAgICBzdXBlcih0eXBlKTtcclxuXHJcbiAgICB0aGlzLl9zaGVldCA9IHNoZWV0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1U2hlZXRFdmVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVhdUV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuVGFibGVhdUV2ZW50IHtcclxuICBwcml2YXRlIF90eXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSkge1xyXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdUV2ZW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlYXVXb3Jrc2hlZXRFdmVudCB9IGZyb20gJy4vVGFibGVhdVdvcmtzaGVldEV2ZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBNYXJrc1NlbGVjdGVkRXZlbnQgZXh0ZW5kcyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgaW1wbGVtZW50cyBDb250cmFjdC5NYXJrc1NlbGVjdGVkRXZlbnQge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih3b3Jrc2hlZXQ6IENvbnRyYWN0LldvcmtzaGVldCkge1xyXG4gICAgc3VwZXIoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCwgd29ya3NoZWV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy53b3Jrc2hlZXQuZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFZpc3VhbElkIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG4vKipcclxuICogRGVmaW5lcyB3aGljaCB0eXBlIG9mIGdldERhdGEgY2FsbCB0byBtYWtlLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gR2V0RGF0YVR5cGUge1xyXG4gIFN1bW1hcnkgPSAnc3VtbWFyeScsXHJcbiAgVW5kZXJseWluZyA9ICd1bmRlcmx5aW5nJ1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSBmb3IgaW1wbGVtZW50aW5nIHRoZSBsb2dpYyBmb3IgdmFyaW91cyBnZXREYXRhIGNhbGxzXHJcbiAqXHJcbiAqIEBpbnRlcmZhY2UgR2V0RGF0YVNlcnZpY2VcclxuICogQGV4dGVuZHMge0FwaVNlcnZpY2V9XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEdldERhdGFTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhIGZvciBhIHBhcnRpY3VsYXIgdmlzdWFsXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1Zpc3VhbElkfSB2aXN1YWxJZCAgVGhlIHZpc3VhbCB0byBnZXQgZGF0YSBmb3JcclxuICAgKiBAcGFyYW0ge0dldERhdGFUeXBlfSBnZXRUeXBlICBUaGUgdHlwZSBvZiBnZXREYXRhIGNhbGwgdG8gbWFrZVxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaWdub3JlQWxpYXNlcyAgV2hldGhlciBvciBub3QgYWxpYXNlcyBzaG91bGQgYmUgaWdub3JlZFxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaWdub3JlU2VsZWN0aW9uICBXaGV0aGVyIG9yIG5vdCBzZWxlY3Rpb24gc2hvdWxkIGJlIGlnbm9yZWRcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGluY2x1ZGVBbGxDb2x1bW5zICBTaG91bGQgYWxsIGNvbHVtbnMgYmUgaW5jbHVkZWRcclxuICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Um93cyAgTWF4aW11bSBudW1iZXIgb2Ygcm93cyB0byByZXR1cm5cclxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+fSAgRGF0YSB0YWJsZSB3aXRoIHRoZSByZXF1ZXN0ZWQgZGF0YVxyXG4gICAqL1xyXG4gICAgZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhcclxuICAgICAgdmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgICBnZXRUeXBlOiBHZXREYXRhVHlwZSxcclxuICAgICAgaWdub3JlQWxpYXNlczogYm9vbGVhbixcclxuICAgICAgaWdub3JlU2VsZWN0aW9uOiBib29sZWFuLFxyXG4gICAgICBpbmNsdWRlQWxsQ29sdW1uczogYm9vbGVhbixcclxuICAgICAgbWF4Um93czogbnVtYmVyKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY3VycmVudGx5IHNlbGVjdGVkIG1hcmtzIGZvciBhIGdpdmVuIHZpc3VhbFxyXG4gICAgICpcclxuICAgICogQHBhcmFtIHtWaXN1YWxJZH0gdmlzdWFsSWQgIFRoZSB2aXN1YWwgdG8gZ2V0IGRhdGEgZm9yXHJcbiAgICAqIEByZXR1cm5zIHtQcm9taXNlPEFjdGl2ZU1hcmtzPn0gIENvbGxlY3Rpb24gb2YgZGF0YSB0YWJsZXMgd2l0aCB0aGUgYWN0aXZlIG1hcmtzXHJcbiAgICAqL1xyXG4gICAgZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBtYXJrcyBmb3IgYSBnaXZlbiB2aXN1YWxcclxuICAgICAqXHJcbiAgICAqIEBwYXJhbSB7VmlzdWFsSWR9IHZpc3VhbElkICBUaGUgdmlzdWFsIHRvIGdldCBkYXRhIGZvclxyXG4gICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBY3RpdmVNYXJrcz59ICBDb2xsZWN0aW9uIG9mIGRhdGEgdGFibGVzIHdpdGggdGhlIGFjdGl2ZSBtYXJrc1xyXG4gICAgKi9cclxuICAgIGdldEhpZ2hsaWdodGVkTWFya3NBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPENvbnRyYWN0Lk1hcmtzQ29sbGVjdGlvbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZGF0YXNvdXJjZUlkICBUaGUgaWQgb2YgdGhlIGRhdGFzb3VyY2UgdG8gZ2V0IGRhdGEgZm9yXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlnbm9yZUFsaWFzZXMgIFdoZXRoZXIgYWxpYXMgdmFsdWVzIHNob3VsZCBiZSBpZ25vcmVkIGluIHRoZSByZXR1cm5lZCBkYXRhXHJcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gbWF4Um93cyBUaGUgbWF4aW11bSBudW1iZXIgb2Ygcm93cyB0byByZXRyaWV2ZVxyXG4gICAgICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBjb2x1bW5zVG9JbmNsdWRlICBDb2xsZWN0aW9uIG9mIGNvbHVtbiBjYXB0aW9ucyB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQuIEVtcHR5IG1lYW5zIGFsbCBjb2x1bW5zXHJcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+fSAgRGF0YSB0YWJsZSB3aXRoIHRoZSByZXF1ZXN0ZWQgZGF0YVxyXG4gICAgICovXHJcbiAgICBnZXREYXRhU291cmNlRGF0YUFzeW5jKFxyXG4gICAgICBkYXRhc291cmNlSWQ6IHN0cmluZyxcclxuICAgICAgaWdub3JlQWxpYXNlczogYm9vbGVhbixcclxuICAgICAgbWF4Um93czogbnVtYmVyLFxyXG4gICAgICBjb2x1bW5zVG9JbmNsdWRlOiBBcnJheTxzdHJpbmc+KTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+O1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvR2V0RGF0YVNlcnZpY2UudHNcbiAqKi8iLCJpbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0RhdGFTb3VyY2VTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0ZpbHRlclNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL1BhcmFtZXRlcnNTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogdm9pZCB7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgRGF0YVNvdXJjZVNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBHZXREYXRhU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEZpbHRlclNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgUGFyYW1ldGVyc1NlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBTZWxlY3Rpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9SZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzLnRzXG4gKiovIiwiaW1wb3J0IHsgRXJyb3JDb2RlcyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeSxcclxuICBEYXRhU2NoZW1hLFxyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBKb2luRGVzY3JpcHRpb24sXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgVGFibGVJbmZvLFxyXG4gIFZlcmJJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vRGF0YVNvdXJjZVNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIERhdGFTb3VyY2VTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5EYXRhU291cmNlU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWZyZXNoQXN5bmMoZGF0YVNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge1tQYXJhbWV0ZXJJZC5EYXRhU291cmNlSWRdOiBkYXRhU291cmNlSWR9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLlJlZnJlc2hEYXRhU291cmNlLCBwYXJhbWV0ZXJzKS50aGVuPHZvaWQ+KHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QWN0aXZlVGFibGVzQXN5bmMoZGF0YVNvdXJjZUlkOiBzdHJpbmcpOiBQcm9taXNlPFRhYmxlSW5mb1tdPiB7XHJcbiAgICBjb25zdCBqb2luUGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7W1BhcmFtZXRlcklkLkRhdGFTb3VyY2VJZF06IGRhdGFTb3VyY2VJZH07XHJcblxyXG4gICAgLy8gR2V0IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgdGFibGVzIHVzZWQgYnkgdGhpcyBjb25uZWN0aW9uXHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5HZXRKb2luRGVzY3JpcHRpb24sIGpvaW5QYXJhbWV0ZXJzKS50aGVuPFRhYmxlSW5mb1tdPihqb2luUmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCBqb2luRGVzY3JpcHRpb24gPSBqb2luUmVzcG9uc2UucmVzdWx0IGFzIEpvaW5EZXNjcmlwdGlvbjtcclxuXHJcbiAgICAgIC8vIGdldEFjdGl2ZVRhYmxlcyBpcyB1bnN1cHBvcnRlZCBmb3IgY3ViZXMgYW5kIEdBLiBXZSBkbyBub3QgaGF2ZSBhIGNvbm5lY3Rpb24gdHlwZSBwcm9wZXJ0eVxyXG4gICAgICAvLyBhdmFpbGFibGUgZnJvbSB0aGUgcGxhdGZvcm0gKGludGVudGlvbmFsbHksIHRvIHJlZHVjZSBjb2RlIGNodXJuIGFzIG5ldyBjb25uZWN0aW9ucyBhcmUgYWRkZWQpLlxyXG4gICAgICAvLyBJbnN0ZWFkLGp1c3QgY2hlY2sgaWYgYW55IHRhYmxlcyBhcmUgcmV0dXJuZWQuIFRoaXMgYXJyYXkgd2lsbCBiZSBlbXB0eSBmb3IgYW55IG5vbi10YWJsZSBiYXNlZCBkYXRhc291cmNlLlxyXG4gICAgICBpZiAoam9pbkRlc2NyaXB0aW9uLnRhYmxlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmVycm9yKCdnZXRBY3RpdmVUYWJsZXNBc3luYyBpcyB1bnN1cHBvcnRlZCBmb3IgRGF0YVNvdXJjZS4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtFcnJvckNvZGVzLlVuc3VwcG9ydGVkTWV0aG9kRm9yRGF0YVNvdXJjZVR5cGVdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGpvaW5EZXNjcmlwdGlvbi50YWJsZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRhU291cmNlc0FzeW5jKCk6IFByb21pc2U8RGF0YVNjaGVtYT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0RGF0YVNvdXJjZXMsIHt9KS50aGVuPERhdGFTY2hlbWE+KHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgZGF0YVNjaGVtYSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBEYXRhU2NoZW1hO1xyXG4gICAgICByZXR1cm4gZGF0YVNjaGVtYTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENvbm5lY3Rpb25TdW1tYXJpZXNBc3luYyhkYXRhU291cmNlSWQ6IHN0cmluZyk6IFByb21pc2U8Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge1tQYXJhbWV0ZXJJZC5EYXRhU291cmNlSWRdOiBkYXRhU291cmNlSWR9O1xyXG5cclxuICAgIC8vIEdldCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHRhYmxlcyB1c2VkIGJ5IHRoaXMgY29ubmVjdGlvblxyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzLCBwYXJhbXMpLnRoZW48Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVtdPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IGRlc2NyaXB0aW9uU3VtbWFyaWVzID0gcmVzcG9uc2UucmVzdWx0IGFzIENvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnlbXTtcclxuICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uU3VtbWFyaWVzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9EYXRhU291cmNlU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgKiBhcyBJbnRlcm5hbENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tbWFuZEVycm9yLFxyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEZpbHRlclR5cGUsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFBhcmFtLCBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncyBhcyBFeHRlcm5hbEVudW1Db252ZXJ0ZXIgfSBmcm9tICcuLi8uLi9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzJztcclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIGFzIEludGVybmFsRW51bUNvbnZlcnRlciB9IGZyb20gJy4uLy4uL0VudW1NYXBwaW5ncy9JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MnO1xyXG5pbXBvcnQge1xyXG4gIENhdGVnb3JpY2FsRG9tYWluLFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyLFxyXG4gIFJhbmdlRG9tYWluLFxyXG4gIFJhbmdlRmlsdGVyLFxyXG4gIFJlbGF0aXZlRGF0ZUZpbHRlclxyXG59IGZyb20gJy4uLy4uL01vZGVscy9GaWx0ZXJNb2RlbHMnO1xyXG5pbXBvcnQgeyBEYXRhVmFsdWUgfSBmcm9tICcuLi8uLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcblxyXG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vRmlsdGVyU2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VydmljZUltcGwgaW1wbGVtZW50cyBGaWx0ZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIHN0YXRpYyBGSUxURVJfRVJST1I6IHN0cmluZyA9ICdFcnJvciBBcHBseWluZyBGaWx0ZXI6ICUxJztcclxuICBwcml2YXRlIF9kaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXI7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5GaWx0ZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlGaWx0ZXJBc3luYyhcclxuICAgIHZpc3VhbElkOiBWaXN1YWxJZCxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgdmFsdWVzOiBBcnJheTxzdHJpbmc+LFxyXG4gICAgdXBkYXRlVHlwZTogQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSxcclxuICAgIGZpbHRlck9wdGlvbnM6IENvbnRyYWN0LkZpbHRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICBpZiAoIVBhcmFtLmlzVmFsaWRFbnVtVmFsdWU8Q29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZT4odXBkYXRlVHlwZSwgQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSkpIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVZhbHVlKFsnRmlsdGVyVXBkYXRlVHlwZSddKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2ZXJiID0gVmVyYklkLkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXI7XHJcbiAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWx0ZXJWYWx1ZXNdID0gdmFsdWVzO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclVwZGF0ZVR5cGVdID0gdXBkYXRlVHlwZTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5Jc0V4Y2x1ZGVNb2RlXSA9XHJcbiAgICAgICAgKGZpbHRlck9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCBmaWx0ZXJPcHRpb25zLmlzRXhjbHVkZU1vZGUgPT09IHVuZGVmaW5lZCkgPyBmYWxzZSA6IGZpbHRlck9wdGlvbnMuaXNFeGNsdWRlTW9kZTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxzdHJpbmc+KHJlc3BvbnNlID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHJlc3BvbnNlLnJlc3VsdCBhcyBDb21tYW5kRXJyb3I7XHJcbiAgICAgICAgaWYgKCEoZXJyb3IuZXJyb3JDb2RlID09PSBudWxsIHx8IGVycm9yLmVycm9yQ29kZSA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICAgICAgLy8gVE9ETzogY29tZSBiYWNrIGFuZCBpbXBsZW1lbnQgZXJyb3IgaGFuZGxpbmcgbG9naWNcclxuICAgICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoRmlsdGVyU2VydmljZUltcGwuRklMVEVSX0VSUk9SLCBbZXJyb3IuZXJyb3JDb2RlXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlSYW5nZUZpbHRlckFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCwgZmllbGROYW1lOiBzdHJpbmcsIGZpbHRlck9wdGlvbnM6IENvbnRyYWN0LlJhbmdlRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBpZiAoIWZpbHRlck9wdGlvbnMpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5taXNzaW5nUGFyYW1ldGVyKFsnUmFuZ2VGaWx0ZXJPcHRpb25zJ10pO1xyXG4gICAgfVxyXG4gICAgUGFyYW0udmVyaWZ5UmFuZ2VQYXJhbVR5cGUoZmlsdGVyT3B0aW9ucy5taW4sIGZpbHRlck9wdGlvbnMubWF4KTtcclxuXHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkFwcGx5UmFuZ2VGaWx0ZXI7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm1pbikge1xyXG4gICAgICBsZXQgbWluOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1pbiBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBtaW4gPSBQYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5taW4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1pbiA9IGZpbHRlck9wdGlvbnMubWluO1xyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNaW5dID0gbWluO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCkge1xyXG4gICAgICBsZXQgbWF4OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBtYXggPSBQYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5tYXgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1heCA9IGZpbHRlck9wdGlvbnMubWF4O1xyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNYXhdID0gbWF4O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm51bGxPcHRpb24pIHtcclxuICAgICAgaWYgKCFQYXJhbS5pc1ZhbGlkRW51bVZhbHVlPENvbnRyYWN0LkZpbHRlck51bGxPcHRpb24+KGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbiwgQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbikpIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWRQYXJhbVZhbHVlKFsnTnVsbE9wdGlvbiddKTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclJhbmdlTnVsbE9wdGlvbl0gPSBFeHRlcm5hbEVudW1Db252ZXJ0ZXIubnVsbE9wdGlvbnMuY29udmVydChmaWx0ZXJPcHRpb25zLm51bGxPcHRpb24pO1xyXG4gICAgfVxyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48c3RyaW5nPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWVsZE5hbWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckZpbHRlckFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCwgZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgdmVyYiA9IFZlcmJJZC5DbGVhckZpbHRlcjtcclxuICAgIGxldCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxzdHJpbmc+KHJlc3Bvc25lID0+IHtcclxuICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZpbHRlcnNBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPENvbnRyYWN0LkZpbHRlcltdPiB7XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkdldEZpbHRlcnM7XHJcbiAgICBsZXQgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48Q29udHJhY3QuRmlsdGVyW10+KHJlc3BvbnNlID0+IHtcclxuICAgICAgbGV0IGZpbHRlcnMgPSByZXNwb25zZS5yZXN1bHQgYXMgSW50ZXJuYWxDb250cmFjdC5GaWx0ZXJbXTtcclxuICAgICAgcmV0dXJuIHRoaXMuY29udmVydERvbWFpbkZpbHRlcnMoZmlsdGVycyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDYXRlZ29yaWNhbERvbWFpbkFzeW5jKFxyXG4gICAgd29ya3NoZWV0TmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGRJZDogc3RyaW5nLFxyXG4gICAgZG9tYWluVHlwZTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSk6IFByb21pc2U8Q29udHJhY3QuQ2F0ZWdvcmljYWxEb21haW4+IHtcclxuICAgIGlmICghUGFyYW0uaXNWYWxpZEVudW1WYWx1ZTxDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlPihkb21haW5UeXBlLCBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJEb21haW5UeXBlJyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkdldENhdGVnb3JpY2FsRG9tYWluO1xyXG4gICAgbGV0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHtcclxuICAgICAgd29ya3NoZWV0OiB3b3Jrc2hlZXROYW1lXHJcbiAgICB9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZElkXSA9IGZpZWxkSWQ7XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkRvbWFpblR5cGVdID0gZG9tYWluVHlwZTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbj4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBsZXQgZG9tYWluID0gcmVzcG9uc2UucmVzdWx0IGFzIEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxEb21haW47XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRDYXRlZ29yaWNhbERvbWFpbihkb21haW4sIGRvbWFpblR5cGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmFuZ2VEb21haW5Bc3luYyh3b3Jrc2hlZXROYW1lOiBzdHJpbmcsIGZpZWxkSWQ6IHN0cmluZywgZG9tYWluVHlwZTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSk6IFByb21pc2U8Q29udHJhY3QuUmFuZ2VEb21haW4+IHtcclxuICAgIGlmICghUGFyYW0uaXNWYWxpZEVudW1WYWx1ZTxDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlPihkb21haW5UeXBlLCBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJEb21haW5UeXBlJyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkdldFJhbmdlRG9tYWluO1xyXG4gICAgbGV0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHtcclxuICAgICAgd29ya3NoZWV0OiB3b3Jrc2hlZXROYW1lXHJcbiAgICB9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZElkXSA9IGZpZWxkSWQ7XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkRvbWFpblR5cGVdID0gRXh0ZXJuYWxFbnVtQ29udmVydGVyLmZpbHRlckRvbWFpblR5cGUuY29udmVydChkb21haW5UeXBlKTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5SYW5nZURvbWFpbj4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBsZXQgZG9tYWluID0gcmVzcG9uc2UucmVzdWx0IGFzIEludGVybmFsQ29udHJhY3QuUmFuZ2VEb21haW47XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0UmFuZ2VEb21haW4oZG9tYWluLCBkb21haW5UeXBlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIE1ldGhvZHNcclxuICBwcml2YXRlIGNvbnZlcnREb21haW5GaWx0ZXJzKGRvbWFpbkZpbHRlcnM6IEludGVybmFsQ29udHJhY3QuRmlsdGVyW10pOiBDb250cmFjdC5GaWx0ZXJbXSB7XHJcbiAgICBsZXQgZmlsdGVyczogQ29udHJhY3QuRmlsdGVyW10gPSBbXTtcclxuICAgIGRvbWFpbkZpbHRlcnMuZm9yRWFjaChkb21haW5GaWx0ZXIgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGRvbWFpbkZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsOiB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyID0gZG9tYWluRmlsdGVyIGFzIEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxGaWx0ZXI7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBDYXRlZ29yaWNhbCBGaWx0ZXInKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlJhbmdlOiB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyID0gZG9tYWluRmlsdGVyIGFzIEludGVybmFsQ29udHJhY3QuUmFuZ2VGaWx0ZXI7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmNvbnZlcnRSYW5nZUZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSYW5nZSBGaWx0ZXInKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZToge1xyXG4gICAgICAgICAgbGV0IGZpbHRlciA9IGRvbWFpbkZpbHRlciBhcyBJbnRlcm5hbENvbnRyYWN0LlJlbGF0aXZlRGF0ZUZpbHRlcjtcclxuICAgICAgICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSZWxhdGl2ZSBEYXRlIEZpbHRlcicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlcihkb21haW5GaWx0ZXI6IEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxGaWx0ZXIpOiBDb250cmFjdC5DYXRlZ29yaWNhbEZpbHRlciB7XHJcbiAgICBsZXQgYXBwbGllZFZhbHVlczogQ29udHJhY3QuRGF0YVZhbHVlW10gPSBkb21haW5GaWx0ZXIudmFsdWVzLm1hcChkdiA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0YVZhbHVlKGR2LnZhbHVlLCBkdi5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3IENhdGVnb3JpY2FsRmlsdGVyKFxyXG4gICAgICBkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGROYW1lLFxyXG4gICAgICBDb250cmFjdC5GaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLFxyXG4gICAgICBhcHBsaWVkVmFsdWVzLFxyXG4gICAgICBkb21haW5GaWx0ZXIuaXNFeGNsdWRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFJhbmdlRmlsdGVyKGRvbWFpbkZpbHRlcjogSW50ZXJuYWxDb250cmFjdC5SYW5nZUZpbHRlcik6IENvbnRyYWN0LlJhbmdlRmlsdGVyIHtcclxuICAgIGxldCBtaW5WYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIubWluLnZhbHVlLCBkb21haW5GaWx0ZXIubWluLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIGxldCBtYXhWYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIubWF4LnZhbHVlLCBkb21haW5GaWx0ZXIubWF4LmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIHJldHVybiBuZXcgUmFuZ2VGaWx0ZXIoXHJcbiAgICAgIGRvbWFpbkZpbHRlci52aXN1YWxJZC53b3Jrc2hlZXQsXHJcbiAgICAgIGRvbWFpbkZpbHRlci5maWVsZENhcHRpb24sXHJcbiAgICAgIGRvbWFpbkZpbHRlci5maWVsZE5hbWUsXHJcbiAgICAgIENvbnRyYWN0LkZpbHRlclR5cGUuUmFuZ2UsXHJcbiAgICAgIG1pblZhbHVlLFxyXG4gICAgICBtYXhWYWx1ZSxcclxuICAgICAgZG9tYWluRmlsdGVyLmluY2x1ZGVOdWxsVmFsdWVzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0UmVsYXRpdmVEYXRlRmlsdGVyKGRvbWFpbkZpbHRlcjogSW50ZXJuYWxDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIpOiBDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIge1xyXG4gICAgbGV0IGFuY2hvckRhdGVWYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIuYW5jaG9yRGF0ZS52YWx1ZSwgZG9tYWluRmlsdGVyLmFuY2hvckRhdGUuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgcmV0dXJuIG5ldyBSZWxhdGl2ZURhdGVGaWx0ZXIgKFxyXG4gICAgICBkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGROYW1lLFxyXG4gICAgICBDb250cmFjdC5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZSxcclxuICAgICAgYW5jaG9yRGF0ZVZhbHVlLFxyXG4gICAgICBJbnRlcm5hbEVudW1Db252ZXJ0ZXIuZGF0ZVN0ZXBQZXJpb2QuY29udmVydChkb21haW5GaWx0ZXIucGVyaW9kVHlwZSksXHJcbiAgICAgIEludGVybmFsRW51bUNvbnZlcnRlci5kYXRlUmFuZ2VUeXBlLmNvbnZlcnQoZG9tYWluRmlsdGVyLnJhbmdlVHlwZSksXHJcbiAgICAgIGRvbWFpbkZpbHRlci5yYW5nZU5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRDYXRlZ29yaWNhbERvbWFpbihcclxuICAgIGRvbWFpbjogSW50ZXJuYWxDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbixcclxuICAgIGRvbWFpblR5cGU6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpOiBDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbiB7XHJcbiAgICBsZXQgdmFsdWVzOiBEYXRhVmFsdWVbXSA9IGRvbWFpbi52YWx1ZXMubWFwKChkb21haW5EdikgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGFWYWx1ZShkb21haW5Edi52YWx1ZSwgZG9tYWluRHYuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbmV3IENhdGVnb3JpY2FsRG9tYWluKHZhbHVlcywgZG9tYWluVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRSYW5nZURvbWFpbihkb21haW46IEludGVybmFsQ29udHJhY3QuUmFuZ2VEb21haW4sIGRvbWFpblR5cGU6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpOiBDb250cmFjdC5SYW5nZURvbWFpbiB7XHJcbiAgICBsZXQgbWluOiBEYXRhVmFsdWUgPSBuZXcgRGF0YVZhbHVlKGRvbWFpbi5taW4udmFsdWUsIGRvbWFpbi5taW4uZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgbGV0IG1heDogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW4ubWF4LnZhbHVlLCBkb21haW4ubWF4LmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIHJldHVybiBuZXcgUmFuZ2VEb21haW4oXHJcbiAgICAgIG1pbixcclxuICAgICAgbWF4LFxyXG4gICAgICBkb21haW5UeXBlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvRmlsdGVyU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEZpbHRlckRvbWFpblR5cGUgYXMgRXh0ZXJuYWxEb21haW5UeXBlLFxyXG4gIEZpbHRlck51bGxPcHRpb24gYXMgRXh0ZXJuYWxOdWxsT3B0aW9uXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBGaWx0ZXJEb21haW5UeXBlIGFzIEludGVybmFsRG9tYWluVHlwZSxcclxuICBGaWx0ZXJOdWxsT3B0aW9uIGFzIEludGVybmFsTnVsbE9wdGlvblxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBFbnVtQ29udmVydGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOnR5cGVkZWYgLSBEaXNhYmxlIHRoaXMgdG8gbWFrZSBkZWNsYXJpbmcgdGhlc2UgY2xhc3NlcyBhIGJpdCBlYXNpZXIgKi9cclxuLyoqXHJcbiAqIE1hcHMgZW51bXMgdXNlZCBieSB0aGUgZXh0ZXJuYWwtYXBpLWNvbnRyYWN0IHRvIHRoZSBlbnVtcyB1c2VkXHJcbiAqIGluIHRoZSBpbnRlcm5hbC1hcGktY29udHJhY3QsIHdoaWNoIGRldmVsb3BlcnMgY29kZSBhZ2FpbnN0LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncyB7XHJcbiAgcHVibGljIHN0YXRpYyBudWxsT3B0aW9ucyA9IG5ldyBFbnVtQ29udmVydGVyPEV4dGVybmFsTnVsbE9wdGlvbiwgSW50ZXJuYWxOdWxsT3B0aW9uPih7XHJcbiAgICBbRXh0ZXJuYWxOdWxsT3B0aW9uLkFsbFZhbHVlc106IEludGVybmFsTnVsbE9wdGlvbi5BbGxWYWx1ZXMsXHJcbiAgICBbRXh0ZXJuYWxOdWxsT3B0aW9uLk5vbk51bGxWYWx1ZXNdOiBJbnRlcm5hbE51bGxPcHRpb24uTm9uTnVsbFZhbHVlcyxcclxuICAgIFtFeHRlcm5hbE51bGxPcHRpb24uTm9uTnVsbFZhbHVlc106IEludGVybmFsTnVsbE9wdGlvbi5OdWxsVmFsdWVzXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyRG9tYWluVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEV4dGVybmFsRG9tYWluVHlwZSwgSW50ZXJuYWxEb21haW5UeXBlPih7XHJcbiAgICBbRXh0ZXJuYWxEb21haW5UeXBlLlJlbGV2YW50XTogSW50ZXJuYWxEb21haW5UeXBlLlJlbGV2YW50LFxyXG4gICAgW0V4dGVybmFsRG9tYWluVHlwZS5EYXRhYmFzZV06IEludGVybmFsRG9tYWluVHlwZS5EYXRhYmFzZVxyXG4gIH0pO1xyXG59XHJcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL0ZpbHRlclNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnksIFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyIGltcGxlbWVudHMgQ29udHJhY3QuRmlsdGVyIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgX3dvcmtzaGVldE5hbWU6IHN0cmluZyxcclxuICAgIHByb3RlY3RlZCBfZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclR5cGU6IENvbnRyYWN0LkZpbHRlclR5cGUsXHJcbiAgICBwcm90ZWN0ZWQgX2ZpZWxkSWQ6IHN0cmluZykge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXROYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0TmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmllbGROYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGROYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmaWVsZElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyVHlwZSgpOiBDb250cmFjdC5GaWx0ZXJUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZpZWxkQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5GaWVsZD4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcmljYWxGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBDb250cmFjdC5DYXRlZ29yaWNhbEZpbHRlciB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgd29ya3NoZWV0TmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZElkOiBzdHJpbmcsXHJcbiAgICBmaWx0ZXJUeXBlOiBDb250cmFjdC5GaWx0ZXJUeXBlLFxyXG4gICAgcHJpdmF0ZSBfYXBwbGllZFZhbHVlczogQ29udHJhY3QuRGF0YVZhbHVlW10sXHJcbiAgICBwcml2YXRlIF9pc0V4Y2x1ZGVNb2RlOiBib29sZWFuKSB7XHJcbiAgICAgIHN1cGVyKHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmlsdGVyVHlwZSwgZmllbGRJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFwcGxpZWRWYWx1ZXMoKTogQ29udHJhY3QuRGF0YVZhbHVlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwcGxpZWRWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzRXhjbHVkZU1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNFeGNsdWRlTW9kZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREb21haW5Bc3luYyhkb21haW5UeXBlPzogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSk6IFByb21pc2U8Q29udHJhY3QuQ2F0ZWdvcmljYWxEb21haW4+IHtcclxuICAgIGlmICghZG9tYWluVHlwZSkge1xyXG4gICAgICBkb21haW5UeXBlID0gQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZS5SZWxldmFudDtcclxuICAgIH1cclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldENhdGVnb3JpY2FsRG9tYWluQXN5bmModGhpcy5fd29ya3NoZWV0TmFtZSwgdGhpcy5fZmllbGRJZCwgZG9tYWluVHlwZSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBDb250cmFjdC5SYW5nZUZpbHRlciB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgd29ya3NoZWV0TmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZElkOiBzdHJpbmcsXHJcbiAgICBmaWx0ZXJUeXBlOiBDb250cmFjdC5GaWx0ZXJUeXBlLFxyXG4gICAgcHJpdmF0ZSBfbWluOiBDb250cmFjdC5EYXRhVmFsdWUsXHJcbiAgICBwcml2YXRlIF9tYXg6IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX2luY2x1ZGVOdWxsVmFsdWVzOiBib29sZWFuKSB7XHJcbiAgICAgIHN1cGVyKHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmlsdGVyVHlwZSwgZmllbGRJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWluO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBDb250cmFjdC5EYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaW5jbHVkZU51bGxWYWx1ZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faW5jbHVkZU51bGxWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgIGdldERvbWFpbkFzeW5jKGRvbWFpblR5cGU/OiBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKTogUHJvbWlzZTxDb250cmFjdC5SYW5nZURvbWFpbj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgaWYgKCFkb21haW5UeXBlKSB7XHJcbiAgICAgIGRvbWFpblR5cGUgPSBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0UmFuZ2VEb21haW5Bc3luYyh0aGlzLl93b3Jrc2hlZXROYW1lLCB0aGlzLl9maWVsZElkLCBkb21haW5UeXBlKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZURhdGVGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHdvcmtzaGVldE5hbWU6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgZmllbGRJZDogc3RyaW5nLFxyXG4gICAgZmlsdGVyVHlwZTogQ29udHJhY3QuRmlsdGVyVHlwZSxcclxuICAgIHByaXZhdGUgX2FuY2hvckRhdGU6IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX3BlcmlvZFR5cGU6IENvbnRyYWN0LlBlcmlvZFR5cGUsXHJcbiAgICBwcml2YXRlIF9yYW5nZVR5cGU6IENvbnRyYWN0LkRhdGVSYW5nZVR5cGUsXHJcbiAgICBwcml2YXRlIF9yYW5nZU46IG51bWJlcikge1xyXG4gICAgICBzdXBlcih3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpbHRlclR5cGUsIGZpZWxkSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbmNob3JEYXRlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5jaG9yRGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGVyaW9kVHlwZSgpOiBDb250cmFjdC5QZXJpb2RUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9wZXJpb2RUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYW5nZVR5cGUoKTogQ29udHJhY3QuRGF0ZVJhbmdlVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2VUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYW5nZU4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9yYW5nZU47XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcmljYWxEb21haW4gaW1wbGVtZW50cyBDb250cmFjdC5DYXRlZ29yaWNhbERvbWFpbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmFsdWVzOiBDb250cmFjdC5EYXRhVmFsdWVbXSxcclxuICAgIHByaXZhdGUgX2RvbWFpblR5cGU6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmFsdWVzKCk6IENvbnRyYWN0LkRhdGFWYWx1ZVtdIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZG9tYWluVHlwZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYW5nZURvbWFpbiBpbXBsZW1lbnRzIENvbnRyYWN0LlJhbmdlRG9tYWluIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9taW46IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX21heDogQ29udHJhY3QuRGF0YVZhbHVlLFxyXG4gICAgcHJpdmF0ZSBfZG9tYWluVHlwZTogQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZSkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0eXBlKCk6IENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RvbWFpblR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1pbigpOiBDb250cmFjdC5EYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWF4KCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9GaWx0ZXJNb2RlbHMudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZSBpbXBsZW1lbnRzIENvbnRyYWN0LkRhdGFUYWJsZSB7XHJcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kYXRhOiBBcnJheTxBcnJheTxDb250cmFjdC5EYXRhVmFsdWU+PixcclxuICAgIHByaXZhdGUgX2NvbHVtbnM6IEFycmF5PENvbnRyYWN0LkNvbHVtbj4sXHJcbiAgICBwcml2YXRlIF90b3RhbFJvd0NvdW50OiBudW1iZXIsXHJcbiAgICBwcml2YXRlIF9pc1N1bW1hcnlEYXRhOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBfbWFya3NJbmZvPzogQXJyYXk8TWFya0luZm8+KSB7XHJcbiAgICAgICAgLy8gVE9ETzogZ2V0IHJpZCBvZiB0aGlzIGluIHJlZGVzaWduLlxyXG4gICAgICAgIHRoaXMuX25hbWUgPSBfaXNTdW1tYXJ5RGF0YSA/ICdTdW1tYXJ5IERhdGEgVGFibGUnIDogJ1VuZGVybHlpbmcgRGF0YSBUYWJsZSc7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGEoKTogQXJyYXk8QXJyYXk8Q29udHJhY3QuRGF0YVZhbHVlPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKTogQXJyYXk8Q29udHJhY3QuQ29sdW1uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWFya3NJbmZvKCk6IEFycmF5PENvbnRyYWN0Lk1hcmtJbmZvPiB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWFya3NJbmZvO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0b3RhbFJvd0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG90YWxSb3dDb3VudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNTdW1tYXJ5RGF0YSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1N1bW1hcnlEYXRhO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1hcmtJbmZvIGltcGxlbWVudHMgQ29udHJhY3QuTWFya0luZm8ge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3R5cGU6IENvbnRyYWN0Lk1hcmtUeXBlLFxyXG4gICAgcHJpdmF0ZSBfY29sb3I6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX3R1cGxlSWQ/OiBOdW1iZXJcclxuICApIHt9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBDb250cmFjdC5NYXJrVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29sb3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xvcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHVwbGVJZCgpOiBOdW1iZXIgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R1cGxlSWQ7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29sdW1uIGltcGxlbWVudHMgQ29udHJhY3QuQ29sdW1uIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9maWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX2RhdGFUeXBlOiBDb250cmFjdC5EYXRhVHlwZSwgLy8gVE9ETzogdGhpcyBzaG91ZGwgYmUgYW4gZW51bSB0eXBlXHJcbiAgICBwcml2YXRlIF9pc1JlZmVyZW5jZWQ6IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIF9pbmRleDogbnVtYmVyKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogQ29udHJhY3QuRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1JlZmVyZW5jZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNSZWZlcmVuY2VkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpbmRleCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFWYWx1ZSBpbXBsZW1lbnRzIENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueSxcclxuICAgIHByaXZhdGUgX2Zvcm1hdHRlZFZhbHVlOiBzdHJpbmcpIHt9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9HZXREYXRhTW9kZWxzLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBEYXRhVGFibGUgYXMgRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCxcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBIaWdobGlnaHRlZE1hcmtzVGFibGUsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFNlbGVjdGVkTWFya3NUYWJsZSxcclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZCxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQ29sdW1uLCBEYXRhVGFibGUsIERhdGFWYWx1ZSwgTWFya0luZm8gfSBmcm9tICcuLi8uLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcbmltcG9ydCB7IEdldERhdGFTZXJ2aWNlLCBHZXREYXRhVHlwZSB9IGZyb20gJy4uL0dldERhdGFTZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBHZXREYXRhU2VydmljZUltcGwgaW1wbGVtZW50cyBHZXREYXRhU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuR2V0RGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgdmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgZ2V0VHlwZTogR2V0RGF0YVR5cGUsXHJcbiAgICBpZ25vcmVBbGlhc2VzOiBib29sZWFuLFxyXG4gICAgaWdub3JlU2VsZWN0aW9uOiBib29sZWFuLFxyXG4gICAgaW5jbHVkZUFsbENvbHVtbnM6IGJvb2xlYW4sXHJcbiAgICBtYXhSb3dzOiBudW1iZXIpOiBQcm9taXNlPERhdGFUYWJsZT4ge1xyXG4gICAgICAvLyBDcmVhdGUgYWxsIG9mIG91ciBwYXJhbWV0ZXJzXHJcbiAgICAgIGNvbnN0IHZlcmIgPSBnZXRUeXBlID09PSBHZXREYXRhVHlwZS5TdW1tYXJ5ID8gVmVyYklkLkdldERhdGFTdW1tYXJ5RGF0YSA6IFZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YTtcclxuICAgICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JZ25vcmVBbGlhc2VzXSA9IGlnbm9yZUFsaWFzZXM7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuSWdub3JlU2VsZWN0aW9uXSA9IGlnbm9yZVNlbGVjdGlvbjtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JbmNsdWRlQWxsQ29sdW1uc10gPSBpbmNsdWRlQWxsQ29sdW1ucztcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5NYXhSb3dzXSA9IG1heFJvd3M7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48RGF0YVRhYmxlPihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0IGFzIFVuZGVybHlpbmdEYXRhVGFibGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZShyZXNwb25zZURhdGEuZGF0YSwgcmVzcG9uc2VEYXRhLmlzU3VtbWFyeSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHsgW1BhcmFtZXRlcklkLlZpc3VhbElkXTogdmlzdWFsSWQgfTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkdldFNlbGVjdGVkTWFya3MsIHBhcmFtZXRlcnMpLnRoZW48Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBTZWxlY3RlZE1hcmtzVGFibGU7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLmRhdGEubWFwKHRhYmxlID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZSh0YWJsZSwgdHJ1ZSkpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0geyBbUGFyYW1ldGVySWQuVmlzdWFsSWRdOiB2aXN1YWxJZCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0SGlnaGxpZ2h0ZWRNYXJrcywgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+KHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0IGFzIEhpZ2hsaWdodGVkTWFya3NUYWJsZTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRhOiByZXNwb25zZURhdGEuZGF0YS5tYXAodGFibGUgPT4gdGhpcy5wcm9jZXNzUmVzdWx0c1RhYmxlKHRhYmxlLCB0cnVlKSlcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFTb3VyY2VEYXRhQXN5bmMoXHJcbiAgICBkYXRhU291cmNlSWQ6IHN0cmluZyxcclxuICAgIGlnbm9yZUFsaWFzZXM6IGJvb2xlYW4sXHJcbiAgICBtYXhSb3dzOiBudW1iZXIsXHJcbiAgICBjb2x1bW5zVG9JbmNsdWRlOiBBcnJheTxzdHJpbmc+KTogUHJvbWlzZTxEYXRhVGFibGU+IHtcclxuICAgICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7XHJcbiAgICAgICAgW1BhcmFtZXRlcklkLkRhdGFTb3VyY2VJZF06IGRhdGFTb3VyY2VJZCxcclxuICAgICAgICBbUGFyYW1ldGVySWQuSWdub3JlQWxpYXNlc106IGlnbm9yZUFsaWFzZXMsXHJcbiAgICAgICAgW1BhcmFtZXRlcklkLk1heFJvd3NdOiBtYXhSb3dzLFxyXG4gICAgICAgIFtQYXJhbWV0ZXJJZC5Db2x1bW5zVG9JbmNsdWRlXTogY29sdW1uc1RvSW5jbHVkZSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkdldERhdGFTb3VyY2VEYXRhLCBwYXJhbWV0ZXJzKS50aGVuPERhdGFUYWJsZT4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBVbmRlcmx5aW5nRGF0YVRhYmxlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NSZXN1bHRzVGFibGUocmVzcG9uc2VEYXRhLmRhdGEsIGZhbHNlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcm9jZXNzUmVzdWx0c1RhYmxlKHJlc3BvbnNlRGF0YTogRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCwgaXNTdW1tYXJ5OiBib29sZWFuKTogRGF0YVRhYmxlIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZURhdGEuaGVhZGVycy5tYXAoaCA9PiBuZXcgQ29sdW1uKGguZmllbGRDYXB0aW9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250cmFjdC5EYXRhVHlwZS5TdHJpbmcgLypoLkRhdGFUeXBlKi8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGguaXNSZWZlcmVuY2VkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLmluZGV4KSk7XHJcbiAgICAvLyBUT0RPIFRoaXMgc2hvdWxkIGJlIGNvbnRyb2xsZWQgYnkgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGlzIGFwaSB3aWxsIHJlc3BvbmQgbWFya3MgaW5mbyBvciBub3RcclxuICAgIGxldCBtYXJrcztcclxuICAgIGlmIChyZXNwb25zZURhdGEubWFya3MpIHtcclxuICAgICAgbWFya3MgPSByZXNwb25zZURhdGEubWFya3MubWFwKGggPT4gbmV3IE1hcmtJbmZvKGgudHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoLmNvbG9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgudHVwbGVJZCkpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGFibGUgPSByZXNwb25zZURhdGEuZGF0YVRhYmxlLm1hcChyb3cgPT4ge1xyXG4gICAgICByZXR1cm4gcm93Lm1hcChjZWxsID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IERhdGFWYWx1ZShjZWxsLnZhbHVlLCBjZWxsLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAobWFya3MpIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRhVGFibGUodGFibGUsIGhlYWRlcnMsIHRhYmxlLmxlbmd0aCwgaXNTdW1tYXJ5LCBtYXJrcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3IERhdGFUYWJsZSh0YWJsZSwgaGVhZGVycywgdGFibGUubGVuZ3RoLCBpc1N1bW1hcnkpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvR2V0RGF0YVNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHsgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLCBNb2RlbCwgTm90aWZpY2F0aW9uLCBOb3RpZmljYXRpb25JZCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlLCBVbnJlZ2lzdGVyRm4gfSBmcm9tICcuLi9Ob3RpZmljYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmNsYXNzIFJlZ2lzdHJhdGlvbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmlsdGVyRm46IChub3RpZmljYXRpb25Nb2RlbDogTW9kZWwpID0+IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIF9jYWxsYmFja0ZuOiAobm90aWZpY2F0aW9uTW9kZWw6IE1vZGVsKSA9PiB2b2lkKSB7XHJcbiAgICAgIC8vIE5vdGhpbmcgSGVyZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbk1vZGVsOiBNb2RlbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2ZpbHRlckZuKG5vdGlmaWNhdGlvbk1vZGVsKSkge1xyXG4gICAgICB0aGlzLl9jYWxsYmFja0ZuKG5vdGlmaWNhdGlvbk1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2hhbmRsZXJzOiB7IFtub3RpZmljYXRpb25JZDogc3RyaW5nXTogQXJyYXk8UmVnaXN0cmF0aW9uPiB9O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzID0ge307XHJcbiAgICB0aGlzLmRpc3BhdGNoZXIucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKHRoaXMub25Ob3RpZmljYXRpb24uYmluZCh0aGlzKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNlcnZpY2VOYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3RlckhhbmRsZXIoaWQ6IE5vdGlmaWNhdGlvbklkLCBmaWx0ZXJGbjogKG1vZGVsOiBNb2RlbCkgPT4gYm9vbGVhbiwgaGFuZGxlcjogKG1vZGVsOiBNb2RlbCkgPT4gdm9pZCk6IFVucmVnaXN0ZXJGbiB7XHJcbiAgICBjb25zdCBoYW5kbGVycyA9IHRoaXMuX2hhbmRsZXJzW2lkXSB8fCBuZXcgQXJyYXk8UmVnaXN0cmF0aW9uPigpO1xyXG4gICAgY29uc3QgcmVnaXN0cmF0aW9uID0gbmV3IFJlZ2lzdHJhdGlvbihmaWx0ZXJGbiwgaGFuZGxlcik7XHJcbiAgICBoYW5kbGVycy5wdXNoKHJlZ2lzdHJhdGlvbik7XHJcbiAgICB0aGlzLl9oYW5kbGVyc1tpZF0gPSBoYW5kbGVycztcclxuICAgIHJldHVybiAoKSA9PiB0aGlzLnJlbW92ZVJlZ2lzdHJhdGlvbihpZCwgcmVnaXN0cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSGFuZGxlcnNGb3JOb3RpZmljYXRpb25UeXBlKGlkOiBOb3RpZmljYXRpb25JZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLmhhc093blByb3BlcnR5KGlkKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNIYW5kbGVyc0Zvck5vdGlmaWNhdGlvblR5cGUobm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbklkKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gR28gdGhyb3VnaCBhbmQgY2hlY2sgZm9yIGFsbCB0aGUgaGFuZGxlcnMgb2YgdGhpcyBwYXJ0aWN1bGFyIG5vdGlmaWNhdGlvblxyXG4gICAgdGhpcy5faGFuZGxlcnNbbm90aWZpY2F0aW9uLm5vdGlmaWNhdGlvbklkXS5mb3JFYWNoKGggPT4gaC5vbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZGF0YSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVSZWdpc3RyYXRpb24oaWQ6IE5vdGlmaWNhdGlvbklkLCByZWdpc3RyYXRpb246IFJlZ2lzdHJhdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmhhc0hhbmRsZXJzRm9yTm90aWZpY2F0aW9uVHlwZShpZCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2hhbmRsZXJzW2lkXSA9IHRoaXMuX2hhbmRsZXJzW2lkXS5maWx0ZXIocmVnID0+IHJlZyAhPT0gcmVnaXN0cmF0aW9uKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgTW9kZWwsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgUGFyYW1ldGVySW5mbyxcclxuICBTaGVldFBhdGgsXHJcbiAgVmVyYklkLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySW1wbCB9IGZyb20gJy4uLy4uL0ltcGwvUGFyYW1ldGVySW1wbCc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uL1BhcmFtZXRlcic7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vUGFyYW1ldGVyc1NlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlcnNTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFBhcmFtZXRlcnNTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyhzaGVldFBhdGg6IFNoZWV0UGF0aCwgc2hlZXQ6IENvbnRyYWN0LlNoZWV0KTogUHJvbWlzZTxBcnJheTxQYXJhbWV0ZXI+PiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0ge1xyXG4gICAgICBbUGFyYW1ldGVySWQuU2hlZXRQYXRoXTogc2hlZXRQYXRoXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0UGFyYW1ldGVyc0ZvclNoZWV0LCBwYXJhbWV0ZXJzKS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gVE9ETyAtIENoZWNrIGZvciBlcnJvclxyXG5cclxuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0IGFzIEFycmF5PFBhcmFtZXRlckluZm8+O1xyXG4gICAgICByZXR1cm4gcmVzdWx0Lm1hcChwYXJhbWV0ZXJJbmZvID0+IHtcclxuICAgICAgICBjb25zdCBpbXBsID0gbmV3IFBhcmFtZXRlckltcGwocGFyYW1ldGVySW5mbyk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXIoaW1wbCwgc2hlZXQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVBhcmFtZXRlclZhbHVlQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFBhcmFtZXRlckluZm8+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWVdOiBmaWVsZE5hbWUsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJWYWx1ZV06IG5ld1ZhbHVlXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuQ2hhbmdlUGFyYW1ldGVyVmFsdWUsIHBhcmFtZXRlcnMpLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQgYXMgUGFyYW1ldGVySW5mbztcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhuYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kUGFyYW1ldGVyQXN5bmMoc2hlZXQsIG5hbWUsIHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmluZFBhcmFtZXRlckJ5R2xvYmFsRmllbGROYW1lQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kUGFyYW1ldGVyQXN5bmMoc2hlZXQsIHVuZGVmaW5lZCwgZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFBhcmFtZXRlckFzeW5jKFxyXG4gICAgc2hlZXQ6IENvbnRyYWN0LlNoZWV0LFxyXG4gICAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBQcm9taXNlPFBhcmFtZXRlciB8IHVuZGVmaW5lZD4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgIGlmIChuYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJDYXB0aW9uXSA9IG5hbWU7XHJcbiAgICB9IGVsc2UgaWYgKGZpZWxkTmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuUGFyYW1ldGVyRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24ubWlzc2luZ1BhcmFtZXRlcihbJ2ZpZWxkIG5hbWUgb3IgY2FwdGlvbiddKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkZpbmRQYXJhbWV0ZXIsIHBhcmFtZXRlcnMpLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCBpbnN0YW5jZU9mUGFyYW1ldGVySW5mbyA9IChvYmplY3Q6IE1vZGVsKTogb2JqZWN0IGlzIFBhcmFtZXRlckluZm8gPT4ge1xyXG4gICAgICAgIHJldHVybiAnZmllbGROYW1lJyBpbiBvYmplY3Q7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIHRvIHNlZSBpZiB3ZSBnb3QgYSB2YWxpZCByZXNwb25zZSBiYWNrIGFnYWluXHJcbiAgICAgIGlmIChpbnN0YW5jZU9mUGFyYW1ldGVySW5mbyhyZXNwb25zZS5yZXN1bHQpKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0IGFzIFBhcmFtZXRlckluZm87XHJcbiAgICAgICAgY29uc3QgaW1wbCA9IG5ldyBQYXJhbWV0ZXJJbXBsKHJlc3VsdCk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXIoaW1wbCwgc2hlZXQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uSWQsIFBhcmFtZXRlckluZm8gfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBQYXJhbSB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgfSBmcm9tICcuLi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vRXZlbnRzL1BhcmFtZXRlckNoYW5nZWRFdmVudCc7XHJcbmltcG9ydCB7IERhdGFWYWx1ZSB9IGZyb20gJy4uL01vZGVscy9HZXREYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL05vdGlmaWNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1BhcmFtZXRlcnNTZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXIgfSBmcm9tICcuLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXJJbXBsIH0gZnJvbSAnLi9TaW5nbGVFdmVudE1hbmFnZXJJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJJbXBsIHtcclxuICBwcml2YXRlIF9hbGxvd2FibGVWYWx1ZXM6IENvbnRyYWN0LlBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uO1xyXG4gIHByaXZhdGUgX2dsb2JhbEZpZWxkTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3BhcmFtZXRlckluZm86IFBhcmFtZXRlckluZm87XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJJbmZvOiBQYXJhbWV0ZXJJbmZvKSB7XHJcbiAgICB0aGlzLnNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJJbmZvLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBEYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRhVmFsdWUodGhpcy5fcGFyYW1ldGVySW5mby5jdXJyZW50VmFsdWUudmFsdWUsIHRoaXMuX3BhcmFtZXRlckluZm8uY3VycmVudFZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogQ29udHJhY3QuRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRhVHlwZS5jb252ZXJ0KHRoaXMuX3BhcmFtZXRlckluZm8uZGF0YVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2dsb2JhbEZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxsb3dhYmxlVmFsdWVzKCk6IENvbnRyYWN0LlBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGxvd2FibGVWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVmFsdWVBc3luYyhuZXdWYWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUpOiBQcm9taXNlPERhdGFWYWx1ZT4ge1xyXG4gICAgbGV0IGNvZXJjZWRWYWx1ZSA9IFBhcmFtLnNlcmlhbGl6ZVBhcmFtdGVyVmFsdWUobmV3VmFsdWUpO1xyXG4gICAgY29uc3QgcGFyYW1ldGVyc1NlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxQYXJhbWV0ZXJzU2VydmljZT4oU2VydmljZU5hbWVzLlBhcmFtZXRlcnMpO1xyXG4gICAgcmV0dXJuIHBhcmFtZXRlcnNTZXJ2aWNlLmNoYW5nZVBhcmFtZXRlclZhbHVlQXN5bmModGhpcy5fZ2xvYmFsRmllbGROYW1lLCBjb2VyY2VkVmFsdWUpLnRoZW4ocGFyYW1ldGVySW5mbyA9PiB7XHJcbiAgICAgIHRoaXMuc2V0UGFyYW1ldGVySW5mbyhwYXJhbWV0ZXJJbmZvKTtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIZWxwZXIgbWV0aG9kIHdoaWNoIGdvZXMgdGhyb3VnaCBhbmQgcmVnaXN0ZXJzIGVhY2ggZXZlbnQgdHlwZSB0aGlzIGltcGwga25vd3MgYWJvdXRcclxuICAgKiB3aXRoIHRoZSBOb3RpZmljYXRpb25TZXJ2aWNlLiBJdCByZXR1cm5zIGFuIGFycmF5IG9mIFNpbmdsZUV2ZW50TWFuYWdlciBvYmplY3RzIHdoaWNoXHJcbiAgICogY2FuIHRoZW4gYmUgcGFzc2VkIHRvIGFuIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIHRvIGhhbmRsZSB1c2VyIHJlZ2lzdHJhdGlvbiAvIHVucmVnaXN0cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNoZWV0IFRoZSBzaGVldCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoZSBldmVudCBub3RpZmljYXRpb25zXHJcbiAgICogQHJldHVybnMge0FycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj59IENvbGxlY3Rpb24gb2YgZXZlbnQgbWFuYWdlcnMgdG8gcGFzcyB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0aWFsaXplRXZlbnRzKHNoZWV0OiBDb250cmFjdC5TaGVldCk6IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4ge1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IG5ldyBBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+KCk7XHJcbiAgICBsZXQgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBub3RpZmljYXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8Tm90aWZpY2F0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBzZXJ2aWNlIHJlZ2lzdGVyZWQsIGp1c3QgcmV0dXJuXHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcclxuICAgIGNvbnN0IHBhcmFtZXRlckV2ZW50ID0gbmV3IFNpbmdsZUV2ZW50TWFuYWdlckltcGw8UGFyYW1ldGVyQ2hhbmdlZEV2ZW50PihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLlBhcmFtZXRlckNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuUGFyYW1ldGVyQ2hhbmdlZCwgKG1vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IG1vZGVsIGFzIHN0cmluZztcclxuICAgICAgcmV0dXJuIGZpZWxkTmFtZSA9PT0gdGhpcy5fZ2xvYmFsRmllbGROYW1lO1xyXG4gICAgfSwgKGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHBhcmFtZXRlckV2ZW50LnRyaWdnZXJFdmVudCgoKSA9PiBuZXcgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50KGZpZWxkTmFtZSwgc2hlZXQpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlc3VsdHMucHVzaChwYXJhbWV0ZXJFdmVudCk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbzogUGFyYW1ldGVySW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFyYW1ldGVySW5mbyA9IHBhcmFtZXRlckluZm87XHJcbiAgICB0aGlzLl9nbG9iYWxGaWVsZE5hbWUgPSBwYXJhbWV0ZXJJbmZvLmZpZWxkTmFtZTtcclxuXHJcbiAgICBjb25zdCB0eXBlID0gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFsbG93YWJsZVZhbHVlcy5jb252ZXJ0KHBhcmFtZXRlckluZm8uYWxsb3dhYmxlVmFsdWVzVHlwZSk7XHJcbiAgICBsZXQgbGlzdFZhbHVlczogQXJyYXk8RGF0YVZhbHVlPiB8IHVuZGVmaW5lZDtcclxuICAgIGxldCBtaW5WYWx1ZTogRGF0YVZhbHVlIHwgdW5kZWZpbmVkO1xyXG4gICAgbGV0IG1heFZhbHVlOiBEYXRhVmFsdWUgfCB1bmRlZmluZWQ7XHJcbiAgICBsZXQgc3RlcFNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIGxldCBkYXRlU3RlcFBlcmlvZDogQ29udHJhY3QuUGVyaW9kVHlwZSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAodHlwZSA9PT0gQ29udHJhY3QuUGFyYW1ldGVyVmFsdWVUeXBlLkxpc3QpIHtcclxuICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1ldGVySW5mby5hbGxvd2FibGVWYWx1ZXMgfHwgW107XHJcbiAgICAgIGxpc3RWYWx1ZXMgPSB2YWx1ZXMubWFwKHZhbCA9PiBuZXcgRGF0YVZhbHVlKHZhbC52YWx1ZSwgdmFsLmZvcm1hdHRlZFZhbHVlKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IENvbnRyYWN0LlBhcmFtZXRlclZhbHVlVHlwZS5SYW5nZSkge1xyXG4gICAgICBtaW5WYWx1ZSA9IHBhcmFtZXRlckluZm8ubWluVmFsdWUgJiYgbmV3IERhdGFWYWx1ZShwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLnZhbHVlLCBwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgICAgbWF4VmFsdWUgPSBwYXJhbWV0ZXJJbmZvLm1heFZhbHVlICYmIG5ldyBEYXRhVmFsdWUocGFyYW1ldGVySW5mby5tYXhWYWx1ZS52YWx1ZSwgcGFyYW1ldGVySW5mby5tYXhWYWx1ZS5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICAgIHN0ZXBTaXplID0gcGFyYW1ldGVySW5mby5zdGVwU2l6ZTtcclxuICAgICAgZGF0ZVN0ZXBQZXJpb2QgPSBwYXJhbWV0ZXJJbmZvLmRhdGVTdGVwUGVyaW9kICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGVTdGVwUGVyaW9kLmNvbnZlcnQocGFyYW1ldGVySW5mby5kYXRlU3RlcFBlcmlvZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYWxsb3dhYmxlVmFsdWVzID0ge1xyXG4gICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICBhbGxvd2FibGVWYWx1ZXM6IGxpc3RWYWx1ZXMsXHJcbiAgICAgIG1pblZhbHVlOiBtaW5WYWx1ZSxcclxuICAgICAgbWF4VmFsdWU6IG1heFZhbHVlLFxyXG4gICAgICBzdGVwU2l6ZTogc3RlcFNpemUsXHJcbiAgICAgIGRhdGVTdGVwUGVyaW9kOiBkYXRlU3RlcFBlcmlvZFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbXBsL1BhcmFtZXRlckltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9QYXJhbWV0ZXJzU2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSwgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuaW1wb3J0IHsgVGFibGVhdVNoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVTaGVldEV2ZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBUYWJsZWF1U2hlZXRFdmVudCBpbXBsZW1lbnRzIENvbnRyYWN0LlBhcmFtZXRlckNoYW5nZWRFdmVudCB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgUEFSQU1fTk9UX0ZPVU5EOiBzdHJpbmcgPSAnVW5hYmxlIHRvIGZpbmQgcGFyYW1ldGVyJztcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZ2xvYmFsRmllbGROYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCkge1xyXG4gICAgc3VwZXIoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5QYXJhbWV0ZXJDaGFuZ2VkLCBzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5QYXJhbWV0ZXI+IHtcclxuICAgIC8vIENhbGwgZG93biB0byBvdXIgc2VydmljZSB0byBnZXQgdGhlIHBhcmFtZXRlciBiYWNrIHZpYSBpdHMgZmllbGQgbmFtZVxyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFBhcmFtZXRlcnNTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycyk7XHJcbiAgICByZXR1cm4gc2VydmljZS5maW5kUGFyYW1ldGVyQnlHbG9iYWxGaWVsZE5hbWVBc3luYyh0aGlzLl9nbG9iYWxGaWVsZE5hbWUsIHRoaXMuc2hlZXQpLnRoZW4ocGFyYW1ldGVyID0+IHtcclxuICAgICAgaWYgKHBhcmFtZXRlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQuUEFSQU1fTk9UX0ZPVU5EKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHBhcmFtZXRlcjtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRXZlbnRMaXN0ZW5lck1hbmFnZXIgfSBmcm9tICcuL0V2ZW50TGlzdGVuZXJNYW5hZ2VyJztcclxuaW1wb3J0IHsgUGFyYW1ldGVySW1wbCB9IGZyb20gJy4vSW1wbC9QYXJhbWV0ZXJJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUGFyYW1ldGVyIGNvbnRyYWN0LiBDYWxscyBkb3duIHRvIHRoZSBpbXBsXHJcbiAqIGNsYXNzIGZvciBhbG1vc3QgYWxsIG9mIHRoZSB3b3JrIGl0IGRvZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgRXZlbnRMaXN0ZW5lck1hbmFnZXIgaW1wbGVtZW50cyBDb250cmFjdC5QYXJhbWV0ZXIge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmFtZXRlckltcGw6IFBhcmFtZXRlckltcGwsIHNoZWV0OiBDb250cmFjdC5TaGVldCkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIG91ciBldmVudCBoYW5kbGluZyBmb3IgdGhpcyBjbGFzc1xyXG4gICAgdGhpcy5wYXJhbWV0ZXJJbXBsLmluaXRpYWxpemVFdmVudHMoc2hlZXQpLmZvckVhY2goZSA9PiB0aGlzLmFkZE5ld0V2ZW50VHlwZShlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFZhbHVlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmN1cnJlbnRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogQ29udHJhY3QuRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5kYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxsb3dhYmxlVmFsdWVzKCk6IENvbnRyYWN0LlBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuYWxsb3dhYmxlVmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VWYWx1ZUFzeW5jKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSk6IFByb21pc2U8Q29udHJhY3QuRGF0YVZhbHVlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmNoYW5nZVZhbHVlQXN5bmMobmV3VmFsdWUpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1BhcmFtZXRlci50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLFxyXG4gIFNlbGVjdGlvblVwZGF0ZVR5cGUgYXMgU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5pbXBvcnQgeyBEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbCxcclxuICBIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbCxcclxuICBSYW5nZVNlbGVjdGlvbk1vZGVsLFxyXG4gIFNlbGVjdGlvbk1vZGVsc0NvbnRhaW5lcixcclxuICBUdXBsZVNlbGVjdGlvbk1vZGVsLFxyXG4gIFZhbHVlU2VsZWN0aW9uTW9kZWxcclxufSBmcm9tICcuLi8uLi9Nb2RlbHMvU2VsZWN0aW9uTW9kZWxzJztcclxuaW1wb3J0IHsgU2VsZWN0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlbGVjdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvblNlcnZpY2VJbXBsIGltcGxlbWVudHMgU2VsZWN0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuU2VsZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIGNsZWFyIGFsbCB0aGUgc2VsZWN0ZWQgbWFya3MgZm9yIHRoZSBnaXZlbiB3b3Jrc2hlZXQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdmlzdWFsSWRcclxuICAgKi9cclxuICBwdWJsaWMgY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHtbUGFyYW1ldGVySWQuVmlzdWFsSWRdOiB2aXN1YWxJZH07XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5DbGVhclNlbGVjdGVkTWFya3MsIHBhcmFtZXRlcnMpLnRoZW48dm9pZD4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICByZXR1cm4gOyAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gc2VsZWN0IG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZpc3VhbElkXHJcbiAgICogQHBhcmFtIHNlbGVjdGlvbkNyaXRlcmlhXHJcbiAgICogQHBhcmFtIHNlbGVjdGlvblVwZGF0ZVR5cGVcclxuICAgKi9cclxuICBwdWJsaWMgc2VsZWN0TWFya3NCeVZhbHVlQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Dcml0ZXJpYXM6IEFycmF5PENvbnRyYWN0LlNlbGVjdGlvbkNyaXRlcmlhPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHNlbGVjdGlvbkNyaXRlcmlhcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pbnZhbGlkKFsnU2VsZWN0aW9uIGNyaXRlcmlhJywgJ1NlbGVjdGlvbnMgbWlzc2luZy4nXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0aW9uVHlwZTogc3RyaW5nID0gdGhpcy52YWxpZGF0ZVNlbGVjdGlvblVwZGF0ZVR5cGUoc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgICBsZXQgc2VsZWN0aW9uQ3JpdGVyaWFUeXBlOiBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUgPSB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uQ3JpdGVyaWEoc2VsZWN0aW9uQ3JpdGVyaWFzWzBdKTtcclxuICAgIGxldCBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjogU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyID0gdGhpcy5wYXJzZVNlbGVjdGlvbk1hcmtzKHNlbGVjdGlvbkNyaXRlcmlhcywgc2VsZWN0aW9uQ3JpdGVyaWFUeXBlKTtcclxuXHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHtcclxuICAgICAgW1BhcmFtZXRlcklkLlZpc3VhbElkXTogdmlzdWFsSWQsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5TZWxlY3Rpb25VcGRhdGVUeXBlXTogc2VsZWN0aW9uVHlwZVxyXG4gICAgfTtcclxuXHJcbiAgICBzd2l0Y2ggKHNlbGVjdGlvbkNyaXRlcmlhVHlwZSkge1xyXG4gICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5IaWVyYXJjaGljYWxUeXBlOiB7XHJcbiAgICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzXSA9IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLmhpZXJNb2RlbEFycjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5SYW5nZVR5cGU6IHtcclxuICAgICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlF1YW50UmFuZ2VTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIucXVhbnRNb2RlbEFycjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5EaW1lbnNpb25UeXBlOiB7XHJcbiAgICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuZGltTW9kZWxBcnI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLlNlbGVjdEJ5VmFsdWUsIHBhcmFtZXRlcnMpLnRoZW48dm9pZD4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxyXG4gICAgICByZXR1cm47XHJcbiAgICAgIC8vIFRPRE8gSW52ZXN0aWdhdGUgdGhlIGVycm9yIHJlc3BvbnNlIHdpdGggbXVsdGlwbGUgb3V0cHV0IHBhcmFtcyBhbmQgdGhyb3cgZXJyb3IgYWNjb3JkaW5nbHkuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICogTWV0aG9kIHRvIHNlbGVjdCBtYXJrcyBmb3IgdGhlIGdpdmVuIHdvcmtzaGVldC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB2aXN1YWxJZFxyXG4gICAqIEBwYXJhbSBNYXJrSW5mb1xyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlJZEFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3M6IEFycmF5PENvbnRyYWN0Lk1hcmtJbmZvPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKG1hcmtzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWQoWydTZWxlY3Rpb24nLCAnTWFya3MgaW5mbyBtaXNzaW5nLiddKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZShzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICAgIGxldCBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjogU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyID0gdGhpcy5wYXJzZVNlbGVjdGlvbklkcyhtYXJrcyk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7XHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5WaXN1YWxJZF06IHZpc3VhbElkLFxyXG4gICAgICBbUGFyYW1ldGVySWQuU2VsZWN0aW9uVXBkYXRlVHlwZV06IHNlbGVjdGlvblR5cGUsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5TZWxlY3Rpb25dOiBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5zZWxlY3Rpb25cclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5TZWxlY3RCeVZhbHVlLCBwYXJhbWV0ZXJzKS50aGVuPHZvaWQ+KHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gRXhwZWN0aW5nIGFuIGVtcHR5IG1vZGVsIGFuZCBoZW5jZSB0aGUgdm9pZCByZXNwb25zZS5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgICAvLyBUT0RPIEludmVzdGlnYXRlIHRoZSBlcnJvciByZXNwb25zZSB3aXRoIG11bHRpcGxlIG91dHB1dCBwYXJhbXMgYW5kIHRocm93IGVycm9yIGFjY29yZGluZ2x5LlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gcHJlcGFyZSB0aGUgcHJlcyBtb2RlbHMgZm9yIHNlbGVjdGlvbiBieSBNYXJrc0luZm9cclxuICAgKiBAcGFyYW0gbWFya3NcclxuICAgKi9cclxuICBwcml2YXRlIHBhcnNlU2VsZWN0aW9uSWRzKG1hcmtzOiBBcnJheTxDb250cmFjdC5NYXJrSW5mbz4pOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIge1xyXG4gICAgbGV0IGlkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gICAgbGV0IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcmtzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCB0dXBsZUlkOiBOdW1iZXIgfCB1bmRlZmluZWQgID0gbWFya3NbaV0udHVwbGVJZDtcclxuICAgICAgaWYgKHR1cGxlSWQgIT09IHVuZGVmaW5lZCAmJiB0dXBsZUlkICE9PSBudWxsKSB7IC8vIElmIHR1cGxlIGlkIGlzIHByb3ZpZGVkIHVzZSB0aGF0IGluc3RlYWQgb2YgcGFpclxyXG4gICAgICAgICBpZHMucHVzaCh0dXBsZUlkLnRvU3RyaW5nKCkpOyAvLyBjb2xsZWN0IHRoZSB0dXBsZSBpZHNcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWQoWyd0dXBsZUlkJ10pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoaWRzLmxlbmd0aCAhPT0gMCkgeyAvLyB0dXBsZSBpZHMgYmFzZWQgc2VsZWN0aW9uXHJcbiAgICAgIGxldCB0dXBsZVNlbGVjdGlvbk1vZGVsOiBUdXBsZVNlbGVjdGlvbk1vZGVsID0gbmV3IFR1cGxlU2VsZWN0aW9uTW9kZWwoKTtcclxuICAgICAgdHVwbGVTZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb25UeXBlID0gJ3R1cGxlcyc7XHJcbiAgICAgIHR1cGxlU2VsZWN0aW9uTW9kZWwub2JqZWN0SWRzID0gaWRzO1xyXG4gICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5zZWxlY3Rpb24gPSB0dXBsZVNlbGVjdGlvbk1vZGVsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gcHJlcGFyZSB0aGUgcHJlcyBtb2RlbHMgZm9yIHNlbGVjdGlvbiBieSB2YWx1ZXMuXHJcbiAgICpcclxuICAgKiBTdXBwb3J0cyAzIHR5cGVzIGZvciBzZWxlY3Rpb246XHJcbiAgICogMSkgaGllcmFyY2hpY2FsIHZhbHVlIGJhc2VkIHNlbGVjdGlvblxyXG4gICAqIDIpIHJhbmdlIHZhbHVlIGJhc2VkIHNlbGVjdGlvblxyXG4gICAqIDMpIERpbWVuc2lvbiB2YWx1ZSBiYXNlZCBzZWxlY3Rpb25cclxuICAgKlxyXG4gICAqIEBwYXJhbSBtYXJrc1xyXG4gICAqIEBwYXJhbSBoaWVyTW9kZWxBcnJcclxuICAgKiBAcGFyYW0gZGltTW9kZWxBcnJcclxuICAgKiBAcGFyYW0gcXVhbnRNb2RlbEFyclxyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIHBhcnNlU2VsZWN0aW9uTWFya3Moc2VsZWN0aW9uQ3JpdGVyaWFzOiBBcnJheTxDb250cmFjdC5TZWxlY3Rpb25Dcml0ZXJpYT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvbkNyaXRlcmlhVHlwZSk6IFNlbGVjdGlvbk1vZGVsc0NvbnRhaW5lciB7XHJcbiAgICBsZXQgc2VsZWN0aW9uTW9kZWxDb250YWluZXI6IFNlbGVjdGlvbk1vZGVsc0NvbnRhaW5lciA9IG5ldyBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIoKTtcclxuICAgIGxldCBtaXhlZFNlbGVjdGlvbnNFcnJvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0aW9uQ3JpdGVyaWFzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0ID0gc2VsZWN0aW9uQ3JpdGVyaWFzW2ldO1xyXG4gICAgICBpZiAoc3QuZmllbGROYW1lICYmIChzdC52YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHN0LnZhbHVlICE9PSBudWxsKSkge1xyXG4gICAgICAgIGxldCBjYXRSZWdleCA9IG5ldyBSZWdFeHAoJyhcXFtbQS1aYS16MC05XStdKS4qJywgJ2cnKTtcclxuICAgICAgICBsZXQgcmFuZ2VPcHRpb246IENvbnRyYWN0LlJhbmdlVmFsdWUgPSBzdC52YWx1ZSBhcyBDb250cmFjdC5SYW5nZVZhbHVlO1xyXG4gICAgICAgIGlmIChjYXRSZWdleC50ZXN0KHN0LmZpZWxkTmFtZSkpIHsgLy8gSGllcmFyY2hpY2FsIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgICAgaWYgKHNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5IaWVyYXJjaGljYWxUeXBlKSB7XHJcbiAgICAgICAgICAgIGxldCBoaWVyTW9kZWw6IEhpZXJhcmNoaWNhbFNlbGVjdGlvbk1vZGVsID0gPEhpZXJhcmNoaWNhbFNlbGVjdGlvbk1vZGVsPiB0aGlzLmFkZFRvUGFyYW1zTGlzdChzdC5maWVsZE5hbWUsIHN0LnZhbHVlKTtcclxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZWxDb250YWluZXIuaGllck1vZGVsQXJyLnB1c2goaGllck1vZGVsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICgoPENvbnRyYWN0LlJhbmdlVmFsdWU+IHJhbmdlT3B0aW9uKS5taW4gIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgJiYgKDxDb250cmFjdC5SYW5nZVZhbHVlPiByYW5nZU9wdGlvbikubWF4ICE9PSB1bmRlZmluZWQpIHsgLy8gUmFuZ2UgdmFsdWUgc2VsZWN0aW9uXHJcbiAgICAgICAgICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLlJhbmdlVHlwZSkge1xyXG4gICAgICAgICAgICBsZXQgcXVhbnRNb2RlbDogUmFuZ2VTZWxlY3Rpb25Nb2RlbCA9IHRoaXMuYWRkVG9SYW5nZVBhcmFtc0xpc3Qoc3QuZmllbGROYW1lLCByYW5nZU9wdGlvbik7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLnF1YW50TW9kZWxBcnIucHVzaChxdWFudE1vZGVsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHsgLy8gRGltZW5zaW9uIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgICAgaWYgKHNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5EaW1lbnNpb25UeXBlKSB7XHJcbiAgICAgICAgICAgIGxldCBkaW1Nb2RlbDogRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgPSA8RGltZW5zaW9uU2VsZWN0aW9uTW9kZWw+IHRoaXMuYWRkVG9QYXJhbXNMaXN0KHN0LmZpZWxkTmFtZSwgc3QudmFsdWUpO1xyXG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5kaW1Nb2RlbEFyci5wdXNoKGRpbU1vZGVsKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1peGVkU2VsZWN0aW9uc0Vycm9yKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZChbJ1NlbGVjdGlvbiBDcml0ZXJpYScsICdEaWZmZXJlbnQgdHlwZXMgb2Ygc2VsZWN0aW9uIGNyaXRlcmlhcyBwcm92aWRlZC4nXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2VsZWN0aW9uTW9kZWxDb250YWluZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25Dcml0ZXJpYXMgVmFsaWRhdGUgYW5kIGRldGVybWluZSB0aGUgc2VsZWN0aW9uIGNyaXRlcmlhcyB0eXBlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVTZWxlY3Rpb25Dcml0ZXJpYShzZWxlY3Rpb25Dcml0ZXJpYTogQ29udHJhY3QuU2VsZWN0aW9uQ3JpdGVyaWEpOiBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUge1xyXG4gICAgbGV0IHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvbkNyaXRlcmlhVHlwZTtcclxuICAgIC8vIERldGVybWluZSB0aGUgdHlwZSBvZiBzZWxlY3Rpb24sIHRoaXMgY29tbWFuZCBpcyBieSBsb29raW5nIGF0IHRoZSBmaXJzdCBzZWxlY3Rpb25cclxuICAgIGxldCBjcml0OiBDb250cmFjdC5TZWxlY3Rpb25Dcml0ZXJpYSA9IHNlbGVjdGlvbkNyaXRlcmlhO1xyXG5cclxuICAgIGxldCBjYXRSZWdleCA9IG5ldyBSZWdFeHAoJyhcXFtbQS1aYS16MC05XStdKS4qJywgJ2cnKTtcclxuICAgIGxldCByYW5nZU9wdGlvbjogQ29udHJhY3QuUmFuZ2VWYWx1ZSA9IGNyaXQudmFsdWUgYXMgQ29udHJhY3QuUmFuZ2VWYWx1ZTtcclxuXHJcbiAgICBpZiAoY3JpdC5maWVsZE5hbWUgJiYgKGNyaXQudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBjcml0LnZhbHVlICE9PSBudWxsKSkge1xyXG4gICAgICBpZiAoY2F0UmVnZXgudGVzdChjcml0LmZpZWxkTmFtZSkpIHsgLy8gSGllcmFyY2hpY2FsIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgIHNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuSGllcmFyY2hpY2FsVHlwZTtcclxuICAgICAgfSBlbHNlIGlmICgoPENvbnRyYWN0LlJhbmdlVmFsdWU+IHJhbmdlT3B0aW9uKS5taW4gIT09IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgJiYgKDxDb250cmFjdC5SYW5nZVZhbHVlPiByYW5nZU9wdGlvbikubWF4ICE9PSB1bmRlZmluZWQpIHsgLy8gUmFuZ2UgdmFsdWUgc2VsZWN0aW9uXHJcbiAgICAgICAgc2VsZWN0aW9uVHlwZSA9IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5SYW5nZVR5cGU7XHJcbiAgICAgIH0gZWxzZSB7IC8vIERpbWVyc2lvbiB2YWx1ZSBzZWxlY3Rpb25cclxuICAgICAgICBzZWxlY3Rpb25UeXBlID0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkRpbWVuc2lvblR5cGU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW52YWxpZChbJ1NlbGVjdGlvbicsICdDcml0ZXJpYSBmb3JtYXQuJ10pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlbGVjdGlvblR5cGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gdHJhbnNmb3JtIHRoZSBrZXkgdmFsdWUgcGFpciBpbnRvIHZhbHVlIGJhc2VkIHByZXMgbW9kZWwgb2JqZWN0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbHVlU2VsZWN0aW9uTW9kZWxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRUb1BhcmFtc0xpc3QoZmllbGROYW1lOiBzdHJpbmcsIHZhbHVlOiBvYmplY3QpOiBWYWx1ZVNlbGVjdGlvbk1vZGVsIHtcclxuICAgIGxldCB2YWx1ZVNlbGVjdGlvbk1vZGVsOiBWYWx1ZVNlbGVjdGlvbk1vZGVsID0gbmV3IFZhbHVlU2VsZWN0aW9uTW9kZWwoKTtcclxuICAgIGxldCBtYXJrVmFsdWVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcblxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgbGV0IHZhbHVlQXJyOiBBcnJheTxzdHJpbmc+ID0gdmFsdWU7XHJcbiAgICAgIGZvciAoIGxldCBpID0gMDsgaSA8IHZhbHVlQXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbWFya1ZhbHVlcy5wdXNoKHZhbHVlQXJyW2ldLnRvU3RyaW5nKCkpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtYXJrVmFsdWVzLnB1c2godmFsdWUudG9TdHJpbmcoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFsdWVTZWxlY3Rpb25Nb2RlbC5xdWFsaWZpZWRGaWVsZENhcHRpb24gPSBmaWVsZE5hbWU7XHJcbiAgICB2YWx1ZVNlbGVjdGlvbk1vZGVsLnNlbGVjdFZhbHVlcyA9IG1hcmtWYWx1ZXM7XHJcbiAgICByZXR1cm4gdmFsdWVTZWxlY3Rpb25Nb2RlbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byB0cmFuc2Zvcm0gdGhlIGtleSB2YWx1ZSBwYWlyIGludG8gcmFuZ2UgYmFzZWQgc2VsZWN0aW9uIHByZXMgbW9kZWwuXHJcbiAgICpcclxuICAgKiBUT0RPOiBOZWVkIHRvIGhhbmRsZSB0aGUgcGFyc2luZyBvZiBkYXRlIHR5cGUgdmFsdWVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZhbHVlU2VsZWN0aW9uTW9kZWxcclxuICAgKiBAcGFyYW0gZmllbGROYW1lXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRUb1JhbmdlUGFyYW1zTGlzdChmaWVsZE5hbWU6IHN0cmluZywgdmFsdWU6IENvbnRyYWN0LlJhbmdlVmFsdWUpOiBSYW5nZVNlbGVjdGlvbk1vZGVsIHtcclxuICAgIGxldCByYW5nZVNlbGVjdGlvbk1vZGVsOiBSYW5nZVNlbGVjdGlvbk1vZGVsID0gbmV3IFJhbmdlU2VsZWN0aW9uTW9kZWwoKTtcclxuICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwucXVhbGlmaWVkRmllbGRDYXB0aW9uID0gZmllbGROYW1lO1xyXG4gICAgaWYgKHZhbHVlLm1heCAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLm1heCAhPT0gbnVsbCkge1xyXG4gICAgICByYW5nZVNlbGVjdGlvbk1vZGVsLm1heFZhbHVlID0gdmFsdWUubWF4LnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUubWluICE9PSB1bmRlZmluZWQgJiYgdmFsdWUubWluICE9PSBudWxsKSB7XHJcbiAgICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwubWluVmFsdWUgPSB2YWx1ZS5taW4udG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwuaW5jbHVkZWQgPSB0aGlzLnZhbGlkYXRlTnVsbE9wdGlvblR5cGUodmFsdWUubnVsbE9wdGlvbik7XHJcbiAgICByZXR1cm4gcmFuZ2VTZWxlY3Rpb25Nb2RlbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byB2YWxpZGF0ZSB0aGUgc2VsZWN0aW9uIHVwZGF0ZSB0eXBlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlbGVjdGlvblVwZGF0ZVR5cGVcclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZShzZWxlY3Rpb25VcGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogc3RyaW5nIHtcclxuICAgIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2UpIHtcclxuICAgICAgcmV0dXJuIFNlbGVjdGlvblVwZGF0ZVR5cGVJbnRlcm5hbC5SZXBsYWNlO1xyXG4gICAgfSBlbHNlIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLkFkZCkge1xyXG4gICAgICByZXR1cm4gU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLkFkZDtcclxuICAgIH0gZWxzZSBpZiAoc2VsZWN0aW9uVXBkYXRlVHlwZSA9PT0gQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZS5SZW1vdmUpIHtcclxuICAgICAgcmV0dXJuIFNlbGVjdGlvblVwZGF0ZVR5cGVJbnRlcm5hbC5SZW1vdmU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLlJlcGxhY2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gdmFsaWRhdGUgdGhlIGluY2x1ZGUgdHlwZSBmb3IgcmFuZ2Ugc2VsZWN0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG51bGxPcHRpb25cclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlTnVsbE9wdGlvblR5cGUobnVsbE9wdGlvbjogQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbiB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcbiAgICBpZiAobnVsbE9wdGlvbikge1xyXG4gICAgICBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5OdWxsVmFsdWVzKSB7XHJcbiAgICAgICAgcmV0dXJuIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVOdWxsO1xyXG4gICAgICB9IGVsc2UgaWYgKG51bGxPcHRpb24gPT09IENvbnRyYWN0LkZpbHRlck51bGxPcHRpb24uTm9uTnVsbFZhbHVlcykge1xyXG4gICAgICAgIHJldHVybiBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcy5JbmNsdWRlTm9uTnVsbDtcclxuICAgICAgfSBlbHNlIGlmIChudWxsT3B0aW9uID09PSBDb250cmFjdC5GaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlcykge1xyXG4gICAgICAgIHJldHVybiBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcy5JbmNsdWRlQWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVBbGw7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLyoqXHJcbiAqIEVudW0gZm9yIHRoZSBkaWZmZXJlbnQgc2VsZWN0aW9uIGNyaXRlcmlhIHR5cGVzLlxyXG4gKi9cclxuZW51bSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUge1xyXG4gIEhpZXJhcmNoaWNhbFR5cGUgPSAxLFxyXG4gIFJhbmdlVHlwZSA9IDIsXHJcbiAgRGltZW5zaW9uVHlwZSA9IDMsXHJcbiAgVHVwbGVzVHlwZSA9IDQsXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiLyoqXHJcbiAqIFNlbGVjdGlvbiBNb2RlbC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgcXVhbGlmaWVkRmllbGRDYXB0aW9uOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWYWx1ZSBiYXNlZCBzZWxlY3Rpb24gbW9kZWwuIE1lYW50IGZvciBoaWVyYXJjaGljYWwsIHJhbmdlIGFuZCBjYXRlZ29yaWNhbCBzZWxlY3Rpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZhbHVlU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgc2VsZWN0VmFsdWVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBIaWVyYXJjaGljYWwgdmFsdWUgc2VsZWN0aW9uIG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBWYWx1ZVNlbGVjdGlvbk1vZGVsIHtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJhbmdlIGJhc2VkIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJhbmdlU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgbWluVmFsdWU6IHN0cmluZztcclxuICBtYXhWYWx1ZTogc3RyaW5nO1xyXG4gIGluY2x1ZGVkOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEaW1lbnNpb24gdmFsdWUgc2VsZWN0aW9uIG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgZXh0ZW5kcyBWYWx1ZVNlbGVjdGlvbk1vZGVsIHtcclxufVxyXG4vKipcclxuICogVHVwbGUgYmFzZWQgc2VsZWN0aW9uIG1vZGVsXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVHVwbGVTZWxlY3Rpb25Nb2RlbCB7XHJcbiAgc2VsZWN0aW9uVHlwZTogc3RyaW5nO1xyXG4gIG9iamVjdElkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udGFpbmVyIGNsYXNzIHRvIHBvcHVsYXRlIGFsbCB0aGUgc2VsZWN0aW9uIG1vZGVscyB3aGVuIHBhcnNpbmcgaW5wdXRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIge1xyXG4gIGhpZXJNb2RlbEFycjogQXJyYXk8SGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWw+ID0gW107XHJcbiAgZGltTW9kZWxBcnI6IEFycmF5PERpbWVuc2lvblNlbGVjdGlvbk1vZGVsPiA9IFtdO1xyXG4gIHF1YW50TW9kZWxBcnI6IEFycmF5PFJhbmdlU2VsZWN0aW9uTW9kZWw+ID0gW107XHJcbiAgc2VsZWN0aW9uOiBUdXBsZVNlbGVjdGlvbk1vZGVsO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL1NlbGVjdGlvbk1vZGVscy50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tbWFuZFJlc3BvbnNlTWVzc2FnZSxcclxuICBDcm9zc0ZyYW1lTWVzc2VuZ2VyLFxyXG4gIFZFUlNJT04gYXMgQXBpTWVzc2FnaW5nVmVyc2lvbixcclxufSBmcm9tICdAdGFibGVhdS9hcGktbWVzc2FnaW5nJztcclxuXHJcbmltcG9ydCB7IENyb3NzRnJhbWVEaXNwYXRjaGVyIH0gZnJvbSAnLi9Dcm9zc0ZyYW1lRGlzcGF0Y2hlcic7XHJcblxyXG4vLyBDaGVja3MgdG8gc2VlIGlmIHdlIGFyZSBydW5uaW5nIGluIGFuIGlmcmFtZSBjdXJyZW50bHk6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8zMjYwNzYvODgyMTE1M1xyXG5mdW5jdGlvbiBpbklmcmFtZSh0aGlzV2luZG93OiBXaW5kb3cpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIHRoaXNXaW5kb3cuc2VsZiAhPT0gdGhpc1dpbmRvdy5wYXJlbnQ7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQXR0ZW1wdHMgdG8gYm9vdHN0cmFwIHRoZSBleHRlbnNpb24gd2l0aCBhIGNyb3NzLWZyYW1lIHBhcmVudCB3aGVyZSBUYWJsZWF1IGlzIHJ1bm5pbmdcclxuICpcclxuICogQHBhcmFtIHRoaXNXaW5kb3cgVGhlIHdpbmRvdyB3aGljaCB3ZSBhcmUgcnVubmluZyBpbiAoaW5qZWN0ZWQgZm9yIHVuaXQgdGVzdGluZyBwdXJwb3NlcylcclxuICogQHBhcmFtIHZlcnNpb25OdW1iZXIgVGhlIHZlcnNpb24gbnVtYmVyIG9mIG91ciBBUEkgdG8gaW5jbHVkZSBpbiB0aGUgaW5pdGlhbGl6YXRpb24gbWVzc2FnZVxyXG4gKiBAcmV0dXJucyBBIHByb21pc2Ugd2hpY2ggaXMgZG9pbmcgdGhlIGFjdHVhbCBib290c3RyYXBwaW5nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZG9Dcm9zc0ZyYW1lQm9vdHN0cmFwKHRoaXNXaW5kb3c6IFdpbmRvdywgdmVyc2lvbk51bWJlcjogQ29udHJhY3QuVmVyc2lvbk51bWJlcik6IFByb21pc2U8Q29udHJhY3QuSW50ZXJuYWxBcGlEaXNwYXRjaGVyPiB7XHJcbiAgcmV0dXJuIG5ldyBQcm9taXNlPENvbnRyYWN0LkludGVybmFsQXBpRGlzcGF0Y2hlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cclxuICAgIC8vIENoZWNrIHRvIG1ha2Ugc3VyZSB3ZSdyZSBpbiBhbiBpZnJhbWUgYW5kIGhhdmUgYSBwYXJlbnQgdG8gY29tbXVuaWNhdGUgd2l0aFxyXG4gICAgaWYgKCFpbklmcmFtZSh0aGlzV2luZG93KSkge1xyXG4gICAgICByZWplY3QoJ1RoaXMgZXh0ZW5zaW9uIGlzIG5vdCBydW5uaW5nIGluc2lkZSBhbiBpZnJhbWUgb3IgZGVza3RvcC4gSW5pdGlhbGl6YXRpb24gZmFpbGVkLicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENyZWF0ZSB0aGUgbWVzc2VuZ2VyIHdoaWNoIHdpbGwgZG8gaGUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoaXMgd2luZG93IGFuZCBvdXIgcGFyZW50XHJcbiAgICAvLyBTaW5jZSB3ZSBkb24ndCBrbm93IHdoZXJlIHdlIGFyZSBydW5uaW5nIHlldCwgd2UgaGF2ZSB0byBtYWtlIHRoaXMgaW5pdGlhbCBvcmlnaW4gJyonLiBPbmNlXHJcbiAgICAvLyB3ZSBoYXZlIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCBvdXIgZXh0ZW5zaW9uLCB3ZSB3aWxsIGxpbWl0IHdoZXJlIHdlIHNlbmQgbWVzc2FnZXNcclxuICAgIGNvbnN0IG1lc3NlbmdlciA9IG5ldyBDcm9zc0ZyYW1lTWVzc2VuZ2VyKHRoaXNXaW5kb3csIHRoaXNXaW5kb3cucGFyZW50LCAnKicpO1xyXG5cclxuICAgIC8vIFByZXBhcmUgdG8gc2VuZCBhbiBpbml0aWFsaXphdGlvbiBtZXNzYWdlIHRvIHRoZSBwYXJlbnQgZnJhbWVcclxuICAgIGNvbnN0IGluaXRpYWxpemF0aW9uTWVzc2FnZSA9IG1lc3Nlbmdlci5wcmVwYXJlSW5pdGlhbGl6YXRpb25NZXNzYWdlKHZlcnNpb25OdW1iZXIsIEFwaU1lc3NhZ2luZ1ZlcnNpb24pO1xyXG5cclxuICAgIC8vIFdoZW4gd2UgcmVjZWl2ZSBhIHJlc3BvbnNlIGJhY2sgZnJvbSB0aGUgcGFyZW50LCB3ZSBjaGVjayB0byBtYWtlIHN1cmUgdGhlIGd1aWRzIG1hdGNoIGFuZCB0aGVuIHdlIGtub3dcclxuICAgIC8vIHRoYXQgdGhlIHBhcmVudCBpcyBhd2FyZSBvZiB1cyBhbmQgd2UgY2FuIHN0YXJ0IGNvbW11bmljYXRpbmdcclxuICAgIG1lc3Nlbmdlci5zZXRDb21tYW5kUmVzcG9uc2VNZXNzYWdlSGFuZGxlcihmdW5jdGlvbihtc2c6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UpOiB2b2lkIHtcclxuXHJcbiAgICAgIC8vIFZlcmlmeSB3ZSBhcmUgZ2V0dGluZyBhIHJlc3BvbnNlIGZyb20gb3VyIGluaXRpYWxpemUgbWVzc2FnZVxyXG4gICAgICBpZiAobXNnLmNvbW1hbmRHdWlkID09PSBpbml0aWFsaXphdGlvbk1lc3NhZ2UubWVzc2FnZUd1aWQpIHtcclxuICAgICAgICBjb25zdCBkaXNwYXRjaGVyID0gbmV3IENyb3NzRnJhbWVEaXNwYXRjaGVyKG1lc3Nlbmdlcik7XHJcbiAgICAgICAgcmVzb2x2ZShkaXNwYXRjaGVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gTm93IHRoYXQgb3VyIGhhbmRsZXJzIGFyZSByZWFkeSwgc3RhcnQgbGlzdGVuaW5nIGFuZCBzZW5kIG91ciBpbml0aWFsaXphdGlvbiBtZXNzYWdlXHJcbiAgICBtZXNzZW5nZXIuc3RhcnRMaXN0ZW5pbmcoKTtcclxuICAgIGluaXRpYWxpemF0aW9uTWVzc2FnZS5zZW5kKCk7XHJcbiAgfSk7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVCb290c3RyYXAudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vQ3Jvc3NGcmFtZU1lc3Nlbmdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL01lc3NhZ2VEaXNwYXRjaGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTWVzc2FnZUxpc3RlbmVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTWVzc2FnZVR5cGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTWVzc2VuZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvUHJlcGFyZWRNZXNzYWdlJztcclxuXHJcbi8vIEV4cG9ydCB0aGUgdmVyc2lvbiBudW1iZXIgb2YgbWVzc2FnaW5nIGZvciBjb25zdW1lcnMgdG8gdXNlLlxyXG4vLyBCZSB2ZXJ5IGNhcmVmdWwgbWFraW5nIGFueSB1cGRhdGVzIHRvIHRoaXMgY29udHJhY3Qgd2hpY2ggYnJlYWsgdmVyc2lvbiBjb21wYXRpYmlsaXR5LlxyXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcclxuICBtYWpvcjogMSxcclxuICBtaW5vcjogMCxcclxuICBmaXg6IDBcclxufTtcclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9BcGlNZXNzYWdpbmcudHNcbiAqKi8iLCJpbXBvcnQgeyBFeGVjdXRlUGFyYW1ldGVycywgTW9kZWwsIE5vdGlmaWNhdGlvbklkLCBWZXJiSWQsIFZlcnNpb25OdW1iZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBHdWlkIH0gZnJvbSAnQHRhYmxlYXUvZ3VpZCc7XHJcblxyXG5pbXBvcnQgeyBDcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlIH0gZnJvbSAnLi9Dcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlJztcclxuaW1wb3J0IHtcclxuICBDb21tYW5kTWVzc2FnZSxcclxuICBDb21tYW5kUmVzcG9uc2VNZXNzYWdlLFxyXG4gIEluaXRpYWxpemVNZXNzYWdlLFxyXG4gIE1lc3NhZ2UsXHJcbiAgTWVzc2FnZVR5cGUsXHJcbiAgTm90aWZpY2F0aW9uTWVzc2FnZSxcclxufSBmcm9tICcuL2ludGVyZmFjZS9NZXNzYWdlVHlwZXMnO1xyXG5pbXBvcnQgeyBNZXNzZW5nZXIgfSBmcm9tICcuL2ludGVyZmFjZS9NZXNzZW5nZXInO1xyXG5pbXBvcnQgeyBQcmVwYXJlZE1lc3NhZ2UgfSBmcm9tICcuL2ludGVyZmFjZS9QcmVwYXJlZE1lc3NhZ2UnO1xyXG5pbXBvcnQge1xyXG4gIGlzQ29tbWFuZE1lc3NhZ2UsXHJcbiAgaXNDb21tYW5kUmVzcG9uc2VNZXNzYWdlLFxyXG4gIGlzSW5pdE1lc3NhZ2UsXHJcbiAgaXNNZXNzYWdlLFxyXG4gIGlzTm90aWZpY2F0aW9uTWVzc2FnZSxcclxufSBmcm9tICcuL01lc3NhZ2VUeXBlQ2hlY2tzJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgQ3Jvc3NGcmFtZU1lc3NlbmdlciBpcyB0aGUgcHJpbWFyeSBleHBvcnQgZnJvbSB0aGUgYXBpLW1lc3NhZ2luZyBtb2R1bGUuIEFuIGluc3RhbmNlIG9mXHJcbiAqIHRoaXMgY2xhc3MgY2FuIGJlIGluc3RhbnRpYXRlZCBvbiBib3RoIHNpZGVzIG9mIGEgZnJhbWUgYm91bmRhcnkgdG8gZmFjaWxpdGF0ZSBjb21tdW5pY2F0aW9uXHJcbiAqIGluIGJvdGggZGlyZWN0aW9ucyBiZXR3ZWVuIHRoZSBmcmFtZXMuIFRoaXMgY2xhc3MgaW1wbGVtZW50cyBib3RoIHRoZSBkaXNwYXRjaGVyIGFuZCB0aGUgbGlzdGVuZXJcclxuICogcG9ydGlvbnMsIGJ1dCBkb2Vzbid0IHJlcXVpcmUgY2FsbGVycyB0byBjYXJlIGFib3V0IGJvdGguXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ3Jvc3NGcmFtZU1lc3NlbmdlciBpbXBsZW1lbnRzIE1lc3NlbmdlciB7XHJcbiAgcHJpdmF0ZSB1bnJlZ2lzdGVyRnVuY3Rpb246IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcclxuICBwcml2YXRlIGluaXRpYWxpemVNZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IEluaXRpYWxpemVNZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk7XHJcbiAgcHJpdmF0ZSBjb21tYW5kUmVzcG9uc2VNZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTtcclxuICBwcml2YXRlIGNvbW1hbmRNZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IENvbW1hbmRNZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk7XHJcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlcjogdW5kZWZpbmVkIHwgKChtc2c6IE5vdGlmaWNhdGlvbk1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDcm9zc0ZyYW1lTWVzc2VuZ2VyLiBJZiB5b3Ugd291bGQgbGlrZSB0byB1c2UgdGhlIENyb3NzRnJhbWVNZXNzZW5nZXIgYXMgYSBNZXNzYWdlTGlzdGVuZXIsXHJcbiAgICogYmUgc3VyZSB0byBjYWxsIFN0YXJ0TGlzdGVuaW5nIGFuZCByZWdpc3RlciBtZXNzYWdlIGhhbmRsZXJzLlxyXG4gICAqIEBwYXJhbSB0aGlzV2luZG93IFRoZSB3aW5kb3cgb2JqZWN0IHdoaWNoIHRoZSBDcm9zc0ZyYW1lTWVzc2VuZ2VyIGxpdmVzLiBBbiBvbk1lc3NhZ2UgbGlzdGVuZXIgd2lsbCBiZSBhZGRlZCBoZXJlLlxyXG4gICAqIEBwYXJhbSBbb3RoZXJXaW5kb3ddIE9wdGlvbmFsIG90aGVyV2luZG93IHdoaWNoIG1lc3NhZ2VzIHdpbGwgYmUgcG9zdGVkIHRvLlxyXG4gICAqICAgICAgICAgICAgICAgICAgICAgIElmIGRlZmluZWQsIGluY29taW5nIG1lc3NhZ2VzIG11c3Qgb3JpZ2luYXRlIGZyb20gb3RoZXJXaW5kb3cgdG8gYmUgcGFzc2VkIG9uXHJcbiAgICogQHBhcmFtIFtvdGhlcldpbmRvd09yaWdpbl0gVGhlIHRhcmdldCBvcmlnaW4gd2hpY2ggb3RoZXJXaW5kb3cgbXVzdCBoYXZlIGluIG9yZGVyIHRvIHJlY2VpdmUgZGlzcGF0Y2hlZCBtZXNzYWdlcy5cclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIHdpbGwgYmUgc2VudCBhcyB0aGUgdGFyZ2V0T3JpZ2luIG9mIGEgcG9zdE1lc3NhZ2VcclxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dpbmRvdy9wb3N0TWVzc2FnZSlcclxuICAgKi9cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSB0aGlzV2luZG93OiBXaW5kb3csIHByaXZhdGUgb3RoZXJXaW5kb3c/OiBXaW5kb3csIHByaXZhdGUgb3RoZXJXaW5kb3dPcmlnaW4/OiBzdHJpbmcpIHtcclxuICAgIC8vIE1ha2Ugc3VyZSB0byBjYWxsIFN0YXJ0TGlzdGVuaW5nXHJcbiAgfVxyXG5cclxuICAvLy8vLyBNZXNzYWdlTGlzdGVuZXIgSW1wbGVtZW50YXRpb25cclxuXHJcbiAgcHVibGljIHN0YXJ0TGlzdGVuaW5nKCk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgd2UgYWxyZWFkeSBhcmUgbGlzdGVuaW5nLCBpZiBub3QsIGhvb2sgdXAgYSBtZXNzYWdlIGxpc3RlbmVyXHJcbiAgICBpZiAoIXRoaXMudW5yZWdpc3RlckZ1bmN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IGJvdW5kSGFuZGxlciA9IHRoaXMub25NZXNzYWdlUmVjZWl2ZWQuYmluZCh0aGlzKTtcclxuICAgICAgdGhpcy50aGlzV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBib3VuZEhhbmRsZXIsIHRydWUpO1xyXG4gICAgICB0aGlzLnVucmVnaXN0ZXJGdW5jdGlvbiA9ICgpID0+IHRoaXMudGhpc1dpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgYm91bmRIYW5kbGVyLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9wTGlzdGVuaW5nKCk6IHZvaWQge1xyXG4gICAgLy8gU3RvcCBsaXN0ZW5pbmcgaWYgd2UgaGF2ZSBzdGFydGVkIGxpc3RlbmluZ1xyXG4gICAgaWYgKHRoaXMudW5yZWdpc3RlckZ1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMudW5yZWdpc3RlckZ1bmN0aW9uKCk7XHJcbiAgICAgIHRoaXMudW5yZWdpc3RlckZ1bmN0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEluaXRpYWxpemVNZXNzYWdlSGFuZGxlcihoYW5kbGVyPzogKG1zZzogSW5pdGlhbGl6ZU1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVNZXNzYWdlSGFuZGxlciA9IGhhbmRsZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0Q29tbWFuZFJlc3BvbnNlTWVzc2FnZUhhbmRsZXIoaGFuZGxlcj86IChtc2c6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsIHNvdXJjZTogV2luZG93KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbW1hbmRSZXNwb25zZU1lc3NhZ2VIYW5kbGVyID0gaGFuZGxlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRDb21tYW5kTWVzc2FnZUhhbmRsZXIoaGFuZGxlcj86IChtc2c6IENvbW1hbmRNZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21tYW5kTWVzc2FnZUhhbmRsZXIgPSBoYW5kbGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldE5vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyKGhhbmRsZXI/OiAobXNnOiBOb3RpZmljYXRpb25NZXNzYWdlLCBzb3VyY2U6IFdpbmRvdykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25NZXNzYWdlSGFuZGxlciA9IGhhbmRsZXI7XHJcbiAgfVxyXG5cclxuICAvLy8vLyBNZXNzYWdlRGlzcGF0Y2hlciBJbXBsZW1lbnRhdGlvblxyXG5cclxuICBwdWJsaWMgcHJlcGFyZUluaXRpYWxpemF0aW9uTWVzc2FnZShhcGlWZXJzaW9uOiBWZXJzaW9uTnVtYmVyLCBjcm9zc0ZyYW1lVmVyc2lvbjogVmVyc2lvbk51bWJlcik6IFByZXBhcmVkTWVzc2FnZSB7XHJcbiAgICBjb25zdCBtZXNzYWdlOiBJbml0aWFsaXplTWVzc2FnZSA9IHtcclxuICAgICAgbXNnR3VpZDogR3VpZC5jcmVhdGUoKS5mb3JtYXR0ZWRWYWx1ZSxcclxuICAgICAgbXNnVHlwZTogTWVzc2FnZVR5cGUuSW5pdGlhbGl6ZSxcclxuICAgICAgY3Jvc3NGcmFtZVZlcnNpb246IGNyb3NzRnJhbWVWZXJzaW9uLFxyXG4gICAgICBhcGlWZXJzaW9uOiBhcGlWZXJzaW9uXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByZXBhcmVDb21tYW5kTWVzc2FnZSh2ZXJiSWQ6IFZlcmJJZCwgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMpOiBQcmVwYXJlZE1lc3NhZ2Uge1xyXG4gICAgY29uc3QgbWVzc2FnZTogQ29tbWFuZE1lc3NhZ2UgPSB7XHJcbiAgICAgIG1zZ0d1aWQ6IEd1aWQuY3JlYXRlKCkuZm9ybWF0dGVkVmFsdWUsXHJcbiAgICAgIG1zZ1R5cGU6IE1lc3NhZ2VUeXBlLkNvbW1hbmQsXHJcbiAgICAgIHZlcmJJZDogdmVyYklkLFxyXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByZXBhcmVDb21tYW5kUmVzcG9uc2VNZXNzYWdlKGNvbW1hbmRHdWlkOiBzdHJpbmcsIGRhdGE6IE1vZGVsIHwgdW5kZWZpbmVkLCBlcnJvcjogTW9kZWwgfCB1bmRlZmluZWQpOiBQcmVwYXJlZE1lc3NhZ2Uge1xyXG4gICAgY29uc3QgbWVzc2FnZTogQ29tbWFuZFJlc3BvbnNlTWVzc2FnZSA9IHtcclxuICAgICAgbXNnR3VpZDogR3VpZC5jcmVhdGUoKS5mb3JtYXR0ZWRWYWx1ZSxcclxuICAgICAgbXNnVHlwZTogTWVzc2FnZVR5cGUuQ29tbWFuZFJlc3BvbnNlLFxyXG4gICAgICBjb21tYW5kR3VpZDogY29tbWFuZEd1aWQsXHJcbiAgICAgIGRhdGE6IGRhdGEsXHJcbiAgICAgIGVycm9yOiBlcnJvclxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5wcmVwYXJlTWVzc2FnZShtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmVwYXJlTm90aWZpY2F0aW9uTWVzc2FnZShub3RpZmljYXRpb25JZDogTm90aWZpY2F0aW9uSWQsIGRhdGE6IE1vZGVsKTogUHJlcGFyZWRNZXNzYWdlIHtcclxuICAgIGNvbnN0IG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UgPSB7XHJcbiAgICAgIG1zZ0d1aWQ6IEd1aWQuY3JlYXRlKCkuZm9ybWF0dGVkVmFsdWUsXHJcbiAgICAgIG1zZ1R5cGU6IE1lc3NhZ2VUeXBlLk5vdGlmaWNhdGlvbixcclxuICAgICAgbm90aWZpY2F0aW9uSWQ6IG5vdGlmaWNhdGlvbklkLFxyXG4gICAgICBkYXRhOiBkYXRhXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnByZXBhcmVNZXNzYWdlKG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJlcGFyZXMgYSBwZW5kaW5nIG1lc3NhZ2UgZm9yIHNlbmRpbmcgYW5kIHJldHVybnMgdGhlIHByZXBhcmVkIG1lc3NhZ2VcclxuICAgKlxyXG4gICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdG8gYmUgc2VudCB0byB0aGlzLm90aGVyV2luZG93XHJcbiAgICogQHJldHVybnMgVGhlIHByZXBhcmVkIG1lc3NhZ2VcclxuICAgKi9cclxuICBwcml2YXRlIHByZXBhcmVNZXNzYWdlKG1zZzogTWVzc2FnZSk6IFByZXBhcmVkTWVzc2FnZSB7XHJcbiAgICBpZiAoIXRoaXMub3RoZXJXaW5kb3cgfHwgIXRoaXMub3RoZXJXaW5kb3dPcmlnaW4pIHtcclxuICAgICAgdGhyb3cgJ090aGVyIHdpbmRvdyBub3QgaW5pdGlhbGl6ZWQsIGNhbm5vdCBkaXNwYXRjaCBtZXNzYWdlcyc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcHJlcGFyZWRNZXNzYWdlID0gbmV3IENyb3NzRnJhbWVQcmVwYXJlZE1lc3NhZ2UobXNnLCB0aGlzLm90aGVyV2luZG93LCB0aGlzLm90aGVyV2luZG93T3JpZ2luKTtcclxuICAgIHJldHVybiBwcmVwYXJlZE1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDYWxsZWQgd2hlbiBhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuIERvZXMgc29tZSB2YWxpZGF0aW9uIG9mIHRoZSBtZXNzYWdlLCBhbmQgdGhlblxyXG4gICAqIGNhbGxzIGFuIGFwcHJvcHJpYXRlIG1lc3NhZ2UgaGFuZGxlciBpZiBvbmUgaXMgZGVmaW5lZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2ZW50IFRoZSBpbmNvbWluZyBNZXNzYWdlRXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uTWVzc2FnZVJlY2VpdmVkKGV2ZW50OiBNZXNzYWdlRXZlbnQpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBJZiB3ZSBoYXZlIGFuIG90aGVyV2luZG93IGRlZmluZWQsIG1ha2Ugc3VyZSB0aGUgbWVzc2FnZSBpcyBjb21pbmcgZnJvbSB0aGVyZVxyXG4gICAgaWYgKHRoaXMub3RoZXJXaW5kb3cgJiYgZXZlbnQuc291cmNlICE9PSB0aGlzLm90aGVyV2luZG93KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBEbyBzb21lIHZhbGlkYXRpb24gb24gZXZlbnQuZGF0YSB0byBtYWtlIHN1cmUgdGhhdCB3ZSBoYXZlIHJlY2VpdmVkIGEgcmVhbCBtZXNzYWdlXHJcbiAgICBpZiAoIWV2ZW50LmRhdGEpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1lc3NhZ2UgPSBldmVudC5kYXRhO1xyXG4gICAgaWYgKCFpc01lc3NhZ2UobWVzc2FnZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrIHRoZSBkZWNsYXJlZCBtZXNzYWdlIHR5cGUsIHZhbGlkYXRlIHRoZSBtZXNzYWdlLCBhbmQgY2FsbCBhbiBhcHByb3ByaWF0ZSBoYW5kZXIgaWYgb25lIGV4aXN0c1xyXG4gICAgc3dpdGNoIChtZXNzYWdlLm1zZ1R5cGUpIHtcclxuICAgICAgY2FzZSBNZXNzYWdlVHlwZS5Jbml0aWFsaXplOiB7XHJcbiAgICAgICAgaWYgKCFpc0luaXRNZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLmluaXRpYWxpemVNZXNzYWdlSGFuZGxlcikge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplTWVzc2FnZUhhbmRsZXIobWVzc2FnZSwgZXZlbnQuc291cmNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIE1lc3NhZ2VUeXBlLkNvbW1hbmRSZXNwb25zZToge1xyXG4gICAgICAgIGlmICghaXNDb21tYW5kUmVzcG9uc2VNZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLmNvbW1hbmRSZXNwb25zZU1lc3NhZ2VIYW5kbGVyKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRSZXNwb25zZU1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UsIGV2ZW50LnNvdXJjZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBNZXNzYWdlVHlwZS5Db21tYW5kOiB7XHJcbiAgICAgICAgaWYgKCFpc0NvbW1hbmRNZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLmNvbW1hbmRNZXNzYWdlSGFuZGxlcikge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jb21tYW5kTWVzc2FnZUhhbmRsZXIobWVzc2FnZSwgZXZlbnQuc291cmNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIE1lc3NhZ2VUeXBlLk5vdGlmaWNhdGlvbjoge1xyXG4gICAgICAgIGlmICghaXNOb3RpZmljYXRpb25NZXNzYWdlKG1lc3NhZ2UpIHx8ICF0aGlzLm5vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyKSB7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbk1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UsIGV2ZW50LnNvdXJjZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvLyBKdXN0IGlnbm9yZSB0aGlzIHNpbmNlIHdlIGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSB0aGUgbWVzc2FnZSB0eXBlXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvQ3Jvc3NGcmFtZU1lc3Nlbmdlci50c1xuICoqLyIsIm51bGxcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvR3VpZC50c1xuICoqLyIsImltcG9ydCB7IE1lc3NhZ2UgfSBmcm9tICcuL2ludGVyZmFjZS9NZXNzYWdlVHlwZXMnO1xyXG5pbXBvcnQgeyBQcmVwYXJlZE1lc3NhZ2UgfSBmcm9tICcuL2ludGVyZmFjZS9QcmVwYXJlZE1lc3NhZ2UnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQcmVwYXJlZE1lc3NhZ2UgaW50ZXJmYWNlIHVzZWQgdG8gcG9zdCBtZXNzYWdlcyBiZXR3ZWVuXHJcbiAqIHR3byBmcmFtZXMgdXNpbmcgd2luZG93LnBvc3RNZXNzYWdlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ3Jvc3NGcmFtZVByZXBhcmVkTWVzc2FnZSBpbXBsZW1lbnRzIFByZXBhcmVkTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlLlxyXG4gICAqIEBwYXJhbSBfbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBiZSBzZW50XHJcbiAgICogQHBhcmFtIF90YXJnZXQgVGhlIHRhcmdldCB3aW5kb3cgd2hlcmUgdGhlIG1lc3NhZ2Ugd2lsbCBiZSBzZW50XHJcbiAgICogQHBhcmFtIF9vcmlnaW4gVGhlIHRhcmdldE9yaWdpbiB3aGVyZSB0aGlzIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkXHJcbiAgICovXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX21lc3NhZ2U6IE1lc3NhZ2UsIHByaXZhdGUgX3RhcmdldDogV2luZG93LCBwcml2YXRlIF9vcmlnaW46IHN0cmluZykge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWVzc2FnZUd1aWQoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX21lc3NhZ2UubXNnR3VpZDsgfVxyXG5cclxuICBwdWJsaWMgc2VuZCgpOiBQcmVwYXJlZE1lc3NhZ2Uge1xyXG4gICAgdGhpcy5fdGFyZ2V0LnBvc3RNZXNzYWdlKHRoaXMuX21lc3NhZ2UsIHRoaXMuX29yaWdpbik7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9Dcm9zc0ZyYW1lUHJlcGFyZWRNZXNzYWdlLnRzXG4gKiovIiwiaW1wb3J0IHsgRXhlY3V0ZVBhcmFtZXRlcnMsIE1vZGVsLCBOb3RpZmljYXRpb25JZCwgVmVyYklkLCBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbi8qKlxyXG4gKiBFbnVtIGRlZmluaW5nIHRoZSA0IGRpZmZlcmVudCB0eXBlcyBvZiBtZXNzYWdlcyB3ZSBoYXZlIGRlZmluZWRcclxuICovXHJcbmV4cG9ydCBlbnVtIE1lc3NhZ2VUeXBlIHtcclxuICBJbml0aWFsaXplID0gJ2luaXRpYWxpemUnLFxyXG4gIE5vdGlmaWNhdGlvbiA9ICdub3RpZmljYXRpb24nLFxyXG4gIENvbW1hbmQgPSAnY29tbWFuZCcsXHJcbiAgQ29tbWFuZFJlc3BvbnNlID0gJ2NvbW1hbmQtcmVzcG9uc2UnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgTWVzc2FnZSBpbnRlcmZhY2UgaXMgdGhlIGJhc2UgaW50ZXJmYWNlIGZvciBhbGwgdGhlIG90aGVyXHJcbiAqIG1lc3NhZ2UgdHlwZSBpbnRlcmZhY2VzLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlIHtcclxuICAvKipcclxuICAgKiBBIHVuaXF1ZSBpZCBmb3IgdGhpcyBtZXNzYWdlXHJcbiAgICovXHJcbiAgbXNnR3VpZDogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgdHlwZSBvZiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBtc2dUeXBlOiBNZXNzYWdlVHlwZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBpbml0aWFsaXplIG1lc3NhZ2UgaXMgdGhlIGZpcnN0IG1lc3NhZ2Ugd2hpY2ggd2lsbCBiZSBzZW50XHJcbiAqIGZyb20gdGhlIGphdmFzY3JpcHQgdG8gc2V0IHVwIGNvbW11bmljYXRpb25zXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxpemVNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIGFwaSB3aGljaCB0aGUgc2VuZGVyIHdhbnRzIHRvIHVzZVxyXG4gICAqL1xyXG4gIGFwaVZlcnNpb246IFZlcnNpb25OdW1iZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoaXMgbWVzc2FnaW5nIGNvbnRyYWN0IHRvIGJlIHVzZWQuIEZvciBub3csIHRoZXJlXHJcbiAgICogc2hvdWxkIG9ubHkgYmUgYSBzaW5nbGUgdmVyc2lvbiBidXQgc2VuZGluZyB0aGlzIGFsb25nIHNob3VsZCBoZWxwXHJcbiAgICogaWYgd2UgbmVlZCB0byBhZGQgYSBuZXcgdmVyc2lvbiBpbiBhIGZ1dHVyZSByZWxlYXNlXHJcbiAgICovXHJcbiAgY3Jvc3NGcmFtZVZlcnNpb246IFZlcnNpb25OdW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIG1lc3NhZ2UgaXMgc2VudCB3aGVuIGEgbm90aWZpY2F0aW9uIG9jY3VycyBmcm9tIHRoZSBwcmVzbGF5ZXJcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2Uge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBpZCBmb3IgdGhpcyB0eXBlIG9mIG5vdGlmaWNhdGlvblxyXG4gICAqL1xyXG4gIG5vdGlmaWNhdGlvbklkOiBOb3RpZmljYXRpb25JZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGRhdGEgd2hpY2ggY2FtZSBhbG9uZyB3aXRoIHRoZSBub3RpZmljYXRpb25cclxuICAgKi9cclxuICBkYXRhOiBNb2RlbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgY2FsbGluZyBhbiBpbnRlcm5hbCBjb250cmFjdCBjb21tYW5kXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIGlkIG9mIHRoZSBjb21tYW5kIHdoaWNoIHNob3VsZCBiZSBleGVjdXRlZFxyXG4gICAqL1xyXG4gIHZlcmJJZDogVmVyYklkO1xyXG5cclxuICAvKipcclxuICAgKiBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIGNvbW1hbmRcclxuICAgKi9cclxuICBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycztcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWVzc2FnZSBpcyBzZW50IGluIHJlc3BvbnNlIHRvIGEgQ29tbWFuZE1lc3NhZ2Ugd2l0aCB0aGVcclxuICogcmVzdWx0IG9mIHRoYXQgY29tbWFuZHMgaW52b2NhdGlvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kUmVzcG9uc2VNZXNzYWdlIGV4dGVuZHMgTWVzc2FnZSB7XHJcbiAgLyoqXHJcbiAgICogR3VpZCBvZiB0aGUgQ29tbWFuZE1lc3NhZ2Ugd2hpY2ggdGhpcyBpcyBpbiByZXNwb25zZSB0b1xyXG4gICAqL1xyXG4gIGNvbW1hbmRHdWlkOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZXJlIHdhcyBhbiBlcnJvciByZXR1cm5lZCBmcm9tIHRoZSBjb21tYW5kLCB0aGlzIHdpbGwgYmUgZGVmaW5lZFxyXG4gICAqIGFuZCBjb250YWluIHRoZSBlcnJvclxyXG4gICAqL1xyXG4gIGVycm9yPzogTW9kZWw7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSBjb21tYW5kIGV4ZWN1dGVkIHN1Y2Nlc3NmdWxseSwgdGhpcyB3aWxsIGNvbnRhaW4gdGhlIGNvbW1hbmQgcmVzdWx0XHJcbiAgICovXHJcbiAgZGF0YT86IE1vZGVsO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLW1lc3NhZ2luZy9zcmMvaW50ZXJmYWNlL01lc3NhZ2VUeXBlcy50c1xuICoqLyIsImltcG9ydCB7IFZlcnNpb25OdW1iZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBHdWlkIH0gZnJvbSAnQHRhYmxlYXUvZ3VpZCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbW1hbmRNZXNzYWdlLFxyXG4gIENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsXHJcbiAgSW5pdGlhbGl6ZU1lc3NhZ2UsXHJcbiAgTWVzc2FnZSxcclxuICBNZXNzYWdlVHlwZSxcclxuICBOb3RpZmljYXRpb25NZXNzYWdlLFxyXG59IGZyb20gJy4vaW50ZXJmYWNlL01lc3NhZ2VUeXBlcyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZSBuby1hbnkgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTWVzc2FnZShkYXRhOiBNZXNzYWdlIHwgYW55KTogZGF0YSBpcyBNZXNzYWdlIHtcclxuICBpZiAoIWRhdGEpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1lc3NhZ2UgPSBkYXRhIGFzIE1lc3NhZ2U7XHJcbiAgaWYgKCFtZXNzYWdlIHx8ICFtZXNzYWdlLm1zZ0d1aWQgfHwgIW1lc3NhZ2UubXNnVHlwZSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFHdWlkLmlzR3VpZChtZXNzYWdlLm1zZ0d1aWQpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAodHlwZW9mIG1lc3NhZ2UubXNnVHlwZSAhPT0gJ3N0cmluZycpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG1lc3NhZ2VUeXBlczogQXJyYXk8c3RyaW5nPiA9XHJcbiAgWyBNZXNzYWdlVHlwZS5Db21tYW5kLCBNZXNzYWdlVHlwZS5Db21tYW5kUmVzcG9uc2UsIE1lc3NhZ2VUeXBlLkluaXRpYWxpemUsIE1lc3NhZ2VUeXBlLk5vdGlmaWNhdGlvbiBdO1xyXG5cclxuICBpZiAobWVzc2FnZVR5cGVzLmluZGV4T2YobWVzc2FnZS5tc2dUeXBlKSA8IDApIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNWZXJzaW9uKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIgfCBhbnkpOiB2ZXJzaW9uTnVtYmVyIGlzIFZlcnNpb25OdW1iZXIge1xyXG4gIGlmICghdmVyc2lvbk51bWJlcikge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgdiA9IHZlcnNpb25OdW1iZXIgYXMgVmVyc2lvbk51bWJlcjtcclxuXHJcbiAgaWYgKHR5cGVvZiB2ICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKHR5cGVvZiB2LmZpeCAhPT0gJ251bWJlcicgfHwgdHlwZW9mIHYubWlub3IgIT09ICdudW1iZXInIHx8IHR5cGVvZiB2Lm1ham9yICE9PSAnbnVtYmVyJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0luaXRNZXNzYWdlKG1lc3NhZ2U6IEluaXRpYWxpemVNZXNzYWdlIHwgYW55KTogbWVzc2FnZSBpcyBJbml0aWFsaXplTWVzc2FnZSB7XHJcbiAgaWYgKCFpc01lc3NhZ2UobWVzc2FnZSkpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IGluaXRNZXNzYWdlID0gbWVzc2FnZSBhcyBJbml0aWFsaXplTWVzc2FnZTtcclxuICBpZiAoaW5pdE1lc3NhZ2UubXNnVHlwZSAhPT0gTWVzc2FnZVR5cGUuSW5pdGlhbGl6ZSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFpbml0TWVzc2FnZS5hcGlWZXJzaW9uIHx8ICFpc1ZlcnNpb24oaW5pdE1lc3NhZ2UuYXBpVmVyc2lvbikpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghaW5pdE1lc3NhZ2UuY3Jvc3NGcmFtZVZlcnNpb24gfHwgIWlzVmVyc2lvbihpbml0TWVzc2FnZS5jcm9zc0ZyYW1lVmVyc2lvbikpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDb21tYW5kUmVzcG9uc2VNZXNzYWdlKG1lc3NhZ2U6IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UgfCBhbnkpOiBtZXNzYWdlIGlzIENvbW1hbmRSZXNwb25zZU1lc3NhZ2Uge1xyXG4gIGlmICghaXNNZXNzYWdlKG1lc3NhZ2UpKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb25zdCBjck1lc3NhZ2UgPSBtZXNzYWdlIGFzIENvbW1hbmRSZXNwb25zZU1lc3NhZ2U7XHJcbiAgaWYgKGNyTWVzc2FnZS5tc2dUeXBlICE9PSBNZXNzYWdlVHlwZS5Db21tYW5kUmVzcG9uc2UpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGlmICghR3VpZC5pc0d1aWQoY3JNZXNzYWdlLmNvbW1hbmRHdWlkKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFjck1lc3NhZ2UuZGF0YSAmJiAhY3JNZXNzYWdlLmVycm9yKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tbWFuZE1lc3NhZ2UobWVzc2FnZTogQ29tbWFuZE1lc3NhZ2UgfCBhbnkpOiBtZXNzYWdlIGlzIENvbW1hbmRNZXNzYWdlIHtcclxuICBpZiAoIWlzTWVzc2FnZShtZXNzYWdlKSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgY29tbWFuZE1lc3NhZ2UgPSBtZXNzYWdlIGFzIENvbW1hbmRNZXNzYWdlO1xyXG4gIGlmIChjb21tYW5kTWVzc2FnZS5tc2dUeXBlICE9PSBNZXNzYWdlVHlwZS5Db21tYW5kKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAoIWNvbW1hbmRNZXNzYWdlLnBhcmFtZXRlcnMgfHwgdHlwZW9mIGNvbW1hbmRNZXNzYWdlLnBhcmFtZXRlcnMgIT09ICdvYmplY3QnKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAoIWNvbW1hbmRNZXNzYWdlLnZlcmJJZCB8fCB0eXBlb2YgY29tbWFuZE1lc3NhZ2UudmVyYklkICE9PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc05vdGlmaWNhdGlvbk1lc3NhZ2UobWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSB8IGFueSk6IG1lc3NhZ2UgaXMgTm90aWZpY2F0aW9uTWVzc2FnZSB7XHJcbiAgaWYgKCFpc01lc3NhZ2UobWVzc2FnZSkpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0IG5vdGlmaWNhdGlvbk1lc3NhZ2UgPSBtZXNzYWdlIGFzIE5vdGlmaWNhdGlvbk1lc3NhZ2U7XHJcbiAgaWYgKG5vdGlmaWNhdGlvbk1lc3NhZ2UubXNnVHlwZSAhPT0gTWVzc2FnZVR5cGUuTm90aWZpY2F0aW9uKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpZiAoIW5vdGlmaWNhdGlvbk1lc3NhZ2UuZGF0YSB8fCB0eXBlb2Ygbm90aWZpY2F0aW9uTWVzc2FnZS5kYXRhICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaWYgKCFub3RpZmljYXRpb25NZXNzYWdlLm5vdGlmaWNhdGlvbklkIHx8IHR5cGVvZiBub3RpZmljYXRpb25NZXNzYWdlLm5vdGlmaWNhdGlvbklkICE9PSAnc3RyaW5nJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktbWVzc2FnaW5nL3NyYy9NZXNzYWdlVHlwZUNoZWNrcy50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgRXhlY3V0ZVJlc3BvbnNlLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBNb2RlbCxcclxuICBOb3RpZmljYXRpb25IYW5kbGVyLFxyXG4gIFZlcmJJZCxcclxuICBWZXJzaW9uTnVtYmVyLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IENvbW1hbmRSZXNwb25zZU1lc3NhZ2UsIE1lc3NlbmdlciwgTm90aWZpY2F0aW9uTWVzc2FnZSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1tZXNzYWdpbmcnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIEludGVybmFsQXBpRGlzcGF0Y2hlciBpbnRlcmZhY2Ugd2hpY2ggZnVuY3Rpb25zIGJ5IHBhc3NpbmcgbWVzc2FnZXNcclxuICogYWNyb3NzIGEgZnJhbWUgYm91bmRhcnkuIFRoaXMgaXMgdXN1YWxseSBiZXR3ZWVuIHRoZSBjb2RlIHdoZXJlIG91ciBqYXZzY3JpcHQgbGlicmFyeSBoYXMgYmVlbiBpbmNsdWRlZFxyXG4gKiBieSBhIDNyZCBwYXJ0eSBkZXYgYW5kIGFub3RoZXIgZnJhbWUgd2hlcmUgVGFibGVhdSBzZXJ2ZXIgaGFzIGNvbnRlbnQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ3Jvc3NGcmFtZURpc3BhdGNoZXIgaW1wbGVtZW50cyBJbnRlcm5hbEFwaURpc3BhdGNoZXIge1xyXG5cclxuICAvLyBUaGUgYXBpIHZlcnNpb24gd2UgYXJlIG9wZXJhdGluZyB0aHJvdWdoXHJcbiAgcHJpdmF0ZSBfdmVyc2lvbk51bWJlcjogVmVyc2lvbk51bWJlcjtcclxuXHJcbiAgLy8gQ29sbGVjdGlvbiBvZiBwZW5kaW5nIHByb21pc2VzIHdoaWNoIGFyZSB3YWl0aW5nIHRvIGJlIHJlc29sdmVkLiBXaGVuIHdlIHJlY2VpdmUgYSByZXNwb25zZSBiYWNrIGZyb20gdGhlIG90aGVyIGZyYW1lLFxyXG4gIC8vIHRoZXNlIHByb21pc2VzIGNhbiBiZSBlaXRoZXIgcmVzb2x2ZWQgb3IgcmVqZWN0ZWRcclxuICBwcml2YXRlIF9wZW5kaW5nUHJvbWlzZXM6IHsgW21lc3NhZ2VHdWlkOiBzdHJpbmddOiB7IHJlc29sdmU6IChyZXNwb25zZTogRXhlY3V0ZVJlc3BvbnNlKSA9PiB2b2lkLCByZWplY3Q6IChlcnJvcjogTW9kZWwpID0+IHZvaWR9IH0gPSB7fTtcclxuXHJcbiAgLy8gVGhlIGNvbGxlY3Rpb24gb2Ygbm90aWZpY2F0aW9uIGhhbmRsZXJzIHdoaWNoIGhhdmUgYmVlbiByZWdpc3RlcmVkIHdpdGggdGhpcyBkaXNwYXRjaGVyXHJcbiAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uSGFuZGxlcnM6IEFycmF5PE5vdGlmaWNhdGlvbkhhbmRsZXI+ID0gW107XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ3Jvc3NGcmFtZURpc3BhdGNoZXIgd2hpY2ggd2lsbCB1c2UgdGhlIGdpdmVuIG1lc3NlbmdlciB0byBjb21tdW5pY2F0ZVxyXG4gICAqIEBwYXJhbSBfbWVzc2VuZ2VyIGFuIGluc3RhbnRpYXRlZCBhbmQgbGlzdGVuaW5nIG1lc3NlbmdlciBvYmplY3RcclxuICAgKi9cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfbWVzc2VuZ2VyOiBNZXNzZW5nZXIpIHtcclxuICAgIGlmICghdGhpcy5fbWVzc2VuZ2VyKSB7XHJcbiAgICAgIHRocm93ICdNaXNzaW5nIG1lc3NlbmdlciBvYmplY3QnO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFNldCB1cCBvdXIgbWVzc2FnZSBoYW5kbGVycy4gV2Ugb25seSBjYXJlIGFib3V0IGluY29taW5nIG5vdGlmaWNhdGlvbnMgYW5kIGNvbW1hbmQgcmVzcG9uc2VzXHJcbiAgICB0aGlzLl9tZXNzZW5nZXIuc2V0Q29tbWFuZFJlc3BvbnNlTWVzc2FnZUhhbmRsZXIodGhpcy5vbkNvbW1hbmRSZXNwb25zZS5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX21lc3Nlbmdlci5zZXROb3RpZmljYXRpb25NZXNzYWdlSGFuZGxlcih0aGlzLm9uTm90aWZpY2F0aW9uLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgLy8vLy8vIFN0YXJ0IEludGVybmFsQXBpRGlzcGF0Y2hlciBpbXBsZW1lbnRhdGlvblxyXG5cclxuICBwdWJsaWMgc2V0VmVyc2lvbk51bWJlcih2ZXJzaW9uTnVtYmVyOiBWZXJzaW9uTnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl92ZXJzaW9uTnVtYmVyID0gdmVyc2lvbk51bWJlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleGVjdXRlKHZlcmI6IFZlcmJJZCwgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMpOiBQcm9taXNlPEV4ZWN1dGVSZXNwb25zZT4ge1xyXG4gICAgLy8gVG8gZXhlY3V0ZSBhIHZlcmIsIHdlIGZpcnN0IHByZXBhcmUgYSBjb21tYW5kIG1lc3NhZ2UgYW5kIHRoZW4gZGVmaW5lIGEgcHJvbWlzZS5cclxuICAgIGNvbnN0IHByZXBhcmVkTWVzc2FnZSA9IHRoaXMuX21lc3Nlbmdlci5wcmVwYXJlQ29tbWFuZE1lc3NhZ2UodmVyYiwgcGFyYW1ldGVycyk7XHJcbiAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblxyXG4gICAgICAvLyBTYXZlIG9mZiB0aGUgcGVuZGluZyBwcm9taXNlIGJ5IHRoZSBtZXNzYWdlR3VpZCB3ZSBhcmUgYWJvdXQgdG8gc2VuZC4gV2hlbiBhIHJlc3BvbnNlIGlzXHJcbiAgICAgIC8vIHJlY2VpdmVkLCB3ZSdsbCBiZSBhYmxlIHRvIHJlc29sdmUgdGhpcyBwcm9taXNlIHdpdGggdGhlIHJlc3VsdFxyXG4gICAgICB0aGlzLl9wZW5kaW5nUHJvbWlzZXNbcHJlcGFyZWRNZXNzYWdlLm1lc3NhZ2VHdWlkXSA9IHsgcmVzb2x2ZTogcmVzb2x2ZSwgcmVqZWN0OiByZWplY3QgfTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIEFjdHVhbGx5IHNlbmQgdGhlIG1lc3NhZ2UgYW5kIHJldHVybiB0aGUgcHJvbWlzZVxyXG4gICAgcHJlcGFyZWRNZXNzYWdlLnNlbmQoKTtcclxuICAgIHJldHVybiBwcm9taXNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKGhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzID0gdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMuZmlsdGVyKGggPT4gaCAhPT0gaGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICAvLy8vLy8gRW5kIEludGVybmFsQXBpRGlzcGF0Y2hlciBpbXBsZW1lbnRhdGlvblxyXG5cclxuICBwcml2YXRlIG9uQ29tbWFuZFJlc3BvbnNlKHJlc3BvbnNlOiBDb21tYW5kUmVzcG9uc2VNZXNzYWdlKTogdm9pZCB7XHJcbiAgICAvLyBXZSBnb3QgYSBjb21tYW5kIHJlc3BvbnNlLCBsb29rIHRocm91Z2ggdGhlIHBlbmRpbmcgcHJvbWlzZXMgYW5kIHJlc29sdmVcclxuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLl9wZW5kaW5nUHJvbWlzZXMpLmluZGV4T2YocmVzcG9uc2UuY29tbWFuZEd1aWQpIDwgMCkge1xyXG4gICAgICByZXR1cm47IC8vIFdlIGRvbid0IGhhdmUgYW55IHJlZmVyZW5jZSB0byB0aGlzIGNvbW1hbmQsIGp1c3QgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGVuZGluZ1Byb21pc2UgPSB0aGlzLl9wZW5kaW5nUHJvbWlzZXNbcmVzcG9uc2UuY29tbWFuZEd1aWRdO1xyXG5cclxuICAgIC8vIElmIHdlIGhhdmUgYW4gZXJyb3IgZGVmaW5lZCwgcmVqZWN0IHRoZSBwcm9taXNlXHJcbiAgICBpZiAocmVzcG9uc2UuZXJyb3IpIHtcclxuICAgICAgcGVuZGluZ1Byb21pc2UucmVqZWN0KHJlc3BvbnNlLmVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJZiB3ZSBoYXZlIGRhdGEgZGVmaW5lZCwgcmVzb2x2ZSB0aGUgcHJvbWlzZVxyXG4gICAgaWYgKHJlc3BvbnNlLmRhdGEpIHtcclxuICAgICAgcGVuZGluZ1Byb21pc2UucmVzb2x2ZSh7cmVzdWx0OiByZXNwb25zZS5kYXRhfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gQ2xlYW4gdXAgb3VyIHBlbmRpbmcgcHJvbWlzZXMgb2JqZWN0XHJcbiAgICBkZWxldGUgdGhpcy5fcGVuZGluZ1Byb21pc2VzW3Jlc3BvbnNlLmNvbW1hbmRHdWlkXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uTWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgLy8gR28gdGhyb3VnaCBlYWNoIG5vdGlmaWNhdGlvbiBoYW5kbGVyIHdlIGhhdmUgcmVnaXN0ZXJlZCBhbmQgbGV0IHRoZW0ga25vdyBhIG5vdGlmaWNhdGlvbiBjYW1lIGluXHJcbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBoYW5kbGVyKHtub3RpZmljYXRpb25JZDogbm90aWZpY2F0aW9uTWVzc2FnZS5ub3RpZmljYXRpb25JZCwgZGF0YTogbm90aWZpY2F0aW9uTWVzc2FnZS5kYXRhfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAvLyBJZ25vcmUgdGhpcy4gV3JhcCBpbiB0cnkvY2F0Y2ggc28gaWYgb25lIGhhbmRsZXIgZXJyb3JzLCB0aGUgb3RoZXIgc3RpbGwgZ2V0IHRoZSBtZXNzYWdlXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Dcm9zc0ZyYW1lL0Nyb3NzRnJhbWVEaXNwYXRjaGVyLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgRGFzaGJvYXJkQ29udGVudCBuYW1lc3BhY2UuXHJcbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgRGFzaGJvYXJkQ29udGVudCBpc1xyXG4gKiBjdXJyZW50bHkganVzdCBhIChzaW5nbGUpIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb250ZW50IGltcGxlbWVudHMgQ29udHJhY3QuRGFzaGJvYXJkQ29udGVudCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rhc2hib2FyZDogQ29udHJhY3QuRGFzaGJvYXJkKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBkYXNoYm9hcmQoKTogQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmQ7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBFeHRlbnNpb25FbnZpcm9ubWVudCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyBhcyBFbnVtTWFwcGluZ3MgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgZW52aXJvbm1lbnQgbmFtZXNwYWNlLlxyXG4gKiBFbnZpcm9ubWVudCBkb2VzIG5vdCBmb2xsb3cgdGhlIEltcGwgcGF0dGVybiBhcyBpdCBpc1xyXG4gKiBqdXN0IGEgcHJvcGVydHkgYmFnLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVudmlyb25tZW50IGltcGxlbWVudHMgQ29udHJhY3QuRW52aXJvbm1lbnQge1xyXG4gIHByaXZhdGUgX2FwaVZlcnNpb246IHN0cmluZztcclxuICBwcml2YXRlIF9jb250ZXh0OiBDb250cmFjdC5FeHRlbnNpb25Db250ZXh0O1xyXG4gIHByaXZhdGUgX2xhbmd1YWdlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbW9kZTogQ29udHJhY3QuRXh0ZW5zaW9uTW9kZTtcclxuICBwcml2YXRlIF9vcGVyYXRpbmdTeXN0ZW06IHN0cmluZztcclxuICBwcml2YXRlIF90YWJsZWF1VmVyc2lvbjogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZXh0ZW5zaW9uRW52aXJvbm1lbnQ6IEV4dGVuc2lvbkVudmlyb25tZW50KSB7XHJcbiAgICB0aGlzLl9hcGlWZXJzaW9uID0gZXh0ZW5zaW9uRW52aXJvbm1lbnQuYXBpVmVyc2lvbjtcclxuICAgIHRoaXMuX2NvbnRleHQgPSBFbnVtTWFwcGluZ3MuZXh0ZW5zaW9uQ29udGV4dC5jb252ZXJ0KGV4dGVuc2lvbkVudmlyb25tZW50LmV4dGVuc2lvbkNvbnRleHQpO1xyXG4gICAgdGhpcy5fbGFuZ3VhZ2UgPSBleHRlbnNpb25FbnZpcm9ubWVudC5leHRlbnNpb25MYW5ndWFnZTtcclxuICAgIHRoaXMuX2xvY2FsZSA9IGV4dGVuc2lvbkVudmlyb25tZW50LmV4dGVuc2lvbkxvY2FsZTtcclxuICAgIHRoaXMuX21vZGUgPSBFbnVtTWFwcGluZ3MuZXh0ZW5zaW9uTW9kZS5jb252ZXJ0KGV4dGVuc2lvbkVudmlyb25tZW50LmV4dGVuc2lvbk1vZGUpO1xyXG4gICAgdGhpcy5fb3BlcmF0aW5nU3lzdGVtID0gZXh0ZW5zaW9uRW52aXJvbm1lbnQub3BlcmF0aW5nU3lzdGVtO1xyXG4gICAgdGhpcy5fdGFibGVhdVZlcnNpb24gPSBleHRlbnNpb25FbnZpcm9ubWVudC50YWJsZWF1VmVyc2lvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXBpVmVyc2lvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVZlcnNpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbnRleHQoKTogQ29udHJhY3QuRXh0ZW5zaW9uQ29udGV4dCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udGV4dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbG9jYWxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtb2RlKCk6IENvbnRyYWN0LkV4dGVuc2lvbk1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wZXJhdGluZ1N5c3RlbSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZXJhdGluZ1N5c3RlbTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdGFibGVhdVZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZWF1VmVyc2lvbjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvTmFtZXNwYWNlcy9FbnZpcm9ubWVudC50c1xuICoqLyIsImltcG9ydCB7IFNldHRpbmdzIGFzIFNldHRpbmdzQ29udHJhY3QgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2V0dGluZ3NJbXBsIH0gZnJvbSAnLi4vSW1wbC9TZXR0aW5nc0ltcGwnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24gfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBuYW1lc3BhY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3MgaW1wbGVtZW50cyBTZXR0aW5nc0NvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBzZXR0aW5nc0ltcGw6IFNldHRpbmdzSW1wbCkgeyB9XHJcblxyXG4gIHB1YmxpYyBlcmFzZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR0aW5nc0ltcGwuZXJhc2Uoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmdldChrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbCgpOiBTZXR0aW5nc0NvbGxlY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmlzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nc0ltcGwuc2F2ZUFzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldHRpbmdzSW1wbC5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL05hbWVzcGFjZXMvU2V0dGluZ3MudHNcbiAqKi8iLCJpbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnkgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU2VydmljZUltcGwgfSBmcm9tICcuL0ltcGwvSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IFNldHRpbmdzU2VydmljZUltcGwgfSBmcm9tICAnLi9JbXBsL1NldHRpbmdzU2VydmljZUltcGwnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzKGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcik6IHZvaWQge1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEluaXRpYWxpemF0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IFNldHRpbmdzU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsRXh0ZW5zaW9uc1NlcnZpY2VzLnRzXG4gKiovIiwiaW1wb3J0IHsgRXh0ZW5zaW9uQm9vdHN0cmFwSW5mbywgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLCBWZXJiSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyB9IGZyb20gJy4uL0V4dGVuc2lvbnNTZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9Jbml0aWFsaXphdGlvblNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEluaXRpYWxpemF0aW9uU2VydmljZUltcGwgaW1wbGVtZW50cyBJbml0aWFsaXphdGlvblNlcnZpY2Uge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBFeHRlbnNpb25zU2VydmljZU5hbWVzLkluaXRpYWxpemF0aW9uU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplRGFzaGJvYXJkRXh0ZW5zaW9uc0FzeW5jKCk6IFByb21pc2U8RXh0ZW5zaW9uQm9vdHN0cmFwSW5mbz4ge1xyXG4gICAgLy8gV2UgZG9uJ3QgbmVlZCBhbnkgcGFyYW1ldGVycyBmb3IgdGhpcyBjYWxsIGJlY2F1c2UgdGhleSBhcmUgYWRkZWQgaW4gZm9yIHVzIGJ5IHRoZSBkaXNwYXRjaGVyXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkluaXRpYWxpemVFeHRlbnNpb24sIHt9KS50aGVuPEV4dGVuc2lvbkJvb3RzdHJhcEluZm8+KHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gVE9ETyAtIFZhbGlkYXRlIHJldHVybiB2YWx1ZVxyXG5cclxuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0IGFzIEV4dGVuc2lvbkJvb3RzdHJhcEluZm87XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvU2VydmljZXMvSW1wbC9Jbml0aWFsaXphdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBFeHRlbnNpb25TZXR0aW5nc0luZm8sXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyB9IGZyb20gJy4uL0V4dGVuc2lvbnNTZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24sIFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL1NldHRpbmdzU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFNldHRpbmdzU2VydmljZSB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEV4dGVuc2lvbnNTZXJ2aWNlTmFtZXMuU2V0dGluZ3NTZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVTZXR0aW5nc0FzeW5jKHNldHRpbmdzOiBTZXR0aW5nc0NvbGxlY3Rpb24pOiBQcm9taXNlPFNldHRpbmdzQ29sbGVjdGlvbj4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7W1BhcmFtZXRlcklkLlNldHRpbmdzVmFsdWVzXTogc2V0dGluZ3N9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuU2F2ZUV4dGVuc2lvblNldHRpbmdzLCBwYXJhbWV0ZXJzKS50aGVuPFNldHRpbmdzQ29sbGVjdGlvbj4odmFsdWUgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZS5yZXN1bHQgYXMgRXh0ZW5zaW9uU2V0dGluZ3NJbmZvO1xyXG5cclxuICAgICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5zZXR0aW5nc1ZhbHVlcykge1xyXG4gICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uaW50ZXJuYWxFcnJvcihbJ3NhdmluZyBzZXR0aW5ncy4nXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybihyZXN1bHQuc2V0dGluZ3NWYWx1ZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL1NlcnZpY2VzL0ltcGwvU2V0dGluZ3NTZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCB7IEV4dGVuc2lvblNldHRpbmdzSW5mbyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBQYXJhbSwgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBFeHRlbnNpb25zU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvRXh0ZW5zaW9uc1NlcnZpY2VOYW1lcyc7XHJcbmltcG9ydCB7IFNldHRpbmdzQ29sbGVjdGlvbiwgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0ltcGwge1xyXG4gIHByaXZhdGUgc3RhdGljIEFTWU5DX1NBVkVfSU5fUFJPR1JFU1M6IHN0cmluZyA9ICdBc3luYyBTYXZlIGlzIGluIHByb2dyZXNzLCB1cGRhdGluZyBzZXR0aW5ncyBpcyBub3QgYWxsb3dlZC4nO1xyXG4gIHByaXZhdGUgX2lzTW9kaWZpZWQ6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfY3VycmVudFNldHRpbmdzOiBTZXR0aW5nc0NvbGxlY3Rpb247XHJcblxyXG4gIC8vIFNpbmNlIHByb21pc2VzIGNhbid0IGJlIGludHJvc3BlY3RlZCBmb3Igc3RhdGUsIGtlZXAgYSB2YXJpYWJsZSB0aGF0XHJcbiAgLy8gaW5kaWNhdGVzIGEgc2F2ZSBpcyBpbiBwcm9ncmVzcywgc28gdGhhdCBzZXQvZXJhc2UgY2FuJ3QgYmUgY2FsbGVkIGR1cmluZyBhIHNhdmUuXHJcbiAgcHJpdmF0ZSBfc2F2ZUluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNldHRpbmdzSW5mbzogRXh0ZW5zaW9uU2V0dGluZ3NJbmZvKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVyYXNlKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTtcclxuXHJcbiAgICAvLyBPbmx5IG1ha2UgYSBtb2RpZmljYXRpb24gaWYgd2UgaGF2ZSB0aGUga2V5IGFscmVhZHlcclxuICAgIGlmICh0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSkge1xyXG4gICAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XTtcclxuICAgICAgdGhpcy5faXNNb2RpZmllZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRTZXR0aW5nc1trZXldO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbCgpOiBTZXR0aW5nc0NvbGxlY3Rpb24ge1xyXG4gICAgLy8gUmV0dXJucyBhIG11dGFibGUgY29weSBvZiB0aGUgc2V0dGluZ3NcclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAvLyBKdXN0IHJlc29sdmUgaW1tZWRpYXRlbHkgaWYgc2V0dGluZ3MgYXJlIHVuY2hhbmdlZFxyXG4gICAgaWYgKCF0aGlzLl9pc01vZGlmaWVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmU8U2V0dGluZ3NDb2xsZWN0aW9uPih0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NhdmVJblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBVc2UgdGhlIHNldHRpbmdzIHNlcnZpY2UgdG8gc2F2ZSBzZXR0aW5ncyB0byB0d2JcclxuICAgIGNvbnN0IHNldHRpbmdzU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFNldHRpbmdzU2VydmljZT4oXHJcbiAgICAgIEV4dGVuc2lvbnNTZXJ2aWNlTmFtZXMuU2V0dGluZ3NTZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gc2V0dGluZ3NTZXJ2aWNlLnNhdmVTZXR0aW5nc0FzeW5jKHRoaXMuX2N1cnJlbnRTZXR0aW5ncykudGhlbjxTZXR0aW5nc0NvbGxlY3Rpb24+KG5ld1NldHRpbmdzID0+IHtcclxuICAgICAgdGhpcy5fc2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgdGhpcy5faXNNb2RpZmllZCA9IGZhbHNlO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX2N1cnJlbnRTZXR0aW5ncywgbmV3U2V0dGluZ3MpO1xyXG4gICAgICByZXR1cm4gbmV3U2V0dGluZ3M7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpOyAvLyBLZXkgc2hvdWxkbid0IGJlIGFuIGVtcHR5IHN0cmluZy5cclxuICAgIFBhcmFtLnZlcmlmeVN0cmluZyh2YWx1ZSwgJ3ZhbHVlJyk7IC8vIEVtcHR5IHN0cmluZyB2YWx1ZSBpcyBhbGxvd2VkLlxyXG4gICAgdGhpcy52ZXJpZnlTZXR0aW5nc0FyZVVubG9ja2VkKCk7XHJcblxyXG4gICAgdGhpcy5fY3VycmVudFNldHRpbmdzW2tleV0gPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzTW9kaWZpZWQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2V0dGluZ3Moc2V0dGluZ3NJbmZvOiBFeHRlbnNpb25TZXR0aW5nc0luZm8pOiB2b2lkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKHNldHRpbmdzSW5mbywgJ3NldHRpbmdzSW5mbycpO1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzLCAnc2V0dGluZ3NJbmZvLlNldHRpbmdzVmFsdWVzJyk7XHJcblxyXG4gICAgdGhpcy5fY3VycmVudFNldHRpbmdzID0gc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzO1xyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBpc01vZGlmaWVkIGZsYWdcclxuICAgIHRoaXMuX2lzTW9kaWZpZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgaGVscGVyIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSBsb2NhbCB1cGRhdGUgdG8gdGhpcy5jdXJyZW50U2V0dGluZ3MuXHJcbiAgICogQ2hlY2tzIGlmIGEgY3VycmVudCBzYXZlIGNhbGwgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MgYW5kIHRocm93cyBhbiBlcnJvciBpZiBzby5cclxuICAgKi9cclxuICBwcml2YXRlIHZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc2F2ZUluUHJvZ3Jlc3MpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihTZXR0aW5nc0ltcGwuQVNZTkNfU0FWRV9JTl9QUk9HUkVTUyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvZXh0ZW5zaW9ucy1hcGkvc3JjL0ltcGwvU2V0dGluZ3NJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEV4dGVuc2lvbnNJbXBsIH0gZnJvbSAnLi4vSW1wbC9FeHRlbnNpb25zSW1wbCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGV4dGVybmFsIEV4dGVuc2lvbnMgbmFtZXNwYWNlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV4dGVuc2lvbnMgaW1wbGVtZW50cyBDb250cmFjdC5FeHRlbnNpb25zIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBleHRlbnNpb25JbXBsOiBFeHRlbnNpb25zSW1wbCkge1xyXG4gICAgdGhpcy5leHRlbnNpb25JbXBsID0gZXh0ZW5zaW9uSW1wbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGFzaGJvYXJkQ29udGVudCgpOiBDb250cmFjdC5EYXNoYm9hcmRDb250ZW50IHtcclxuICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbkltcGwuZGFzaGJvYXJkQ29udGVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW52aXJvbm1lbnQoKTogQ29udHJhY3QuRW52aXJvbm1lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uSW1wbC5lbnZpcm9ubWVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogQ29udHJhY3QuU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uSW1wbC5zZXR0aW5ncztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdWkoKTogQ29udHJhY3QuVUkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5pdGlhbGl6ZUFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXh0ZW5zaW9uSW1wbC5pbml0aWFsaXplQXN5bmMoKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9leHRlbnNpb25zLWFwaS9zcmMvTmFtZXNwYWNlcy9FeHRlbnNpb25zLnRzXG4gKiovIiwiaW1wb3J0IHsgQXBpRXZlbnRIYW5kbGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWNvcmUnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIsIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsIH0gZnJvbSAnLi9BZGRJbkFwaVByZXNMYXllckltcGwnO1xyXG5pbXBvcnQgeyBEZXNrdG9wQXBpRGlzcGF0Y2hlciB9IGZyb20gJy4vRGVza3RvcEFwaURpc3BhdGNoZXInO1xyXG5pbXBvcnQgeyBoYXNRdCwgaW5pdGlhbGl6ZVdlYkNoYW5uZWxQcmVzTGF5ZXIgfSBmcm9tICcuL1F0V2ViQ2hhbm5lbEltcGwnO1xyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXIgZm9yIGFsbCB0aGUgYm9vdHN0cmFwcGluZyBsb2dpYy4gVGhpcyBjb2RlIGF0dGVtcHRzIHRvIGluaXRpYWxpemUgdGhlIHF0IHByZXMtbGF5ZXJcclxuICogYXMgd2VsbCBhcyB0aGUgZGVza3RvcCBkaXNwYXRjaGVyLiBJdCB0aGVuIGFzc2lnbnMgaXQgdG8gdGhlIGdsb2JhbCBkZXNrdG9wIGRpc3BhdGNoZXIgdG9cclxuICogYmUgcGlja2VkIHVwIGJ5IHRoZSBhZGQtaW4gZXh0ZXJuYWwgQXBpXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZG9Cb290c3RyYXAoKTogUHJvbWlzZTxJbnRlcm5hbEFwaURpc3BhdGNoZXI+IHtcclxuICBpZiAoIWhhc1F0KCkpIHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgnTm90IHJ1bm5pbmcgaW4gZGVza3RvcCB3aXRoIHF0IGF2YWlsYWJsZScpO1xyXG4gIH1cclxuXHJcbiAgLy8gRmlyc3Qgd2UgbmVlZCB0byBpbml0aWFsaXplIHRoZSB3ZWJjaGFubmVsIHByZXMtbGF5ZXJcclxuICBsZXQgZGlzcGF0Y2hlclByb21pc2UgPSBpbml0aWFsaXplV2ViQ2hhbm5lbFByZXNMYXllcigpLnRoZW48SW50ZXJuYWxBcGlEaXNwYXRjaGVyPigocHJlc2xheWVyKSA9PiB7XHJcbiAgICBjb25zdCBwcmVzTGF5ZXJBcGkgPSBuZXcgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsKHByZXNsYXllcik7XHJcbiAgICBpZiAoIXByZXNMYXllckFwaS5BZGRJbkluc3RhbmNlSW5mby5hZGRJbkxvY2F0b3JQcmVzTW9kZWwpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pc1VuZGVmaW5lZChbJ0FkZEluSW5zdGFuY2VJbmZvJ10pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgdGhlIGFwaUV2ZW50SGFuZGxlciBhbmQgdGhlIGRlc2t0b3BEaXNwYXRjaGVyIHdpdGggaXRcclxuICAgIGNvbnN0IGFwaUV2ZW50SGFuZGxlciA9IG5ldyBBcGlFdmVudEhhbmRsZXIocHJlc0xheWVyQXBpLCBwcmVzTGF5ZXJBcGkuQWRkSW5JbnN0YW5jZUluZm8uYWRkSW5Mb2NhdG9yUHJlc01vZGVsLCB0cnVlKTtcclxuICAgIGNvbnN0IGRlc2t0b3BEaXNwYXRjaGVyID0gbmV3IERlc2t0b3BBcGlEaXNwYXRjaGVyKGFwaUV2ZW50SGFuZGxlcik7XHJcblxyXG4gICAgcmV0dXJuIGRlc2t0b3BEaXNwYXRjaGVyO1xyXG4gIH0pO1xyXG5cclxuICAvLyBBc3NpZ24gdGhlIGRlc2t0b3AgZGlzcGF0Y2hlciBmb3IgdGhlIG90aGVyIHByb2plY3QgdG8gZmluZCBpdFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5zZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoZGlzcGF0Y2hlclByb21pc2UpO1xyXG5cclxuICByZXR1cm4gZGlzcGF0Y2hlclByb21pc2U7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0ZyZWxhcmREZXNrdG9wQm9vdHN0cmFwLnRzXG4gKiovIiwiLyoqXHJcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXHJcbiAqXHJcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL0FwaUV2ZW50SGFuZGxlcic7XHJcblxyXG4vLyBOZWVkIHRvIGV4cG9ydCB0aGVzZSB0d28gcHJlcyBtb2RlbHMgZm9yIHVzZSBieSBvdGhlciBwcm9qZWN0c1xyXG5leHBvcnQge1xyXG4gIEFkZEluSW5zdGFuY2VQcmVzTW9kZWwsXHJcbiAgQWRkSW5Mb2NhdG9yUHJlc01vZGVsLFxyXG4gIEFkZEluQm9vdHN0cmFwSW5mb1ByZXNNb2RlbCxcclxuICBQcmVzZW50YXRpb25Nb2RlbFxyXG59IGZyb20gJy4uL2dlbi1zcmMvcHJlc2xheWVyL1ByZXNNb2RlbHMnO1xyXG5leHBvcnQgeyBOb3RpZmljYXRpb25JZCB9IGZyb20gJy4uL2dlbi1zcmMvcHJlc2xheWVyL0V2ZW50cyc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL0FwaUNvcmUudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEV4ZWN1dGVSZXNwb25zZSxcclxuICBFeHRlbnNpb25Mb2NhdG9yIGFzIEFwaUV4dGVuc2lvbkxvY2F0b3IsXHJcbiAgTW9kZWwsXHJcbiAgTm90aWZpY2F0aW9uSWQsXHJcbiAgUGFyYW1ldGVySWQgYXMgQXBpUGFyYW1ldGVySWQsXHJcbiAgVmVyYklkLFxyXG4gIFZlcnNpb25OdW1iZXIsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcbmltcG9ydCB7IFByZXNlbnRhdGlvbkxheWVyIH0gZnJvbSAnQHRhYmxlYXUvcHJlc2xheWVyLWFwaS1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JZCBhcyBQcmVzTGF5ZXJFdmVudElkIH0gZnJvbSAnLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUHJlc0xheWVyUGFyYW1ldGVySWQgfSBmcm9tICcuLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBBZGRJbkxvY2F0b3JQcmVzTW9kZWwsIFByZXNlbnRhdGlvbk1vZGVsIH0gZnJvbSAnLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvUHJlc01vZGVscyc7XHJcbmltcG9ydCB7IENvbW1hbmRNYXBwaW5nUmVnaXN0cnkgfSBmcm9tICcuL21hcHBpbmdzL0NvbW1hbmRNYXBwaW5nUmVnaXN0cnknO1xyXG5pbXBvcnQgeyBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeSB9IGZyb20gJy4vbWFwcGluZ3MvQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnknO1xyXG5pbXBvcnQgeyBFdmVudE1hcHBpbmdSZWdpc3RyeSwgRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5IH0gZnJvbSAnLi9tYXBwaW5ncy9FdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnknO1xyXG5pbXBvcnQge1xyXG4gIEFwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5LFxyXG4gIFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnksXHJcbiAgUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnksXHJcbn0gZnJvbSAnLi9tYXBwaW5ncy9QYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5JztcclxuXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbkhhbmRsZXIgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb25JZCwgbW9kZWw6IE1vZGVsKSA9PiB2b2lkO1xyXG5cclxuLyoqXHJcbiAqIE1haW4gY2xhc3MgZm9yIHRoZSBhcGktY29yZSBwcm9qZWN0LiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBleGVjdXRpbmcgY29tYW1uZCBhbmQgbWFyc2hhbGxpbmcgbm90aWZpY2F0aW9uc1xyXG4gKiBiZXR3ZWVuIHRoZSBpbnRlcm5hbCBBcGkgYW5kIHRoZSBwcmVzLWxheWVyIEFwaS4gQWZ0ZXIgY29uc3RydWN0aW9uLCBTZXRWZXJzaW9uTnVtYmVyIG11c3QgYmUgY2FsbGVkIGluIG9yZGVyIHRvXHJcbiAqIHVzZSB0aGlzIGNsYXNzXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEFwaUV2ZW50SGFuZGxlclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaUV2ZW50SGFuZGxlciB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgVkVSU0lPTl9OT1RfQ09ORklHVVJFRDogc3RyaW5nID0gJ1ZlcnNpb25OdW1iZXIgbm90IHlldCBjb25maWd1cmVkLiBDYW5ub3QgdGFrZSBhbnkgYWN0aW9ucyc7XHJcbiAgcHJpdmF0ZSBfYXBpRXh0ZW5zaW9uTG9jYXRvcjogQXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuICBwcml2YXRlIF9ldmVudEhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXI7XHJcbiAgcHJpdmF0ZSBfY29tbWFuZFJlZ2lzdHJ5OiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX2V2ZW50UmVnaXN0cnk6IEV2ZW50TWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX2FwaVRvUHJlc0xheWVyUmVnaXN0cnk6IEFwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX3ByZXNMYXllclRvQXBpUmVnaXN0cnk6IFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5O1xyXG4gIHByaXZhdGUgX3ZlcnNpb25OdW1iZXI/OiBWZXJzaW9uTnVtYmVyO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEFwaUV2ZW50SGFuZGxlci5cclxuICAgKiBAcGFyYW0ge1ByZXNlbnRhdGlvbkxheWVyfSBwcmVzTGF5ZXIgLSBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcHJlcy1sYXllciBBcGkgdG8gdXNlXHJcbiAgICogQHBhcmFtIHtBZGRJbkxvY2F0b3JQcmVzTW9kZWx9IGFkZEluTG9jYXRvclByZXNNb2RlbCAtIGxvY2F0b3IgZm9yIHRoZSBhZGQtaW4gd2hpY2ggaXMgYmVpbmcgcmVmZXJlbmNlZFxyXG4gICAqIEBwYXJhbSB7cnVubmluZ0luRGVza3RvcH0gYm9vbGVhbiAtIHRydWUgaWYgdGhpcyBpcyBBcGlFdmVudEhhbmRsZXIgaXMgY3JlYXRlZCBpbiBhIERlc2t0b3AgY29udGV4dC5cclxuICAgKiBAbWVtYmVyb2YgQXBpRXZlbnRIYW5kbGVyXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfcHJlc0xheWVyOiBQcmVzZW50YXRpb25MYXllcixcclxuICAgICAgICAgICAgICBwcml2YXRlIF9wcmVzTGF5ZXJBZGRJbkxvY2F0b3I6IEFkZEluTG9jYXRvclByZXNNb2RlbCxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9ydW5uaW5nSW5EZXNrdG9wOiBib29sZWFuKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgaW50ZXJuYWwgQXBpIHZlcnNpb24gbnVtYmVyIHdoaWNoIHRoZSBleHRlcm5hbCBsaWJyYXJ5IGlzIGV4cGVjdGluZyB0byB1c2UuIFRoaXMgbXVzdCBiZSBjYWxsZWQgYmVmb3JlXHJcbiAgICogYW55dGhpbmcgZWxzZSBpbiBvcmRlciB0byBwcm9wZXJseSBzZXQgdXAgdGhlIHRyYW5zbGF0aW9uIGxheWVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VmVyc2lvbk51bWJlcn0gdmVyc2lvbk51bWJlclxyXG4gICAqIEBtZW1iZXJvZiBBcGlFdmVudEhhbmRsZXJcclxuICAgKi9cclxuICBwdWJsaWMgc2V0VmVyc2lvbk51bWJlcih2ZXJzaW9uTnVtYmVyOiBWZXJzaW9uTnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl92ZXJzaW9uTnVtYmVyID0gdmVyc2lvbk51bWJlcjtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIGFsbCBvdXIgcmVnaXN0cmllc1xyXG4gICAgdGhpcy5fY29tbWFuZFJlZ2lzdHJ5ID0gQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuY3JlYXRlQ29tbWFuZE1hcHBpbmdSZWdpc3RyeSh2ZXJzaW9uTnVtYmVyLCB0aGlzLl9ydW5uaW5nSW5EZXNrdG9wKTtcclxuICAgIHRoaXMuX2FwaVRvUHJlc0xheWVyUmVnaXN0cnkgPSBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmNyZWF0ZUFwaVRvUHJlc0xheWVyUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcclxuICAgIHRoaXMuX3ByZXNMYXllclRvQXBpUmVnaXN0cnkgPSBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmNyZWF0ZVByZXNMYXllclRvQXBpUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcclxuICAgIHRoaXMuX2V2ZW50UmVnaXN0cnkgPSBFdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuY3JlYXRlRXZlbnRNYXBwaW5nUmVnaXN0cnkodmVyc2lvbk51bWJlcik7XHJcblxyXG4gICAgLy8gQ29udmVydCBvdXIgYWRkSW5Mb2NhdG9yIHRvIHRoZSBBcGkgdmVyc2lvblxyXG4gICAgdGhpcy5fYXBpRXh0ZW5zaW9uTG9jYXRvciA9IHRoaXMuX3ByZXNMYXllclRvQXBpUmVnaXN0cnlcclxuICAgICAgLmdldChQcmVzTGF5ZXJQYXJhbWV0ZXJJZC5BZGRJbkxvY2F0b3IsIEFwaVBhcmFtZXRlcklkLkV4dGVuc2lvbkxvY2F0b3IpKHRoaXMuX3ByZXNMYXllckFkZEluTG9jYXRvcikgYXMgQXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHBsRXZlbnRJZCBvZiBPYmplY3Qua2V5cyh0aGlzLl9ldmVudFJlZ2lzdHJ5KSkge1xyXG4gICAgICAvLyBSZWdpc3RlciBmb3IgYWxsIG5vdGlmaWNhdGlvbnMgd2Uga25vdyBhYm91dCBhbmQgYmluZCB0aGUgZXZlbnQgdHlwZSB0byB0aGUgY2FsbGJhY2tcclxuICAgICAgdGhpcy5fcHJlc0xheWVyLnJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihwbEV2ZW50SWQsIHRoaXMub25QcmVzTGF5ZXJOb3RpZmljYXRpb24uYmluZCh0aGlzLCBwbEV2ZW50SWQpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgYW4gZXZlbnQgaGFuZGxlciBmdW5jdGlvbiB0byBiZSBub3RpZmllZCB3aGVuIEFwaSBldmVudHMgY29tZSBpbi4gT25seSBhIHNpbmdsZSByZWdpc3RyYXRpb24gaXMgc3VwcG9ydGVkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtOb3RpZmljYXRpb25IYW5kbGVyfSBldmVudEhhbmRsZXJcclxuICAgKiBAbWVtYmVyb2YgQXBpRXZlbnRIYW5kbGVyXHJcbiAgICovXHJcbiAgcHVibGljIHNldEV2ZW50SGFuZGxlcihldmVudEhhbmRsZXI6IE5vdGlmaWNhdGlvbkhhbmRsZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2V2ZW50SGFuZGxlciA9IGV2ZW50SGFuZGxlcjtcclxuXHJcbiAgICAvLyBUT0RPIC0gUmVnaXN0ZXIgZm9yIHByZXMgbGF5ZXIgZXZlbnRzXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyB0aGUgcmVxdWVzdGVkIEFwaSBjb21tYW5kIGJ5IGNvbnZlcnRpbmcgdGhlIHBhcmFtZXRlcnMsIHJ1bm5pbmcgdGhlIGNvbW1hbmQgYWdhaW5zdCB0aGUgcHJlcy1sYXllcixcclxuICAgKiB0aGVuIHByb2Nlc3NpbmcgdGhlIHJlc3VsdCBiYWNrIGludG8gYSBmb3JtYXQgdGhlIEFwaSBjYW4gdW5kZXJzdGFuZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWZXJiSWR9IHZlcmJcclxuICAgKiBAcGFyYW0ge0V4ZWN1dGVQYXJhbWV0ZXJzfSBwYXJhbWV0ZXJzXHJcbiAgICogQHJldHVybnMge1Byb21pc2U8RXhlY3V0ZVJlc3BvbnNlPn1cclxuICAgKiBAbWVtYmVyb2YgQXBpRXZlbnRIYW5kbGVyXHJcbiAgICovXHJcbiAgcHVibGljIGV4ZWN1dGUodmVyYjogVmVyYklkLCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyk6IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPiB7XHJcbiAgICB0aGlzLmFzc2VydEluaXRpYWxpemVkKCk7XHJcblxyXG4gICAgY29uc3QgY29tbWFuZCA9IHRoaXMuX2NvbW1hbmRSZWdpc3RyeS5nZXRDb21tYW5kKHZlcmIpO1xyXG4gICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMgfHwge307XHJcblxyXG4gICAgLy8gQXVnbWVudCB0aGUgY29tbWFuZCB3aXRoIHRoZSBsb2NhdG9yIGlmIGl0J3MgbmVlZGVkXHJcbiAgICBpZiAoY29tbWFuZC5uZWVkc0FkZEluTG9jYXRvcikge1xyXG4gICAgICBwYXJhbWV0ZXJzW0FwaVBhcmFtZXRlcklkLkV4dGVuc2lvbkxvY2F0b3JdID0gdGhpcy5fYXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb21tYW5kc1BhcmFtcyA9IGNvbW1hbmQuY3JlYXRlUGFyYW1zKHBhcmFtZXRlcnMsIHRoaXMuX2FwaVRvUHJlc0xheWVyUmVnaXN0cnkpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9wcmVzTGF5ZXIuaW52b2tlQ29tbWFuZDx7W2RvY1BhcmFtSWQ6IHN0cmluZ106IG9iamVjdH0+KGNvbW1hbmQubmFtZXNwYWNlLCBjb21tYW5kLmNvbW1hbmRJZCwgY29tbWFuZHNQYXJhbXMpXHJcbiAgICAudGhlbjxFeGVjdXRlUmVzcG9uc2U+KChjb21tYW5kUmVzdWx0KSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnZlcnRlZFJlc3VsdCA9IGNvbW1hbmQuUHJvY2Vzc1Jlc3VsdChjb21tYW5kUmVzdWx0LCB0aGlzLl9wcmVzTGF5ZXJUb0FwaVJlZ2lzdHJ5KTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICByZXN1bHQ6IGNvbnZlcnRlZFJlc3VsdFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IEFwaUV4dGVuc2lvbkxvY2F0b3IoKTogQXBpRXh0ZW5zaW9uTG9jYXRvciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpRXh0ZW5zaW9uTG9jYXRvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2QgdG8gY2hlY2sgdGhhdCB0aGluZ3MgYXJlIGluaXRpYWxpemVkIGFzIGV4cGVjdGVkLiBUaHJvd3MgaWYgaW5pdGlhbGl6YXRpb24gbm90IGNvbXBsZXRlXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqIEBtZW1iZXJvZiBBcGlFdmVudEhhbmRsZXJcclxuICAgKi9cclxuICBwcml2YXRlIGFzc2VydEluaXRpYWxpemVkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl92ZXJzaW9uTnVtYmVyKSB7XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoQXBpRXZlbnRIYW5kbGVyLlZFUlNJT05fTk9UX0NPTkZJR1VSRUQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsbGVkIHdoZW4gYSBuZXcgZXZlbnQgbm90aWZpY2F0aW9uIGNvbWVzIGluIGZyb20gdGhlIHByZXNlbnRhdGlvbiBsYXllclxyXG4gICAqXHJcbiAgICogQHBhcmFtIGV2ZW50SWQgVGhlIHByZXMgbGF5ZXIgZXZlbnQgaWRcclxuICAgKiBAcGFyYW0gcHJlc01vZGVsIFRoZSBwcmVzIG1vZGVsIHRoYXQgaXMgaW5jbHVkZWQgd2l0aCB0aGUgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uUHJlc0xheWVyTm90aWZpY2F0aW9uKGV2ZW50SWQ6IFByZXNMYXllckV2ZW50SWQsIHByZXNNb2RlbDogUHJlc2VudGF0aW9uTW9kZWwpOiB2b2lkIHtcclxuICAgIC8vIEZpcnN0IGxvb2sgdXAgdGhpcyBldmVudElkIGluIG91ciByZWdpc3RyeSBhbmQgY29udmVydCB0byBwcmVzTW9kZWxcclxuICAgIGNvbnN0IGV2ZW50TWFwcGluZyA9IHRoaXMuX2V2ZW50UmVnaXN0cnlbZXZlbnRJZF07XHJcbiAgICBjb25zdCBhcGlNb2RlbCA9IGV2ZW50TWFwcGluZy5jb252ZXJ0ZXIocHJlc01vZGVsKTtcclxuXHJcbiAgICBpZiAodGhpcy5fZXZlbnRIYW5kbGVyKSB7XHJcbiAgICAgIHRoaXMuX2V2ZW50SGFuZGxlcihldmVudE1hcHBpbmcuYXBpSWQsIGFwaU1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvQXBpRXZlbnRIYW5kbGVyLnRzXG4gKiovIiwiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy9cclxuLy8gVGhpcyBmaWxlIGlzIHRoZSBjb3B5cmlnaHRlZCBwcm9wZXJ0eSBvZiBUYWJsZWF1IFNvZnR3YXJlIGFuZCBpcyBwcm90ZWN0ZWRcclxuLy8gYnkgcmVnaXN0ZXJlZCBwYXRlbnRzIGFuZCBvdGhlciBhcHBsaWNhYmxlIFUuUy4gYW5kIGludGVybmF0aW9uYWwgbGF3cyBhbmRcclxuLy8gcmVndWxhdGlvbnMuXHJcbi8vXHJcbi8vIFVubGljZW5zZWQgdXNlIG9mIHRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgaXMgcHJvaGliaXRlZC4gUGxlYXNlIHJlZmVyIHRvXHJcbi8vIHRoZSBOT1RJQ0VTLnR4dCBmaWxlIGZvciBmdXJ0aGVyIGRldGFpbHMuXHJcbi8vXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vIFdBUk5JTkc6IENvbXB1dGVyIGdlbmVyYXRlZCBmaWxlLiAgRG8gbm90IGhhbmQgbW9kaWZ5LlxyXG4vLyBERVBFTkRTIE9OOiBbJy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL25vZGVfbW9kdWxlcy9AdGFibGVhdS9wcmVzbGF5ZXItY29kZWdlbi10eXBlc2NyaXB0L3RlbXBsYXRlcy9wYXJhbXMtdHMudGVtcGxhdGUnLCB1Jy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL3RlbXAtcHJlcy1sYXllci9hbGwtcGFyYW1zLmRhdGEnXVxyXG5cclxuZXhwb3J0IGVudW0gUGFyYW1ldGVySWQge1xyXG5cclxuICAvLyBEUElfSW50ZWdlclJMRSwgaGF2aW5nIHR5cGUgaW50W11cclxuICBJbnRlZ2VyUkxFID0gJ2ludFJsZScsXHJcblxyXG4gIC8vIERQSV9VbnNpZ25lZEludGVnZXJSTEUsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFVuc2lnbmVkSW50ZWdlclJMRSA9ICd1aW50UmxlJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0UkxFLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgRmxvYXRSTEUgPSAnZmxvYXRSbGUnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVySUQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlcklEID0gJ3BhcmFtVHlwZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd0N1c3RvbURhdGFiYXNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dDdXN0b21EYXRhYmFzZSA9ICdhbGxvd0N1c3RvbURhdGFiYXNlJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93Q3VzdG9tU2NoZW1hLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dDdXN0b21TY2hlbWEgPSAnYWxsb3dDdXN0b21TY2hlbWEnLFxyXG5cclxuICAvLyBEUElfQWxsb3dDdXN0b21TUUwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0N1c3RvbVNRTCA9ICdhbGxvd0N1c3RvbVNxbCcsXHJcblxyXG4gIC8vIERQSV9BbGxvd0N1c3RvbVNRTFdpdGhvdXRTY2hlbWEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0N1c3RvbVNRTFdpdGhvdXRTY2hlbWEgPSAnYWxsb3dDdXN0b21TcWxXaXRob3V0U2NoZW1hJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93UHJldmlld0RhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1ByZXZpZXdEYXRhID0gJ2FsbG93UHJldmlld0RhdGEnLFxyXG5cclxuICAvLyBEUElfQWxsb3dTdG9yZWRQcm9jLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dTdG9yZWRQcm9jID0gJ2FsbG93U3RvcmVkUHJvY2VkdXJlJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93VW5pb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1VuaW9uID0gJ2FsbG93VW5pb24nLFxyXG5cclxuICAvLyBEUElfQXJlVmFyaWFibGVzVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZVZhcmlhYmxlc1Zpc2libGUgPSAnYXJlVmFyaWFibGVzVmlzaWJsZScsXHJcblxyXG4gIC8vIERQSV9BdHRyTGVnYWN5Q29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF0dHJMZWdhY3lDb25uZWN0aW9uID0gJ3dpZGdldEF0dHJMZWdhY3knLFxyXG5cclxuICAvLyBEUElfQXR0clJlYWRVbmNvbW1pdHRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF0dHJSZWFkVW5jb21taXR0ZWQgPSAnd2lkZ2V0QXR0clJlYWRVbmNvbW1pdHRlZERhdGEnLFxyXG5cclxuICAvLyBEUElfQXR0clJlcXVpcmVTU0wsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBdHRyUmVxdWlyZVNTTCA9ICd3aWRnZXRBdHRyUmVxdWlyZVNzbCcsXHJcblxyXG4gIC8vIERQSV9BdHRyUmVxdWlyZUVuY3J5cHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBdHRyUmVxdWlyZUVuY3J5cHRpb24gPSAnd2lkZ2V0QXR0clJlcXVpcmVFbmNyeXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Jvb2wsIGhhdmluZyB0eXBlIGJvb2xcclxuICBCb29sID0gJ2Jvb2wnLFxyXG5cclxuICAvLyBEUElfQ2FuUGFydGl0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuUGFydGl0aW9uID0gJ2NhblBhcnRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9DYW5SZWNvbW1lbmREYXRhU291cmNlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblJlY29tbWVuZERhdGFTb3VyY2VzID0gJ2NhblJlY29tbWVuZERhdGFzb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX0NhblJlY29tbWVuZFRhYmxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblJlY29tbWVuZFRhYmxlcyA9ICdjYW5SZWNvbW1lbmRUYWJsZXMnLFxyXG5cclxuICAvLyBEUElfQ2hlY2tQZXJtaXNzaW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoZWNrUGVybWlzc2lvbnMgPSAnY2hlY2tQZXJtaXNzaW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXRhYmFzZU5hbWVPcHRpb25hbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERhdGFiYXNlTmFtZU9wdGlvbmFsID0gJ2RhdGFiYXNlTmFtZU9wdGlvbmFsJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFiYXNlV0hPcHRpb25hbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERhdGFiYXNlV0hPcHRpb25hbCA9ICdkYXRhYmFzZVdhcmVob3VzZU9wdGlvbmFsJyxcclxuXHJcbiAgLy8gRFBJX0RvVmFsaWRhdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERvVmFsaWRhdGlvbiA9ICdkb1ZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBEUElfRG9uZUxvYWRpbmdBbGxTaGVldHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEb25lTG9hZGluZ0FsbFNoZWV0cyA9ICdnb29nbGVTaGVldERvbmVMb2FkaW5nJyxcclxuXHJcbiAgLy8gRFBJX0dBQmFzaWNJdGVtc0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBHQUJhc2ljSXRlbXNFbmFibGVkID0gJ2dhQmFzaWNJdGVtc0VuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfR0FEaW1lbnNpb25NZWFzdXJlc0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBHQURpbWVuc2lvbk1lYXN1cmVzRW5hYmxlZCA9ICdnYURpbWVuc2lvbnNNZWFzdXJlc0VuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfR0FGaWx0ZXJzRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEdBRmlsdGVyc0VuYWJsZWQgPSAnZ2FGaWx0ZXJzRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9IYXNEYXRhYmFzZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0RhdGFiYXNlID0gJ2hhc0RhdGFiYXNlJyxcclxuXHJcbiAgLy8gRFBJX0hhc0RhdGFMb3NzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzRGF0YUxvc3MgPSAnaGFzRGF0YUxvc3MnLFxyXG5cclxuICAvLyBEUElfSGFzRmFzdE1ldGFkYXRhLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzRmFzdE1ldGFkYXRhID0gJ2hhc0Zhc3RNZXRhZGF0YScsXHJcblxyXG4gIC8vIERQSV9IYXNOZXdseURpc2NvdmVyZWRTY2hlbWEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNOZXdseURpc2NvdmVyZWRTY2hlbWEgPSAnaGFzTmV3bHlEaXNjb3ZlcmVkU2NoZW1hJyxcclxuXHJcbiAgLy8gRFBJX0hhc1Blcm1pc3Npb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzUGVybWlzc2lvbnMgPSAnaGFzUGVybWlzc2lvbnMnLFxyXG5cclxuICAvLyBEUElfSGFzU2NoZW1hLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU2NoZW1hID0gJ2hhc1NjaGVtYScsXHJcblxyXG4gIC8vIERQSV9IYXNTY2hlbWFDb3VudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1NjaGVtYUNvdW50ID0gJ2hhc1NjaGVtYUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX0hhc1RhYmxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1RhYmxlcyA9ICdoYXNUYWJsZXMnLFxyXG5cclxuICAvLyBEUElfSGFzVW5jb21taXR0ZWRDaGFuZ2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzVW5jb21taXR0ZWRDaGFuZ2VzID0gJ2hhc1VuY29tbWl0dGVkQ2hhbmdlcycsXHJcblxyXG4gIC8vIERQSV9IYXNXYXJlaG91c2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNXYXJlaG91c2UgPSAnaGFzV2FyZWhvdXNlJyxcclxuXHJcbiAgLy8gRFBJX0hhc1dhcm5pbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNXYXJuaW5nID0gJ2hhc1dhcm5pbmcnLFxyXG5cclxuICAvLyBEUElfSXNDYWxjdWxhdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYWxjdWxhdGVkID0gJ2lzQ2FsY3VsYXRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0Nvbm5lY3RlZFRvRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ29ubmVjdGVkVG9EYXRhU291cmNlID0gJ2lzQ29ubmVjdGVkRGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Jc0Rpc2FibGVkRGF0YUNvbm5lY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Rpc2FibGVkRGF0YUNvbm5lY3Rpb24gPSAnaXNEaXNhYmxlZERhdGFDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzRWRpdGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VkaXRhYmxlID0gJ2lzRWRpdGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNFbmFibGVkID0gJ2lzRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0ZpbmlzaGVkQ29ubmVjdGluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRmluaXNoZWRDb25uZWN0aW5nID0gJ2lzRmluaXNoZWRDb25uZWN0aW5nJyxcclxuXHJcbiAgLy8gRFBJX0lzSGlkZGVuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNIaWRkZW4gPSAnaXNIaWRkZW4nLFxyXG5cclxuICAvLyBEUElfSXNNdWx0aVRhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNdWx0aVRhYmxlID0gJ2lzTXVsdGlUYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc05ld0N1c3RvbVNRTCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTmV3Q3VzdG9tU1FMID0gJ2lzTmV3Q3VzdG9tU3FsJyxcclxuXHJcbiAgLy8gRFBJX0lzTmV3RGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTmV3RGF0YVNvdXJjZSA9ICdpc05ld0RhdGFTcmMnLFxyXG5cclxuICAvLyBEUElfSXNQdWJsaXNoZWRGZWRlcmF0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1B1Ymxpc2hlZEZlZGVyYXRlZCA9ICdpc1B1Ymxpc2hlZEZlZGVyYXRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1NhbXBsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NhbXBsZWQgPSAnaXNTYW1wbGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzU2NoZW1hTWVtYmVyTmV3bHlEaXNjb3ZlcmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTY2hlbWFNZW1iZXJOZXdseURpc2NvdmVyZWQgPSAnaXNTY2hlbWFNZW1iZXJOZXdseURpc2NvdmVyZWQnLFxyXG5cclxuICAvLyBEUElfSXNTbG93RmFzdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2xvd0Zhc3QgPSAnaXNTbG93ZmFzdCcsXHJcblxyXG4gIC8vIERQSV9Jc1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU3VwcG9ydGVkID0gJ2lzU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVTZWxlY3Rpb25WaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUYWJsZVNlbGVjdGlvblZpc2libGUgPSAnaXNUYWJsZVNlbGVjdGlvblZpc2libGUnLFxyXG5cclxuICAvLyBEUElfSXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVGFibGVhdVNlcnZlckRhdGFzb3VyY2UgPSAnaXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Jc1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlQ29ubmVjdGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlQ29ubmVjdGFibGUgPSAnaXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZUNvbm5lY3RhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEb3dubG9hZGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlRG93bmxvYWRhYmxlID0gJ2lzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEb3dubG9hZGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNWaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNWaXNpYmxlID0gJ2lzVmlzaWJsZScsXHJcblxyXG4gIC8vIERQSV9OZWVkRmxhdHRlbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE5lZWRGbGF0dGVuID0gJ25lZWRGbGF0dGVuJyxcclxuXHJcbiAgLy8gRFBJX1NTTFJlcXVpcmVzQ2VydGlmaWNhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTU0xSZXF1aXJlc0NlcnRpZmljYXRlID0gJ3NzbFJlcXVpcmVzQ2VydGlmaWNhdGUnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hT3B0aW9uYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTY2hlbWFPcHRpb25hbCA9ICdzY2hlbWFPcHRpb25hbCcsXHJcblxyXG4gIC8vIERQSV9TZXJ2aWNlTmFtZU9wdGlvbmFsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2VydmljZU5hbWVPcHRpb25hbCA9ICdzZXJ2aWNlTmFtZU9wdGlvbmFsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFdhcm5Gb3JDcm9zc1NjaGVtYUpvaW5zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkV2FybkZvckNyb3NzU2NoZW1hSm9pbnMgPSAnc2hvdWxkV2FybkNyb3NzU2NoZW1hSm9pbnMnLFxyXG5cclxuICAvLyBEUElfU2hvd0Jyb3dzZUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dCcm93c2VCdXR0b24gPSAnc2hvd0Jyb3dzZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9TaG93Q29ubmVjdGlvblByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dDb25uZWN0aW9uUHJvbXB0ID0gJ3Nob3dDb25uZWN0aW9uUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEQkJyb3dzZUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEQkJyb3dzZUJ1dHRvbiA9ICdzaG93RGJCcm93c2VCdXR0b24nLFxyXG5cclxuICAvLyBEUElfU2hvd0RCTmFtZVByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEQk5hbWVQcm9tcHQgPSAnc2hvd0RiUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEQldITmFtZVByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEQldITmFtZVByb21wdCA9ICdzaG93RGJ3aFByb21wdCcsXHJcblxyXG4gIC8vIERQSV9TaG93SW1wb3J0U1NMQ2VydExhYmVsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0ltcG9ydFNTTENlcnRMYWJlbCA9ICdzaG93SW1wb3J0U3NsY2VydExhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dQb3J0UHJvbXB0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1BvcnRQcm9tcHQgPSAnc2hvd1BvcnRQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfU2hvd1NTTENoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NTTENoZWNrYm94ID0gJ3Nob3dTc2xDaGVja2JveCcsXHJcblxyXG4gIC8vIERQSV9TaG93RW5jcnlwdGlvbkNoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0VuY3J5cHRpb25DaGVja2JveCA9ICdzaG93RW5jcnlwdGlvbkNoZWNrYm94JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dTZXJ2ZXJOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NlcnZlck5hbWVQcm9tcHQgPSAnc2hvd1NlcnZlclByb21wdCcsXHJcblxyXG4gIC8vIERQSV9TaG93U2VydmljZU5hbWVQcm9tcHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93U2VydmljZU5hbWVQcm9tcHQgPSAnc2hvd1NlcnZpY2VQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfU2hvd1VuY29tbWl0dGVkRGF0YUNoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1VuY29tbWl0dGVkRGF0YUNoZWNrYm94ID0gJ3Nob3dVbmNvbW1pdHRlZERhdGFDaGVja2JveCcsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0c0dlbmVyaWNBdXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNHZW5lcmljQXV0aCA9ICdzdXBwb3J0c0dlbmVyaWNBdXRoJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJGZXRjaEFzY2VuZGluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFRhYmxlYXVTZXJ2ZXJGZXRjaEFzY2VuZGluZyA9ICd0YWJsZWF1U2VydmVyRmV0Y2hBc2NlbmRpbmcnLFxyXG5cclxuICAvLyBEUElfVXNlc1JhZGlvQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlc1JhZGlvQnV0dG9uID0gJ3VzZXNSYWRpb0J1dHRvbicsXHJcblxyXG4gIC8vIERQSV9CaWdRdWVyeUxlZ2FjeVNRTENoZWNrU3RhdHVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQmlnUXVlcnlMZWdhY3lTUUxDaGVja1N0YXR1cyA9ICdkYXRhc291cmNlQmlncXVlcnlMZWdhY3lTcWxDaGVja1N0YXR1cycsXHJcblxyXG4gIC8vIERQSV9IYXNCaWdRdWVyeUxlZ2FjeVNRTENoZWNrLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQmlnUXVlcnlMZWdhY3lTUUxDaGVjayA9ICdkYXRhc291cmNlQmlncXVlcnlMZWdhY3lTcWxDaGVjaycsXHJcblxyXG4gIC8vIERQSV9BdXRvRmV0Y2hMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQXV0b0ZldGNoTGltaXQgPSAnYXV0b0ZldGNoTGltaXQnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblR5cGUsIGhhdmluZyB0eXBlIGludFxyXG4gIENvbm5lY3Rpb25UeXBlID0gJ2Nvbm5lY3Rpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ljb25JZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSWNvbklkID0gJ2ljb25JZCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZENhdGFsb2dJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2VsZWN0ZWRDYXRhbG9nSW5kZXggPSAnc2VsZWN0ZWRDYXRhbG9nSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRDdWJlSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkQ3ViZUluZGV4ID0gJ3NlbGVjdGVkQ3ViZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkR0FBY2NvdW50SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkR0FBY2NvdW50SW5kZXggPSAnc2VsZWN0ZWRHYUFjY291bnRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEdBTWVhc3VyZVNldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWxlY3RlZEdBTWVhc3VyZVNldEluZGV4ID0gJ3NlbGVjdGVkR2FNZWFzdXJlU2V0SW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRHQVByb3BlcnR5SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkR0FQcm9wZXJ0eUluZGV4ID0gJ3NlbGVjdGVkR2FQcm9wZXJ0eUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkR0FTZWdtZW50SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkR0FTZWdtZW50SW5kZXggPSAnc2VsZWN0ZWRHYVNlZ21lbnRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEdBVmlld0luZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWxlY3RlZEdBVmlld0luZGV4ID0gJ3NlbGVjdGVkR2FWaWV3SW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRHb29nbGVTaGVldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWxlY3RlZEdvb2dsZVNoZWV0SW5kZXggPSAnc2VsZWN0ZWRHb29nbGVTaGVldEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkT3B0aW9uSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNlbGVjdGVkT3B0aW9uSW5kZXggPSAnc2VsZWN0ZWRPcHRpb25JbmRleCcsXHJcblxyXG4gIC8vIERQSV9TbG93TWV0YWRhdGFDb3VudCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2xvd01ldGFkYXRhQ291bnQgPSAnc2xvd01ldGFkYXRhQ291bnQnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckZldGNoU29ydEJ5LCBoYXZpbmcgdHlwZSBpbnRcclxuICBUYWJsZWF1U2VydmVyRmV0Y2hTb3J0QnkgPSAndGFibGVhdVNlcnZlckZldGNoU29ydCcsXHJcblxyXG4gIC8vIERQSV9BY3R1YWxQYXJhbWV0ZXJPcmRpbmFsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQWN0dWFsUGFyYW1ldGVyT3JkaW5hbCA9ICdhY3R1YWxQYXJhbWV0ZXJPcmRpbmFsJyxcclxuXHJcbiAgLy8gRFBJX0FjdHVhbFBhcmFtZXRlclR5cGUsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBY3R1YWxQYXJhbWV0ZXJUeXBlID0gJ2FjdHVhbFBhcmFtZXRlclR5cGUnLFxyXG5cclxuICAvLyBEUElfQ2hhclNldElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ2hhclNldElEID0gJ2NoYXJzZXRJZCcsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlT3JkaW5hbCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIERhdGFTb3VyY2VPcmRpbmFsID0gJ2RhdGFzb3VyY2VPcmRpbmFsJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckNvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRmlsdGVyQ291bnQgPSAnZmlsdGVyQ291bnQnLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVzQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBWYXJpYWJsZXNDb3VudCA9ICd2YXJpYWJsZXNDb3VudCcsXHJcblxyXG4gIC8vIERQSV9BY3R1YWxQYXJhbWV0ZXJEaXNwbGF5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWN0dWFsUGFyYW1ldGVyRGlzcGxheU5hbWUgPSAnYWN0dWFsUGFyYW1ldGVyRGlzcGxheU5hbWUnLFxyXG5cclxuICAvLyBEUElfQWN0dWFsUGFyYW1ldGVyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWN0dWFsUGFyYW1ldGVyTmFtZSA9ICdhY3R1YWxQYXJhbWV0ZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0FjdHVhbFBhcmFtZXRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3R1YWxQYXJhbWV0ZXJWYWx1ZSA9ICdhY3R1YWxQYXJhbWV0ZXJWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9BdHRyQVBJVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckFQSVZlcnNpb24gPSAnYXR0ckFwaVZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfQXR0ckF1dGhUeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQXV0aFR5cGUgPSAnd2lkZ2V0QXR0ckF1dGh0eXBlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJBdXRoZW50aWNhdG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQXV0aGVudGljYXRvciA9ICd3aWRnZXRBdHRyQXV0aGVudGljYXRvcicsXHJcblxyXG4gIC8vIERQSV9BdHRyQ29ubmVjdGlvbkRhdGEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJDb25uZWN0aW9uRGF0YSA9ICdhdHRyQ29ubmVjdGlvbkRhdGEnLFxyXG5cclxuICAvLyBEUElfQXR0ckNvbm5lY3Rpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQ29ubmVjdGlvbk5hbWUgPSAnYXR0ckNvbm5lY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJDb25uZWN0aW9uVHlwZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckNvbm5lY3Rpb25UeXBlID0gJ3dpZGdldEF0dHJDb25uZWN0aW9udHlwZScsXHJcblxyXG4gIC8vIERQSV9BdHRyQ29ubmVjdGlvblVSTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckNvbm5lY3Rpb25VUkwgPSAnYXR0ckNvbm5lY3Rpb25VcmwnLFxyXG5cclxuICAvLyBEUElfQXR0ckN1YmVTcGVjaWZpY2F0aW9uSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJDdWJlU3BlY2lmaWNhdGlvbklkID0gJ3dpZGdldEF0dHJDdWJlU3BlY2lmaWNhdGlvbklkJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJDdWJlU3BlY2lmaWNhdGlvblZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyQ3ViZVNwZWNpZmljYXRpb25WYWx1ZSA9ICd3aWRnZXRBdHRyQ3ViZVNwZWNpZmljYXRpb25WYWx1ZScsXHJcblxyXG4gIC8vIERQSV9BdHRyRFNOLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyRFNOID0gJ3dpZGdldEF0dHJEc24nLFxyXG5cclxuICAvLyBEUElfQXR0ckRhdGFiYXNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyRGF0YWJhc2UgPSAnd2lkZ2V0QXR0ckRiJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJEYXRhYmFzZVdhcmVob3VzZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ckRhdGFiYXNlV2FyZWhvdXNlID0gJ3dpZGdldEF0dHJEYndoJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJEcml2ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJEcml2ZXIgPSAnd2lkZ2V0QXR0ckRyaXZlcicsXHJcblxyXG4gIC8vIERQSV9BdHRyRmlsZW5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJGaWxlbmFtZSA9ICd3aWRnZXRBdHRyRmlsZW5hbWUnLFxyXG5cclxuICAvLyBEUElfQXR0ckhUVFBQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRySFRUUFBhdGggPSAnd2lkZ2V0QXR0ckh0dHBQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJJbmNyZW1lbnRhbFJlZnJlc2hLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJJbmNyZW1lbnRhbFJlZnJlc2hLZXkgPSAnYXR0ckluY3JlbWVudGFsUmVmcmVzaEtleScsXHJcblxyXG4gIC8vIERQSV9BdHRyS2VyYmVyb3NIb3N0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyS2VyYmVyb3NIb3N0ID0gJ3dpZGdldEF0dHJLZXJiZXJvc0hvc3QnLFxyXG5cclxuICAvLyBEUElfQXR0cktlcmJlcm9zUmVhbG0sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJLZXJiZXJvc1JlYWxtID0gJ3dpZGdldEF0dHJLZXJiZXJvc1JlYWxtJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJLZXJiZXJvc1NlcnZpY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJLZXJiZXJvc1NlcnZpY2UgPSAnd2lkZ2V0QXR0cktlcmJlcm9zU2VydmljZScsXHJcblxyXG4gIC8vIERQSV9BdHRyTGFzdFJlY29yZFRva2VuLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyTGFzdFJlY29yZFRva2VuID0gJ2F0dHJMYXN0UmVjb3JkVG9rZW4nLFxyXG5cclxuICAvLyBEUElfQXR0ck1EV1BhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJNRFdQYXRoID0gJ3dpZGdldEF0dHJNZHdQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJNRFdVc2VybmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ck1EV1VzZXJuYW1lID0gJ3dpZGdldEF0dHJNZHdVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9BdHRyT0RCQ1Byb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ck9EQkNQcm9tcHQgPSAnd2lkZ2V0QXR0ck9kYmNQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfQXR0ck9EQkNTdHJpbmdFeHRyYXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJPREJDU3RyaW5nRXh0cmFzID0gJ3dpZGdldEF0dHJPZGJjU3RyaW5nRXh0cmFzJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJQb3J0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyUG9ydCA9ICd3aWRnZXRBdHRyUG9ydCcsXHJcblxyXG4gIC8vIERQSV9BdHRyU0FQQ2xpZW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU0FQQ2xpZW50ID0gJ3dpZGdldEF0dHJTYXBDbGllbnQnLFxyXG5cclxuICAvLyBEUElfQXR0clNBUExhbmd1YWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU0FQTGFuZ3VhZ2UgPSAnd2lkZ2V0QXR0clNhcExhbmd1YWdlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJFZGl0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyRWRpdGlvbiA9ICd3aWRnZXRBdHRyU3NsRWRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9BdHRyU1NPRG9tYWluLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU1NPRG9tYWluID0gJ3dpZGdldEF0dHJTc29Eb21haW4nLFxyXG5cclxuICAvLyBEUElfQXR0clNTTENlcnQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJTU0xDZXJ0ID0gJ3dpZGdldEF0dHJTc2xDZXJ0JyxcclxuXHJcbiAgLy8gRFBJX0F0dHJTY3JpcHRWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU2NyaXB0VmVyc2lvbiA9ICdhdHRyU2NyaXB0VmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9BdHRyU2VydmVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdHRyU2VydmVyID0gJ3dpZGdldEF0dHJTZXJ2ZXInLFxyXG5cclxuICAvLyBEUElfQXR0clNlcnZpY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJTZXJ2aWNlID0gJ3dpZGdldEF0dHJTZXJ2aWNlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJVc2VybmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0clVzZXJuYW1lID0gJ3dpZGdldEF0dHJVc2VyJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRoZW50aWNhdGlvblByb21wdCA9ICdhdXRoZW50aWNhdGlvblByb21wdCcsXHJcblxyXG4gIC8vIERQSV9CdXR0b25DbGlja0FjdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uQ2xpY2tBY3Rpb24gPSAnYnV0dG9uQ2xpY2tBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQnV0dG9uQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uQ2FwdGlvbiA9ICdidXR0b25DYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0J1dHRvbkltYWdlUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uSW1hZ2VQYXRoID0gJ2J1dHRvbkltYWdlUGF0aCcsXHJcblxyXG4gIC8vIERQSV9CdXR0b25JbWFnZVBhdGhLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ1dHRvbkltYWdlUGF0aEtleSA9ICdidXR0b25JbWFnZVBhdGhLZXknLFxyXG5cclxuICAvLyBEUElfQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FwdGlvbiA9ICdjYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0NhdGFsb2dMaXN0UHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYXRhbG9nTGlzdFByb21wdCA9ICdjYXRhbG9nTGlzdFByb21wdCcsXHJcblxyXG4gIC8vIERQSV9DYXRhbG9nTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2F0YWxvZ05hbWUgPSAnY2F0YWxvZ05hbWUnLFxyXG5cclxuICAvLyBEUElfQ2F0YWxvZ1NlYXJjaFRlcm0sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENhdGFsb2dTZWFyY2hUZXJtID0gJ2NhdGFsb2dTZWFyY2hUZXJtJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3J5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYXRlZ29yeSA9ICdpdGVtQ2F0ZWdvcnknLFxyXG5cclxuICAvLyBEUElfQ2xhc3NOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbGFzc05hbWUgPSAnY2xhc3NOYW1lRm9yQ2xlYW5pbmcnLFxyXG5cclxuICAvLyBEUElfQ2xvdWRGaWxlQ2xhc3NOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbG91ZEZpbGVDbGFzc05hbWUgPSAnY2xvdWRGaWxlQ2xhc3NOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nsb3VkRmlsZVN0b3JhZ2VQcm92aWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2xvdWRGaWxlU3RvcmFnZVByb3ZpZGVyID0gJ2Nsb3VkRmlsZVN0b3JhZ2VQcm92aWRlcicsXHJcblxyXG4gIC8vIERQSV9Db25maWdOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25maWdOYW1lID0gJ2Nvbm5lY3Rpb25Db25maWdOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uQ2FwdGlvbiA9ICdjb25uZWN0aW9uQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRGVzY3JpcHRpb25MYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uTGFiZWwgPSAnY29ubmVjdGlvbkRlc2NyaXB0aW9uTGFiZWwnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkNsYXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uQ2xhc3MgPSAnY29ubmVjdGlvbkNsYXNzTmFtZScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29ubmVjdGlvbk5hbWUgPSAnY29ubmVjdGlvbk5hbWUnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbk9wdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbm5lY3Rpb25PcHRpb25OYW1lID0gJ2Nvbm5lY3Rpb25PcHRpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVGl0bGUgPSAnY29ubmVjdGlvblNwZWNpZmljYXRpb25UaXRsZScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uVHlwZUxhYmVsID0gJ2Nvbm5lY3Rpb25UeXBlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblVSSSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29ubmVjdGlvblVSSSA9ICdjb25uZWN0aW9uVXJpJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVEZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ3ViZURlc2NyaXB0aW9uID0gJ2N1YmVEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9DdWJlTGFzdFVwZGF0ZWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEN1YmVMYXN0VXBkYXRlZCA9ICdjdWJlTGFzdFVwZGF0ZWQnLFxyXG5cclxuICAvLyBEUElfQ3ViZUxpc3RQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEN1YmVMaXN0UHJvbXB0ID0gJ2N1YmVMaXN0UHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX0N1YmVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDdWJlTmFtZSA9ICdjdWJlTmFtZScsXHJcblxyXG4gIC8vIERQSV9DdWJlU2VhcmNoVGVybSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ3ViZVNlYXJjaFRlcm0gPSAnY3ViZVNlYXJjaFRlcm0nLFxyXG5cclxuICAvLyBEUElfQ3VycmVudFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEN1cnJlbnRUZXh0ID0gJ2N1cnJlbnRUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbVNwbGl0U3RyaW5nU2VwYXJhdG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDdXN0b21TcGxpdFN0cmluZ1NlcGFyYXRvciA9ICdjdXN0b21TcGxpdFN0cmluZ1NlcGFyYXRvcicsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VJZCA9ICdkYXRhc291cmNlSWQnLFxyXG5cclxuICAvLyBEUElfREJOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEQk5hbWVQcm9tcHQgPSAnZGJOYW1lUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX0RCV0hOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEQldITmFtZVByb21wdCA9ICdkYldhcmVob3VzZU5hbWVQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfRFNDbGFzcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRFNDbGFzcyA9ICdkc0NsYXNzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFiYXNlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YWJhc2VOYW1lID0gJ2RhdGFzb3VyY2VEYXRhYmFzZU5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0YWJhc2VOb3RlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhYmFzZU5vdGUgPSAnZGF0YWJhc2VOb3RlJyxcclxuXHJcbiAgLy8gRFBJX0RyYWdMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRHJhZ0xhYmVsID0gJ2RyYWdMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9FZmZlY3RpdmVEYXRlUmFuZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVmZmVjdGl2ZURhdGVSYW5nZSA9ICdlZmZlY3RpdmVEYXRlUmFuZ2UnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRDcmVhdGVkVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRDcmVhdGVkVGltZSA9ICdnb29nbGVTaGVldENyZWF0ZWRUaW1lJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0SWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0SWQgPSAnZ29vZ2xlU2hlZXRJZCcsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldExhc3RNb2RpZmllZFRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0TGFzdE1vZGlmaWVkVGltZSA9ICdnb29nbGVTaGVldExhc3RNb2RpZmllZFRpbWUnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRMYXN0TW9kaWZ5aW5nVXNlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRMYXN0TW9kaWZ5aW5nVXNlciA9ICdnb29nbGVTaGVldExhc3RNb2RpZnlpbmdVc2VyJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0TGFzdFZpZXdlZEJ5VXNlclRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0TGFzdFZpZXdlZEJ5VXNlclRpbWUgPSAnZ29vZ2xlU2hlZXRMYXN0Vmlld2VkQnlVc2VyVGltZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldE1pbWVUeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldE1pbWVUeXBlID0gJ2dvb2dsZVNoZWV0TWltZVR5cGUnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldE5hbWUgPSAnZ29vZ2xlU2hlZXROYW1lJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0T3duZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0T3duZXIgPSAnZ29vZ2xlU2hlZXRPd25lcicsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldFRodW1ibmFpbExpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdvb2dsZVNoZWV0VGh1bWJuYWlsTGluayA9ICdnb29nbGVTaGVldFRodW1ibmFpbExpbmsnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRUaHVtYm5haWxJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRUaHVtYm5haWxJZCA9ICdnb29nbGVTaGVldFRodW1ibmFpbElkJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0VGh1bWJuYWlsTG9jYWxQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldFRodW1ibmFpbExvY2FsUGF0aCA9ICdnb29nbGVTaGVldFRodW1ibmFpbExvY2FsUGF0aCcsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVTaGVldFdlYlZpZXdMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBHb29nbGVTaGVldFdlYlZpZXdMaW5rID0gJ2dvb2dsZVNoZWV0V2ViVmlld0xpbmsnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRzTGlzdEVycm9yTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRzTGlzdEVycm9yTWVzc2FnZSA9ICdnb29nbGVTaGVldHNMaXN0RXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0luaXRpYWxTUUwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEluaXRpYWxTUUwgPSAnaW5pdGlhbFNxbCcsXHJcblxyXG4gIC8vIERQSV9JU09EYXRlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJU09EYXRlID0gJ2lzb0RhdGUnLFxyXG5cclxuICAvLyBEUElfSVNPRW5kRGF0ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSVNPRW5kRGF0ZSA9ICdpc29FbmREYXRlJyxcclxuXHJcbiAgLy8gRFBJX0lTT1N0YXJ0RGF0ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSVNPU3RhcnREYXRlID0gJ2lzb1N0YXJ0RGF0ZScsXHJcblxyXG4gIC8vIERQSV9Jc29sYXRpb25MZXZlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSXNvbGF0aW9uTGV2ZWwgPSAnZGF0YXNvdXJjZUlzb2xhdGlvbkxldmVsJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSXRlbURlc2NyaXB0aW9uID0gJ2l0ZW1EZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9JdGVtSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEl0ZW1JZCA9ICdpdGVtSWQnLFxyXG5cclxuICAvLyBEUElfS2VyYmVyb3NIb3N0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBLZXJiZXJvc0hvc3QgPSAnZGF0YXNvdXJjZUtlcmJlcm9zSG9zdCcsXHJcblxyXG4gIC8vIERQSV9LZXJiZXJvc1JlYWxtLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBLZXJiZXJvc1JlYWxtID0gJ2RhdGFzb3VyY2VLZXJiZXJvc1JlYWxtJyxcclxuXHJcbiAgLy8gRFBJX0tlcmJlcm9zU2VydmljZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgS2VyYmVyb3NTZXJ2aWNlID0gJ2RhdGFzb3VyY2VLZXJiZXJvc1NlcnZpY2UnLFxyXG5cclxuICAvLyBEUElfTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmFtZSA9ICduYW1lJyxcclxuXHJcbiAgLy8gRFBJX09wdGlvbklkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcHRpb25JZCA9ICdvcHRpb25JZCcsXHJcblxyXG4gIC8vIERQSV9QYXJ0aXRpb25pbmdCdXR0b25MYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFydGl0aW9uaW5nQnV0dG9uTGFiZWwgPSAncGFydGl0aW9uaW5nQnV0dG9uTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUGFydGl0aW9uaW5nQnV0dG9uVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFydGl0aW9uaW5nQnV0dG9uVG9vbHRpcCA9ICdwYXJ0aXRpb25pbmdCdXR0b25Ub29sdGlwJyxcclxuXHJcbiAgLy8gRFBJX1BhcnRpdGlvbmluZ1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcnRpdGlvbmluZ1RleHQgPSAncXVlcnlQYXJ0aXRpb25pbmdUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1BkZlN0YXJ0UGFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGRmU3RhcnRQYWdlID0gJ3BkZlN0YXJ0UGFnZScsXHJcblxyXG4gIC8vIERQSV9QZGZFbmRQYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQZGZFbmRQYWdlID0gJ3BkZkVuZFBhZ2UnLFxyXG5cclxuICAvLyBEUElfUG9ydFByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUG9ydFByb21wdCA9ICdwb3J0UHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Byb21wdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFByb21wdFRleHQgPSAncHJvbXB0VGV4dCcsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFF1ZXJ5QmFuZGluZyA9ICdxdWVyeUJhbmRpbmcnLFxyXG5cclxuICAvLyBEUElfUXVlcnlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBRdWVyeVRleHQgPSAncXVlcnlUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1JlY29tbWVuZGF0aW9uVVVJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVjb21tZW5kYXRpb25VVUlEID0gJ3JlY29tbWVuZGF0aW9uVXVpZCcsXHJcblxyXG4gIC8vIERQSV9TUUxRdWVyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU1FMUXVlcnkgPSAnc3FsUXVlcnknLFxyXG5cclxuICAvLyBEUElfU2NoZW1hQ29tYm9GYWxsYmFja1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNjaGVtYUNvbWJvRmFsbGJhY2tUZXh0ID0gJ3NjaGVtYUNvbWJvRmFsbGJhY2tUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1NjaGVtYUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY2hlbWFMYWJlbCA9ICdzY2hlbWFMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFNZW1iZXJHbG9iYWxOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY2hlbWFNZW1iZXJHbG9iYWxOYW1lID0gJ3NjaGVtYU1lbWJlckdsb2JhbE5hbWUnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2NoZW1hTmFtZSA9ICdkYXRhc291cmNlU2NoZW1hTmFtZScsXHJcblxyXG4gIC8vIERQSV9TY3JpcHRUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY3JpcHRUZXh0ID0gJ3NjcmlwdFRleHQnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kYXJ5V2hpdGVMaXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTZWNvbmRhcnlXaGl0ZUxpc3QgPSAnc2Vjb25kYXJ5V2hpdGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1NlcnZlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2VydmVyID0gJ2RhdGFzb3VyY2VTZXJ2ZXInLFxyXG5cclxuICAvLyBEUElfU2VydmVyTmFtZVByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2VydmVyTmFtZVByb21wdCA9ICdzZXJ2ZXJOYW1lUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1NlcnZpY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlcnZpY2UgPSAnZGF0YXNvdXJjZVNlcnZpY2UnLFxyXG5cclxuICAvLyBEUElfU2VydmljZU5hbWVQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlcnZpY2VOYW1lUHJvbXB0ID0gJ3NlcnZpY2VQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfU2hlZXRGb3JtYXR0aW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaGVldEZvcm1hdHRpbmcgPSAnc2hlZXRGb3JtYXR0aW5nJyxcclxuXHJcbiAgLy8gRFBJX1Nsb3dNZXRhZGF0YVNlYXJjaFRlcm0sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNsb3dNZXRhZGF0YVNlYXJjaFRlcm0gPSAnc2xvd01ldGFkYXRhU2VhcmNoVGVybScsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZENvbm5lY3Rpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdGFuZGFyZENvbm5lY3Rpb25OYW1lID0gJ2RhdGFzb3VyY2VTdGFuZGFyZENvbm5lY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX1N0YW5kYXJkQ29ubmVjdGlvblBsYWNlaG9sZGVyVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3RhbmRhcmRDb25uZWN0aW9uUGxhY2Vob2xkZXJUZXh0ID0gJ3N0YW5kYXJkQ29ubmVjdGlvblBsYWNlaG9sZGVyVGV4dCcsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyVGl0bGUgPSAnc3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyVGl0bGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVBbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVBbGlhcyA9ICd0YWJsZUFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0VGFibGVBbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmlnaHRUYWJsZUFsaWFzID0gJ3JpZ2h0VGFibGVBbGlhcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlQ2FwdGlvbiA9ICd0YWJsZUNhcHRpb24nLFxyXG5cclxuICAvLyBEUElfVGFibGVDb2xsZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVDb2xsZWN0aW9uTmFtZSA9ICd0YWJsZUNvbGxlY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlUGxhY2Vob2xkZXJUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZVBsYWNlaG9sZGVyVGV4dCA9ICd0YWJsZVBsYWNlaG9sZGVyVGV4dCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZVJhbmtpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlUmFua2luZyA9ICd0YWJsZVJhbmtpbmcnLFxyXG5cclxuICAvLyBEUElfVGFibGVTb3J0S2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZVNvcnRLZXkgPSAndGFibGVTb3J0a2V5JyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVUb29sdGlwID0gJ3RhYmxlVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZVRvUmVwbGFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVUb1JlcGxhY2UgPSAndGFibGVUb1JlcGxhY2UnLFxyXG5cclxuICAvLyBEUElfVGFibGVXYXJuaW5nTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVXYXJuaW5nTWVzc2FnZSA9ICd0YWJsZVdhcm5pbmdNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlRGVzY3JpcHRpb24gPSAndGFibGVhdVNlcnZlckRhdGFzb3VyY2VEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyRGF0YXNvdXJjZUxhc3RFeHRyYWN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZWF1U2VydmVyRGF0YXNvdXJjZUxhc3RFeHRyYWN0ID0gJ3RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlTGFzdEV4dHJhY3QnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFzb3VyY2VNb2RpZmllZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVhdVNlcnZlckRhdGFzb3VyY2VNb2RpZmllZCA9ICd0YWJsZWF1U2VydmVyRGF0YXNvdXJjZU1vZGlmaWVkJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlT3duZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlT3duZXIgPSAndGFibGVhdVNlcnZlckRhdGFzb3VyY2VPd25lcicsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyRGF0YXNvdXJjZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlUGF0aCA9ICd0YWJsZWF1U2VydmVyRGF0YXNvdXJjZVBhdGgnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckZldGNoU2VhcmNoUXVlcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJGZXRjaFNlYXJjaFF1ZXJ5ID0gJ3RhYmxlYXVTZXJ2ZXJGZXRjaFNlYXJjaFF1ZXJ5JyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZWF1U2VydmVyTmFtZSA9ICd0YWJsZWF1U2VydmVyTmFtZScsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyUHJvamVjdE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJQcm9qZWN0TmFtZSA9ICd0YWJsZWF1U2VydmVyUHJvamVjdE5hbWUnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlclVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZWF1U2VydmVyVXNlcm5hbWUgPSAndGFibGVhdVNlcnZlclVzZXJuYW1lJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zcG9ydFR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRyYW5zcG9ydFR5cGUgPSAndHJhbnNwb3J0VHlwZScsXHJcblxyXG4gIC8vIERQSV9XYXJlaG91c2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXYXJlaG91c2VOYW1lID0gJ2RhdGFzb3VyY2VXYXJlaG91c2VOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtncm91cFdvcmtib29rTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV29ya2dyb3VwV29ya2Jvb2tOYW1lID0gJ3dvcmtncm91cFdvcmtib29rTmFtZScsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NJdGVtVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQW5hbHl0aWNzSXRlbVRvb2x0aXAgPSAnYW5hbHl0aWNzSXRlbVRvb2x0aXAnLFxyXG5cclxuICAvLyBEUElfRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlc2NyaXB0aW9uID0gJ2Rlc2NyaXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RTQ2xhc3NDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEU0NsYXNzQ2FwdGlvbiA9ICdkc0NsYXNzQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Gb3JtdWxhLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtdWxhID0gJ2Zvcm11bGEnLFxyXG5cclxuICAvLyBEUElfTWVzc2FnZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1lc3NhZ2VUZXh0ID0gJ21lc3NhZ2VUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2UgPSAnZGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlU291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc291cmNlU291cmNlID0gJ2RhdGFzb3VyY2VTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZVRhcmdldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YXNvdXJjZVRhcmdldCA9ICdkYXRhc291cmNlVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0RGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlyc3REYXRhc291cmNlID0gJ2ZpcnN0RGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9OZXdEYXRhc291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdEYXRhc291cmNlID0gJ25ld0RhdGFzb3VyY2UnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyc0RhdGFzb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlcnNEYXRhc291cmNlID0gJ3BhcmFtZXRlcnNEYXRhc291cmNlJyxcclxuXHJcbiAgLy8gRFBJX1ByaW1hcnlEYXRhc291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQcmltYXJ5RGF0YXNvdXJjZSA9ICdwcmltYXJ5RGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRGF0YWJhc2VzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIENvbm5lY3Rpb25EYXRhYmFzZXMgPSAnY29ubmVjdGlvbkRhdGFiYXNlcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uU2NoZW1hcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uU2NoZW1hcyA9ICdjb25uZWN0aW9uU2NoZW1hcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uV2FyZWhvdXNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uV2FyZWhvdXNlcyA9ICdjb25uZWN0aW9uV2FyZWhvdXNlcycsXHJcblxyXG4gIC8vIERQSV9EU0NsYXNzZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRFNDbGFzc2VzID0gJ2RzQ2xhc3NlcycsXHJcblxyXG4gIC8vIERQSV9Qb3NzaWJsZUNob2ljZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUG9zc2libGVDaG9pY2VzID0gJ3Bvc3NpYmxlQ2hvaWNlcycsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZENvbm5lY3Rpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN0YW5kYXJkQ29ubmVjdGlvbnMgPSAnc3RhbmRhcmRDb25uZWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9TdHJpbmdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN0cmluZ3MgPSAnc3RyaW5ncycsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyUHJvamVjdE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhYmxlYXVTZXJ2ZXJQcm9qZWN0TmFtZXMgPSAndGFibGVhdVNlcnZlclByb2plY3ROYW1lcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhYmxlQ2FwdGlvbnMgPSAndGFibGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVzLCBoYXZpbmcgdHlwZSBvYmplY3RbXVxyXG4gIERhdGFWYWx1ZXMgPSAnZGF0YVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRFcnJvcnMsIGhhdmluZyB0eXBlIG9iamVjdFtdXHJcbiAgUXVlcnlCYW5kRXJyb3JzID0gJ3F1ZXJ5QmFuZEVycm9ycycsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBvYmplY3RbXVxyXG4gIFF1ZXJ5QmFuZFBhcmFtZXRlcnMgPSAncXVlcnlCYW5kUGFyYW1ldGVycycsXHJcblxyXG4gIC8vIERQSV9Jbml0aWFsU1FMUGFyYW1ldGVycywgaGF2aW5nIHR5cGUgb2JqZWN0W11cclxuICBJbml0aWFsU1FMUGFyYW1ldGVycyA9ICdpbml0aWFsU3FsUGFyYW1ldGVycycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uQXR0cmlidXRlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgQ29ubmVjdGlvbkF0dHJpYnV0ZXMgPSAnY29ubmVjdGlvbkF0dHJzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25Qcm9wcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgQ29ubmVjdGlvblByb3BzID0gJ2Nvbm5lY3Rpb25Qcm9wcycsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5TmFtZU1hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgRGlzcGxheU5hbWVNYXAgPSAnZGlzcGxheU5hbWVNYXAnLFxyXG5cclxuICAvLyBEUElfTG9va3VwVGFibGUsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIExvb2t1cFRhYmxlID0gJ2xvb2t1cFRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX09BdXRoQXR0cnMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIE9BdXRoQXR0cnMgPSAnb2F1dGhBdHRycycsXHJcblxyXG4gIC8vIERQSV9TdHJpbmdNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIFN0cmluZ01hcCA9ICdzdHJpbmdNYXAnLFxyXG5cclxuICAvLyBEUElfVGFibGVSYW5raW5nTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBUYWJsZVJhbmtpbmdNYXAgPSAndGFibGVSYW5raW5nTWFwJyxcclxuXHJcbiAgLy8gRFBJX1dEQ0F0dHJpYnV0ZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIFdEQ0F0dHJpYnV0ZXMgPSAnd2RjQXR0cnMnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdG9yQXR0cmlidXRlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgQ29ubmVjdG9yQXR0cmlidXRlcyA9ICdjb25uZWN0b3JBdHRycycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVJlbGV2YW5jZVBhcmFtcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgVGFibGVSZWxldmFuY2VQYXJhbXMgPSAndGFibGVSZWxldmFuY2VQYXJhbXMnLFxyXG5cclxuICAvLyBEUElfQWN0dWFsUGFyYW1ldGVyUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3R1YWxQYXJhbWV0ZXJQYXJhbWV0ZXIgPSAnYWN0dWFsUGFyYW1ldGVyUGFyYW1ldGVyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFDb2x1bW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhQ29sdW1uTmFtZSA9ICdkYXRhQ29sdW1uTmFtZScsXHJcblxyXG4gIC8vIERQSV9MSFNEYXRhQ29sdW1uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTEhTRGF0YUNvbHVtbk5hbWUgPSAnbGhzRGF0YUNvbHVtbk5hbWUnLFxyXG5cclxuICAvLyBEUElfUkhTRGF0YUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJIU0RhdGFDb2x1bW5OYW1lID0gJ3Joc0RhdGFDb2x1bW5OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Z1bGxDdWJlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRnVsbEN1YmVOYW1lID0gJ2Z1bGxDdWJlTmFtZScsXHJcblxyXG4gIC8vIERQSV9GdWxsVmFyaWFibGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGdWxsVmFyaWFibGVOYW1lID0gJ2Z1bGxWYXJpYWJsZU5hbWUnLFxyXG5cclxuICAvLyBEUElfU2VtYW50aWNSb2xlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTZW1hbnRpY1JvbGUgPSAnc2VtYW50aWNSb2xlJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0b3JlZFByb2NlZHVyZU5hbWUgPSAnc3RvcmVkUHJvY05hbWUnLFxyXG5cclxuICAvLyBEUElfVGFibGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZU5hbWUgPSAndGFibGVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0FkZGVkVGFibGVOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRlZFRhYmxlTmFtZXMgPSAnYWRkZWRUYWJsZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0NvYWxlc2NlR3JvdXBGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ29hbGVzY2VHcm91cEZpZWxkcyA9ICdjb2FsZXNjZUdyb3VwRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX1F1YWxpZmllZE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFF1YWxpZmllZE5hbWVzID0gJ3F1YWxpZmllZE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5GaWVsZEFsaWFzZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgSm9pbkZpZWxkQWxpYXNlcyA9ICdqb2luRmllbGRfYWxpYXNlcycsXHJcblxyXG4gIC8vIERQSV9Kb2luSW5mb0ZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBKb2luSW5mb0ZpZWxkcyA9ICdqb2luSW5mb0ZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9QaXZvdEdyb3VwRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFBpdm90R3JvdXBGaWVsZHMgPSAncGl2b3RHcm91cEZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVkVGFibGVOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZW1vdmVkVGFibGVOYW1lcyA9ICdyZW1vdmVkVGFibGVOYW1lcycsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN0b3JlZFByb2NlZHVyZXMgPSAnc3RvcmVkUHJvY2VkdXJlcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhYmxlTmFtZXMgPSAndGFibGVOYW1lcycsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2x1bW5OYW1lID0gJ2NvbHVtbk5hbWUnLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZE5hbWUgPSAnZm4nLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGaWVsZE5hbWVzID0gJ2ZpZWxkTmFtZXMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRUaHVtYm5haWxJbWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR29vZ2xlU2hlZXRUaHVtYm5haWxJbWFnZSA9ICdnb29nbGVTaGVldFRodW1ibmFpbEltYWdlJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJNRFdQYXNzd29yZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXR0ck1EV1Bhc3N3b3JkID0gJ3dpZGdldEF0dHJNZHdQYXNzd29yZCcsXHJcblxyXG4gIC8vIERQSV9BdHRyUGFzc3dvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0dHJQYXNzd29yZCA9ICd3aWRnZXRBdHRyUGFzc3dvcmQnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZVBhc3N3b3JkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc291cmNlUGFzc3dvcmQgPSAnZGF0YXNvdXJjZVBhc3N3b3JkJyxcclxuXHJcbiAgLy8gRFBJX0ZlZGVyYXRlZEtleWNoYWluLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGZWRlcmF0ZWRLZXljaGFpbiA9ICdmZWRlcmF0ZWRLZXljaGFpbicsXHJcblxyXG4gIC8vIERQSV9EYXRhUGFyYW1ldGVySUQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFQYXJhbWV0ZXJJRCA9ICdkYXRhUGFyYW1UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlLCBoYXZpbmcgdHlwZSBDb25uZWN0U2VydmVyV2lkZ2V0VHlwZVxyXG4gIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlID0gJ2Nvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uTW9kZSwgaGF2aW5nIHR5cGUgTW9kZVxyXG4gIEF1dGhlbnRpY2F0aW9uTW9kZSA9ICdhdXRoTW9kZScsXHJcblxyXG4gIC8vIERQSV9SZWNvbm5lY3RBdXRoTW9kZSwgaGF2aW5nIHR5cGUgUmVjb25uZWN0TW9kZVxyXG4gIFJlY29ubmVjdEF1dGhNb2RlID0gJ3JlY29ubmVjdEF1dGhNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRBdXRoT3B0aW9uLCBoYXZpbmcgdHlwZSBBdXRoT3B0aW9uXHJcbiAgQ3VycmVudEF1dGhPcHRpb24gPSAnY3VyckF1dGhPcHRpb24nLFxyXG5cclxuICAvLyBEUElfQXV0aE9wdGlvbkxpc3QsIGhhdmluZyB0eXBlIEF1dGhPcHRpb25bXVxyXG4gIEF1dGhPcHRpb25MaXN0ID0gJ2F1dGhPcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlXHJcbiAgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlID0gJ2Nvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZScsXHJcblxyXG4gIC8vIERQSV9EYXRhVHlwZSwgaGF2aW5nIHR5cGUgRGF0YVR5cGVcclxuICBEYXRhVHlwZSA9ICdkYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9MSFNEYXRhVHlwZSwgaGF2aW5nIHR5cGUgRGF0YVR5cGVcclxuICBMSFNEYXRhVHlwZSA9ICdsaHNEYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9SSFNEYXRhVHlwZSwgaGF2aW5nIHR5cGUgRGF0YVR5cGVcclxuICBSSFNEYXRhVHlwZSA9ICdyaHNEYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0RmllbGRSb2xlLCBoYXZpbmcgdHlwZSBGaWVsZFJvbGVcclxuICBEZWZhdWx0RmllbGRSb2xlID0gJ2RlZmF1bHRGaWVsZFJvbGUnLFxyXG5cclxuICAvLyBEUElfRmllbGRSb2xlLCBoYXZpbmcgdHlwZSBGaWVsZFJvbGVcclxuICBGaWVsZFJvbGUgPSAnZmllbGRSb2xlJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRGaWVsZFR5cGUsIGhhdmluZyB0eXBlIEZpZWxkVHlwZVxyXG4gIERlZmF1bHRGaWVsZFR5cGUgPSAnZGVmYXVsdEZpZWxkVHlwZScsXHJcblxyXG4gIC8vIERQSV9GaWVsZFR5cGUsIGhhdmluZyB0eXBlIEZpZWxkVHlwZVxyXG4gIEZpZWxkVHlwZSA9ICdmaWVsZFR5cGUnLFxyXG5cclxuICAvLyBEUElfRmllbGRUeXBlTGlzdCwgaGF2aW5nIHR5cGUgRmllbGRUeXBlW11cclxuICBGaWVsZFR5cGVMaXN0ID0gJ2ZpZWxkVHlwZUxpc3QnLFxyXG5cclxuICAvLyBEUElfRmllbGRUeXBlTGlzdERldGFpbCwgaGF2aW5nIHR5cGUgRmllbGRUeXBlW11cclxuICBGaWVsZFR5cGVMaXN0RGV0YWlsID0gJ2ZpZWxkVHlwZUxpc3REZXRhaWwnLFxyXG5cclxuICAvLyBEUElfQWdnVHlwZSwgaGF2aW5nIHR5cGUgQWdnVHlwZVxyXG4gIEFnZ1R5cGUgPSAnYWdncmVnYXRpb24nLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdEFnZ1R5cGUsIGhhdmluZyB0eXBlIEFnZ1R5cGVcclxuICBEZWZhdWx0QWdnVHlwZSA9ICdkZWZhdWx0QWdncmVnYXRpb24nLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RBZ2csIGhhdmluZyB0eXBlIEFnZ1R5cGVcclxuICBGb3JlY2FzdEFnZyA9ICdmb3JlY2FzdFN1bW1hcml6ZVRvJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0QXV0b0FnZywgaGF2aW5nIHR5cGUgQWdnVHlwZVxyXG4gIEZvcmVjYXN0QXV0b0FnZyA9ICdmb3JlY2FzdEF1dG9TdW1tYXJpemVUbycsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdEF1dG9SYW5nZVVuaXRzLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXHJcbiAgRm9yZWNhc3RBdXRvUmFuZ2VVbml0cyA9ICdmb3JlY2FzdEF1dG9SYW5nZVVuaXRzJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0RW5kT2ZSYW5nZVVuaXRzLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXHJcbiAgRm9yZWNhc3RFbmRPZlJhbmdlVW5pdHMgPSAnZm9yZWNhc3RFbmRPZlJhbmdlVW5pdHMnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3ROZXh0UmFuZ2VVbml0cywgaGF2aW5nIHR5cGUgQWdnVHlwZVxyXG4gIEZvcmVjYXN0TmV4dFJhbmdlVW5pdHMgPSAnZm9yZWNhc3ROZXh0UmFuZ2VVbml0cycsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VBZ2csIGhhdmluZyB0eXBlIEFnZ1R5cGVcclxuICBTb3VyY2VBZ2cgPSAnc291cmNlQWdncmVnYXRpb24nLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0QWdnLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXHJcbiAgVGFyZ2V0QWdnID0gJ3RhcmdldEFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FnZ3JlZ2F0ZUJ5QWdnVHlwZXMsIGhhdmluZyB0eXBlIEFnZ1R5cGVbXVxyXG4gIEFnZ3JlZ2F0ZUJ5QWdnVHlwZXMgPSAnYWdncmVnYXRlQnlBZ2dUeXBlcycsXHJcblxyXG4gIC8vIERQSV9BZ2dyZWdhdGlvblZhbHVlcywgaGF2aW5nIHR5cGUgQWdnVHlwZVtdXHJcbiAgQWdncmVnYXRpb25WYWx1ZXMgPSAnYWdncmVnYXRpb25WYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfU29ydEFnZ1ZhbHVlcywgaGF2aW5nIHR5cGUgQWdnVHlwZVtdXHJcbiAgU29ydEFnZ1ZhbHVlcyA9ICdzb3J0QWdnVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkNsYXNzLCBoYXZpbmcgdHlwZSBDb2x1bW5DbGFzc1xyXG4gIENvbHVtbkNsYXNzID0gJ2NvbHVtbkNsYXNzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVQZXJpb2RUeXBlLCBoYXZpbmcgdHlwZSBEYXRlUGVyaW9kVHlwZVxyXG4gIERhdGVQZXJpb2RUeXBlID0gJ2RhdGVQZXJpb2RUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25XaWRnZXRUeXBlLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uV2lkZ2V0VHlwZVxyXG4gIENvbm5lY3Rpb25XaWRnZXRUeXBlID0gJ2Nvbm5lY3Rpb25XaWRnZXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlUGlsbEljb24sIGhhdmluZyB0eXBlIFRhYmxlUGlsbEljb25cclxuICBUYWJsZVBpbGxJY29uID0gJ3RhYmxlUGlsbEljb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0VudW1lcmF0ZWRFbnRpdHlUeXBlLCBoYXZpbmcgdHlwZSBFbnRpdHlUeXBlXHJcbiAgRW51bWVyYXRlZEVudGl0eVR5cGUgPSAnZW51bWVyYXRlZEVudGl0eVR5cGUnLFxyXG5cclxuICAvLyBEUElfUGlja0VudGl0eVNlYXJjaFR5cGUsIGhhdmluZyB0eXBlIFBpY2tFbnRpdHlTZWFyY2hUeXBlXHJcbiAgUGlja0VudGl0eVNlYXJjaFR5cGUgPSAnZW50aXR5U2VhcmNoVHlwZScsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uT3AsIGhhdmluZyB0eXBlIE9wXHJcbiAgRXhwcmVzc2lvbk9wID0gJ2V4cHJlc3Npb25PcCcsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uT3BlcmF0b3JDYXB0aW9uLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uT3BlcmF0b3JDYXB0aW9uUHJlc01vZGVsXHJcbiAgRXhwcmVzc2lvbk9wZXJhdG9yQ2FwdGlvbiA9ICdleHByZXNzaW9uT3BlcmF0b3JDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1JlbGF0aW9uYWxFeHBlcmVzc2lvbk9wcywgaGF2aW5nIHR5cGUgRXhwcmVzc2lvbk9wZXJhdG9yQ2FwdGlvblByZXNNb2RlbFtdXHJcbiAgUmVsYXRpb25hbEV4cGVyZXNzaW9uT3BzID0gJ3JlbGF0aW9uYWxFeHByZXNzaW9uT3BzJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUV4cHJlc3Npb25PcHMsIGhhdmluZyB0eXBlIEV4cHJlc3Npb25PcGVyYXRvckNhcHRpb25QcmVzTW9kZWxbXVxyXG4gIEhpZXJhcmNoeUV4cHJlc3Npb25PcHMgPSAnaGllcmFyY2h5RXhwcmVzc2lvbk9wcycsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0U29ydERpcmVjdGlvbiwgaGF2aW5nIHR5cGUgU29ydERpcmVjdGlvblxyXG4gIERlZmF1bHRTb3J0RGlyZWN0aW9uID0gJ2RlZlNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlyZWN0aW9uLCBoYXZpbmcgdHlwZSBTb3J0RGlyZWN0aW9uXHJcbiAgU29ydERpcmVjdGlvbiA9ICdzb3J0T3JkZXInLFxyXG5cclxuICAvLyBEUElfU29ydERpcmVjdGlvblZhbHVlcywgaGF2aW5nIHR5cGUgU29ydERpcmVjdGlvbltdXHJcbiAgU29ydERpcmVjdGlvblZhbHVlcyA9ICdzb3J0RGlyZWN0aW9uVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVNZXRhZGF0YUNhdGVnb3J5LCBoYXZpbmcgdHlwZSBDdWJlTWV0YWRhdGFDYXRlZ29yeVxyXG4gIEN1YmVNZXRhZGF0YUNhdGVnb3J5ID0gJ2N1YmVNZXRhZGF0YUNhdGVnb3J5JyxcclxuXHJcbiAgLy8gRFBJX0N1YmVNZXRhZGF0YUNhdGVnb3JpZXMsIGhhdmluZyB0eXBlIEN1YmVNZXRhZGF0YUNhdGVnb3J5W11cclxuICBDdWJlTWV0YWRhdGFDYXRlZ29yaWVzID0gJ2N1YmVNZXRhZGF0YUNhdGVnb3JpZXMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQmFzaWNJbmZvVHlwZSwgaGF2aW5nIHR5cGUgR29vZ2xlQmFzaWNJbmZvVHlwZVxyXG4gIEdvb2dsZUJhc2ljSW5mb1R5cGUgPSAnZ29vZ2xlQmFzaWNJbmZvVHlwZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25UeXBlLCBoYXZpbmcgdHlwZSBEYXRlUmFuZ2VcclxuICBHb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25UeXBlID0gJ2dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvblR5cGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjVHlwZSwgaGF2aW5nIHR5cGUgVGFibGVDYWxjVHlwZVxyXG4gIFRhYmxlQ2FsY1R5cGUgPSAndGFibGVDYWxjVHlwZScsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNUeXBlVmFsdWVzLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNUeXBlW11cclxuICBUYWJsZUNhbGNUeXBlVmFsdWVzID0gJ3RhYmxlQ2FsY1R5cGVWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfUmVsYXRpdmVBZGRyZXNzLCBoYXZpbmcgdHlwZSBSZWxhdGl2ZUFkZHJlc3NcclxuICBSZWxhdGl2ZUFkZHJlc3MgPSAncmVsYXRpdmVBZGRyZXNzJyxcclxuXHJcbiAgLy8gRFBJX1JlbGF0aXZlVmFsdWVzLCBoYXZpbmcgdHlwZSBSZWxhdGl2ZUFkZHJlc3NbXVxyXG4gIFJlbGF0aXZlVmFsdWVzID0gJ3JlbGF0aXZlVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX09yZGVyaW5nVHlwZSwgaGF2aW5nIHR5cGUgT3JkZXJpbmdUeXBlXHJcbiAgT3JkZXJpbmdUeXBlID0gJ29yZGVyaW5nVHlwZScsXHJcblxyXG4gIC8vIERQSV9PcmRlcmluZ1R5cGVWYWx1ZXMsIGhhdmluZyB0eXBlIE9yZGVyaW5nVHlwZVtdXHJcbiAgT3JkZXJpbmdUeXBlVmFsdWVzID0gJ29yZGVyaW5nVHlwZVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbkl0ZW1UeXBlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEJpbkl0ZW1UeXBlXHJcbiAgQ2F0ZWdvcmljYWxCaW5JdGVtVHlwZSA9ICdjYXRlZ29yaWNhbEJpbkl0ZW1UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uSW5mb3MsIGhhdmluZyB0eXBlIEF1dGhlbnRpY2F0aW9uU2V0dGluZ3NQcmVzTW9kZWxcclxuICBBdXRoZW50aWNhdGlvbkluZm9zID0gJ2F1dGhJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25XaWRnZXRQYXJhbXMsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25QYXJhbXNQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uV2lkZ2V0UGFyYW1zID0gJ3dpZGdldENvbm5lY3Rpb25QYXJhbXMnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblNldHRpbmdzLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU2V0dGluZ3NQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uU2V0dGluZ3MgPSAnY29ubmVjdGlvblNldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX1JlY29ubmVjdEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MsIGhhdmluZyB0eXBlIEF1dGhlbnRpY2F0aW9uU2V0dGluZ3NQcmVzTW9kZWxcclxuICBSZWNvbm5lY3RBdXRoZW50aWNhdGlvblNldHRpbmdzID0gJ3JlY29ubmVjdEF1dGhTZXR0aW5ncycsXHJcblxyXG4gIC8vIERQSV9DdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb24sIGhhdmluZyB0eXBlIEN1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvblByZXNNb2RlbFxyXG4gIEN1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvbiA9ICdjdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb24nLFxyXG5cclxuICAvLyBEUElfQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uT3B0aW9ucywgaGF2aW5nIHR5cGUgQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uT3B0aW9uUHJlc01vZGVsW11cclxuICBDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb25zID0gJ2N1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25QcmVzTW9kZWxcclxuICBDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb24gPSAnY3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TZXR0aW5nc09wdGlvbiwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblNldHRpbmdzT3B0aW9uUHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvblNldHRpbmdzT3B0aW9uID0gJ2Nvbm5lY3Rpb25TZXR0aW5nc09wdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uU2V0dGluZ3NPcHRpb25zLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU2V0dGluZ3NPcHRpb25QcmVzTW9kZWxbXVxyXG4gIENvbm5lY3Rpb25TZXR0aW5nc09wdGlvbnMgPSAnY29ubmVjdGlvblNldHRpbmdzT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9TdHJpbmdDb2xsYXRpb24sIGhhdmluZyB0eXBlIFN0cmluZ0NvbGxhdGlvblByZXNNb2RlbFxyXG4gIFN0cmluZ0NvbGxhdGlvbiA9ICdzdHJpbmdDb2xsYXRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YWJhc2VFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgRGF0YWJhc2VFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIERhdGFiYXNlRW51bWVyYXRpb24gPSAnZGF0YWJhc2VFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgU2NoZW1hRW51bWVyYXRpb25QcmVzTW9kZWxcclxuICBTY2hlbWFFbnVtZXJhdGlvbiA9ICdzY2hlbWFFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZENvbm5lY3Rpb25FbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgU3RhbmRhcmRDb25uZWN0aW9uRW51bWVyYXRpb25QcmVzTW9kZWxcclxuICBTdGFuZGFyZENvbm5lY3Rpb25FbnVtZXJhdGlvbiA9ICdzdGFuZGFyZENvbm5lY3Rpb25FbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgU3RvcmVkUHJvY2VkdXJlRW51bWVyYXRpb25QcmVzTW9kZWxcclxuICBTdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvbiA9ICdzdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9UYWJsZUVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBUYWJsZUVudW1lcmF0aW9uUHJlc01vZGVsXHJcbiAgVGFibGVFbnVtZXJhdGlvbiA9ICd0YWJsZUVudW1lcmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1dhcmVob3VzZUVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBXYXJlaG91c2VFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIFdhcmVob3VzZUVudW1lcmF0aW9uID0gJ3dhcmVob3VzZUVudW1lcmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Nsb3dNZXRhZGF0YVNjaGVtYUxpc3QsIGhhdmluZyB0eXBlIFNsb3dNZXRhZGF0YVNjaGVtYUxpc3RQcmVzTW9kZWxcclxuICBTbG93TWV0YWRhdGFTY2hlbWFMaXN0ID0gJ3Nsb3dNZXRhZGF0YVNjaGVtYUxpc3QnLFxyXG5cclxuICAvLyBEUElfU2xvd01ldGFkYXRhVGFibGVMaXN0LCBoYXZpbmcgdHlwZSBTbG93TWV0YWRhdGFUYWJsZUxpc3RQcmVzTW9kZWxcclxuICBTbG93TWV0YWRhdGFUYWJsZUxpc3QgPSAnc2xvd01ldGFkYXRhVGFibGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0N1YmVDYXRhbG9nLCBoYXZpbmcgdHlwZSBDdWJlQ2F0YWxvZ1ByZXNNb2RlbFxyXG4gIEN1YmVDYXRhbG9nID0gJ2N1YmVDYXRhbG9nJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVDYXRhbG9ncywgaGF2aW5nIHR5cGUgQ3ViZUNhdGFsb2dQcmVzTW9kZWxbXVxyXG4gIEN1YmVDYXRhbG9ncyA9ICdjdWJlQ2F0YWxvZ3MnLFxyXG5cclxuICAvLyBEUElfQ3ViZUNhdGFsb2dFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgQ3ViZUNhdGFsb2dFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIEN1YmVDYXRhbG9nRW51bWVyYXRpb24gPSAnY3ViZUNhdGFsb2dFbnVtZXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9DdWJlLCBoYXZpbmcgdHlwZSBDdWJlUHJlc01vZGVsXHJcbiAgQ3ViZSA9ICdjdWJlJyxcclxuXHJcbiAgLy8gRFBJX0N1YmVzLCBoYXZpbmcgdHlwZSBDdWJlUHJlc01vZGVsW11cclxuICBDdWJlcyA9ICdjdWJlcycsXHJcblxyXG4gIC8vIERQSV9DdWJlRW51bWVyYXRpb24sIGhhdmluZyB0eXBlIEN1YmVFbnVtZXJhdGlvblByZXNNb2RlbFxyXG4gIEN1YmVFbnVtZXJhdGlvbiA9ICdjdWJlRW51bWVyYXRpb24nLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzQmFzaWNJdGVtLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW1QcmVzTW9kZWxcclxuICBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW0gPSAnZ29vZ2xlQW5hbHl0aWNzQmFzaWNJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0dBTWVhc3VyZVNldHMsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0Jhc2ljSXRlbVByZXNNb2RlbFtdXHJcbiAgR0FNZWFzdXJlU2V0cyA9ICdnYU1lYXN1cmVTZXRzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1ZpZXdzLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1ZpZXdzID0gJ2dvb2dsZUFuYWx5dGljc1ZpZXdzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1Byb3BlcnRpZXMsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0Jhc2ljSXRlbVByZXNNb2RlbFtdXHJcbiAgR29vZ2xlQW5hbHl0aWNzUHJvcGVydGllcyA9ICdnb29nbGVBbmFseXRpY3NQcm9wZXJ0aWVzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUJhc2ljSW5mb0l0ZW1zLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NCYXNpY0l0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUJhc2ljSW5mb0l0ZW1zID0gJ2dvb2dsZUFuYWx5dGljc0FjY291bnRzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFxyXG4gIEdvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtID0gJ2dvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1Bvc3NpYmxlRGltZW5zaW9ucywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1Bvc3NpYmxlRGltZW5zaW9ucyA9ICdnb29nbGVBbmFseXRpY3NQb3NzaWJsZURpbWVuc2lvbnMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzUG9zc2libGVNZWFzdXJlcywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1Bvc3NpYmxlTWVhc3VyZXMgPSAnZ29vZ2xlQW5hbHl0aWNzUG9zc2libGVNZWFzdXJlcycsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NQb3NzaWJsZVNlZ21lbnRzLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFtdXHJcbiAgR29vZ2xlQW5hbHl0aWNzUG9zc2libGVTZWdtZW50cyA9ICdnb29nbGVBbmFseXRpY3NQb3NzaWJsZVNlZ21lbnRzJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1NlbGVjdGVkRGltZW5zaW9ucywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1NlbGVjdGVkRGltZW5zaW9ucyA9ICdnb29nbGVBbmFseXRpY3NTZWxlY3RlZERpbWVuc2lvbnMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzU2VsZWN0ZWRNZWFzdXJlcywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEdvb2dsZUFuYWx5dGljc1NlbGVjdGVkTWVhc3VyZXMgPSAnZ29vZ2xlQW5hbHl0aWNzU2VsZWN0ZWRNZWFzdXJlcycsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb24sIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvblByZXNNb2RlbFxyXG4gIEdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvbiA9ICdnb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb24nLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9ucywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9uUHJlc01vZGVsW11cclxuICBHb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25zID0gJ2dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzRW5kRGF0ZSwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVByZXNNb2RlbFxyXG4gIEdvb2dsZUFuYWx5dGljc0VuZERhdGUgPSAnZ29vZ2xlQW5hbHl0aWNzRW5kRGF0ZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NTdGFydERhdGUsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0RhdGVQcmVzTW9kZWxcclxuICBHb29nbGVBbmFseXRpY3NTdGFydERhdGUgPSAnZ29vZ2xlQW5hbHl0aWNzU3RhcnREYXRlJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZSwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlUHJlc01vZGVsXHJcbiAgR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlID0gJ2dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZScsXHJcblxyXG4gIC8vIERQSV9Hb29nbGVBbmFseXRpY3NRdWVyeVBhcnRpdGlvbmluZywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzUXVlcnlQYXJ0aXRpb25pbmdQcmVzTW9kZWxcclxuICBHb29nbGVBbmFseXRpY3NRdWVyeVBhcnRpdGlvbmluZyA9ICdnb29nbGVBbmFseXRpY3NRdWVyeVBhcnRpdGlvbmluZycsXHJcblxyXG4gIC8vIERQSV9HQUNvbm5lY3Rpb25EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQ29ubmVjdGlvbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgR0FDb25uZWN0aW9uRGVzY3JpcHRpb24gPSAnZ2FDb25uZWN0aW9uRGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRJdGVtLCBoYXZpbmcgdHlwZSBHb29nbGVTaGVldEl0ZW1QcmVzTW9kZWxcclxuICBHb29nbGVTaGVldEl0ZW0gPSAnZ29vZ2xlU2hlZXRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0SXRlbXMsIGhhdmluZyB0eXBlIEdvb2dsZVNoZWV0SXRlbVByZXNNb2RlbFtdXHJcbiAgR29vZ2xlU2hlZXRJdGVtcyA9ICdnb29nbGVTaGVldEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0dvb2dsZVNoZWV0c0xpc3RQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEdvb2dsZVNoZWV0c0xpc3RQcmVzTW9kZWxcclxuICBHb29nbGVTaGVldHNMaXN0UHJlc01vZGVsID0gJ2dvb2dsZVNoZWV0c0xpc3QnLFxyXG5cclxuICAvLyBEUElfR29vZ2xlU2hlZXRQYW5lUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBHb29nbGVTaGVldFBhbmVQcmVzTW9kZWxcclxuICBHb29nbGVTaGVldFBhbmVQcmVzTW9kZWwgPSAnZ29vZ2xlU2hlZXRQYW5lJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJDb25uZWN0aW9uRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIFRhYmxlYXVTZXJ2ZXJDb25uZWN0aW9uRGVzY3JpcHRpb25QcmVzTW9kZWxcclxuICBUYWJsZWF1U2VydmVyQ29ubmVjdGlvbkRlc2NyaXB0aW9uID0gJ3RhYmxlYXVTZXJ2ZXJDb25uZWN0aW9uRGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBEUElfSW5pdGlhbFNRTFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgSW5pdGlhbFNRTFByZXNNb2RlbFxyXG4gIEluaXRpYWxTUUxQcmVzTW9kZWwgPSAnaW5pdGlhbFNxbFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9RdWVyeUJhbmRpbmdQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFF1ZXJ5QmFuZGluZ1ByZXNNb2RlbFxyXG4gIFF1ZXJ5QmFuZGluZ1ByZXNNb2RlbCA9ICdxdWVyeUJhbmRpbmdQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU2xvd01ldGFkYXRhLCBoYXZpbmcgdHlwZSBTbG93TWV0YWRhdGFQcmVzTW9kZWxcclxuICBTbG93TWV0YWRhdGEgPSAnc2xvd01ldGFkYXRhJyxcclxuXHJcbiAgLy8gRFBJX1Nsb3dNZXRhZGF0YVNjaGVtYVNlYXJjaFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2xvd01ldGFkYXRhU2VhcmNoUHJlc01vZGVsXHJcbiAgU2xvd01ldGFkYXRhU2NoZW1hU2VhcmNoUHJlc01vZGVsID0gJ3Nsb3dNZXRhZGF0YVNjaGVtYVNlYXJjaCcsXHJcblxyXG4gIC8vIERQSV9TbG93TWV0YWRhdGFUYWJsZVNlYXJjaFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2xvd01ldGFkYXRhU2VhcmNoUHJlc01vZGVsXHJcbiAgU2xvd01ldGFkYXRhVGFibGVTZWFyY2hQcmVzTW9kZWwgPSAnc2xvd01ldGFkYXRhVGFibGVTZWFyY2gnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlclByb2plY3RzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyUHJvamVjdHNQcmVzTW9kZWxcclxuICBUYWJsZWF1U2VydmVyUHJvamVjdHNQcmVzTW9kZWwgPSAndGFibGVhdVNlcnZlclByb2plY3RzUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyRGF0YVNvdXJjZVByZXNNb2RlbFxyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVsID0gJ3RhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVscywgaGF2aW5nIHR5cGUgVGFibGVhdVNlcnZlckRhdGFTb3VyY2VQcmVzTW9kZWxbXVxyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVscyA9ICd0YWJsZWF1U2VydmVyRGF0YVNvdXJjZVByZXNtb2RlbHMnLFxyXG5cclxuICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFTb3VyY2VzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyRGF0YVNvdXJjZXNQcmVzTW9kZWxcclxuICBUYWJsZWF1U2VydmVyRGF0YVNvdXJjZXNQcmVzTW9kZWwgPSAndGFibGVhdVNlcnZlckRhdGFTb3VyY2VzUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyRGF0YVByZXNNb2RlbFxyXG4gIFRhYmxlYXVTZXJ2ZXJEYXRhUHJlc01vZGVsID0gJ3RhYmxlYXVTZXJ2ZXJEYXRhUHJlc21vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZVBhcmFtZXRlclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyUHJlc01vZGVsXHJcbiAgU3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyUHJlc01vZGVsID0gJ3N0b3JlZFByb2NlZHVyZVBhcmFtZXRlcicsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJQcmVzTW9kZWxbXVxyXG4gIFN0b3JlZFByb2NlZHVyZVBhcmFtZXRlcnNQcmVzTW9kZWwgPSAnc3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVycycsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TUUxJbmZvLCBoYXZpbmcgdHlwZSBDdXN0b21TUUxJbmZvUHJlc01vZGVsXHJcbiAgQ3VzdG9tU1FMSW5mbyA9ICdjdXN0b21TcWxJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UYWJsZUluZm8sIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UYWJsZUluZm9QcmVzTW9kZWxcclxuICBDb25uZWN0aW9uVGFibGVJbmZvID0gJ2Nvbm5lY3Rpb25UYWJsZUluZm8nLFxyXG5cclxuICAvLyBEUElfVGFibGVJbmZvcywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblRhYmxlSW5mb1ByZXNNb2RlbFtdXHJcbiAgVGFibGVJbmZvcyA9ICd0YWJsZUluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uID0gJ2Nvbm5lY3Rpb25EZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5UHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeSA9ICdjb25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcmllcywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVByZXNNb2RlbFtdXHJcbiAgQ29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzID0gJ2Nvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcmllcycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGUsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZVxyXG4gIERhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZSA9ICdkYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGUnLFxyXG5cclxuICAvLyBEUElfT0F1dGhDcmVkZW50aWFsVHlwZUluZm8sIGhhdmluZyB0eXBlIE9BdXRoQ3JlZGVudGlhbFR5cGVJbmZvUHJlc01vZGVsXHJcbiAgT0F1dGhDcmVkZW50aWFsVHlwZUluZm8gPSAnb2F1dGhDcmVkZW50aWFsVHlwZUluZm8nLFxyXG5cclxuICAvLyBEUElfT0F1dGhDcmVkZW50aWFsVHlwZUluZm9zLCBoYXZpbmcgdHlwZSBPQXV0aENyZWRlbnRpYWxUeXBlSW5mb1ByZXNNb2RlbFtdXHJcbiAgT0F1dGhDcmVkZW50aWFsVHlwZUluZm9zID0gJ29hdXRoQ3JlZGVudGlhbFR5cGVJbmZvcycsXHJcblxyXG4gIC8vIERQSV9PQXV0aFNldHRpbmdzLCBoYXZpbmcgdHlwZSBPQXV0aFNldHRpbmdzUHJlc01vZGVsXHJcbiAgT0F1dGhTZXR0aW5ncyA9ICdvYXV0aFNldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX0NyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWcsIGhhdmluZyB0eXBlIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdcclxuICBDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnID0gJ2NyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWcnLFxyXG5cclxuICAvLyBEUElfQ3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZ3MsIGhhdmluZyB0eXBlIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdbXVxyXG4gIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdzID0gJ2NyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UeXBlRW51bSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblR5cGVFbnVtXHJcbiAgQ29ubmVjdGlvblR5cGVFbnVtID0gJ2Nvbm5lY3Rpb25UeXBlRW51bScsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0b3JUeXBlLCBoYXZpbmcgdHlwZSBDb25uZWN0b3JUeXBlXHJcbiAgQ29ubmVjdG9yVHlwZSA9ICdjb25uZWN0b3JUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BkZlBhZ2VQaWNrZXIsIGhhdmluZyB0eXBlIFBkZlBhZ2VQaWNrZXJQcmVzTW9kZWxcclxuICBQZGZQYWdlUGlja2VyID0gJ3BkZlBhZ2VQaWNrZXInLFxyXG5cclxuICAvLyBEUElfQWN0aXZhdGVOZXcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBY3RpdmF0ZU5ldyA9ICdhY3RpdmF0ZU5ldycsXHJcblxyXG4gIC8vIERQSV9BZGRBY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkQWN0aW9ucyA9ICdhZGRBY3Rpb25zJyxcclxuXHJcbiAgLy8gRFBJX0FkZEFzRmxvYXRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRBc0Zsb2F0aW5nID0gJ2FkZEFzRmxvYXRpbmcnLFxyXG5cclxuICAvLyBEUElfQWRkQ29sb3JEaWN0aW9uYXJ5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkQ29sb3JEaWN0aW9uYXJ5ID0gJ2FkZENvbG9yRGljdGlvbmFyeScsXHJcblxyXG4gIC8vIERQSV9BZGREcm9wbGluZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGREcm9wbGluZXMgPSAnYWRkRHJvcGxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX0FkZEhlYWRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRIZWFkZXJzID0gJ2FkZEhlYWRlcnMnLFxyXG5cclxuICAvLyBEUElfQWRkSGlnaGxpZ2h0aW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkSGlnaGxpZ2h0aW5nID0gJ2FkZEhpZ2hsaWdodGluZycsXHJcblxyXG4gIC8vIERQSV9BZGRJbWFnZURpY3Rpb25hcnksIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRJbWFnZURpY3Rpb25hcnkgPSAnYWRkSW1hZ2VEaWN0aW9uYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0FkZE1hcmtMYWJlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRNYXJrTGFiZWxzID0gJ2FkZE1hcmtMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfQWRkUGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRQYWdlcyA9ICdhZGRQYWdlcycsXHJcblxyXG4gIC8vIERQSV9BZGRTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRTZWxlY3Rpb24gPSAnYWRkU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FkZFRvRm9sZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkVG9Gb2xkZXIgPSAnYWRkVG9Gb2xkZXInLFxyXG5cclxuICAvLyBEUElfQWRkVml6RGF0YSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFkZFZpekRhdGEgPSAnYWRkVml6RGF0YScsXHJcblxyXG4gIC8vIERQSV9BbGVydENvbmRpdGlvbk1ldCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsZXJ0Q29uZGl0aW9uTWV0ID0gJ2FsZXJ0Q29uZGl0aW9uTWV0JyxcclxuXHJcbiAgLy8gRFBJX0FsbEZpZWxkcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbEZpZWxkcyA9ICdhbGxGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQWxsT25FbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbE9uRW1wdHkgPSAnYWxsT25FbXB0eScsXHJcblxyXG4gIC8vIERQSV9BbGxQYWdlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbFBhZ2VzID0gJ2luY2x1ZGVBbGxQYWdlcycsXHJcblxyXG4gIC8vIERQSV9BbGxvd1ByZXZpZXdTaXplQ2hhbmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dQcmV2aWV3U2l6ZUNoYW5nZSA9ICdhbGxvd1ByZXZpZXdTaXplQ2hhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0FsbFNlbGVjdGVkSXNFZmZlY3RpdmVseVJhbmdlVHlwZUFsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbFNlbGVjdGVkSXNFZmZlY3RpdmVseVJhbmdlVHlwZUFsbCA9ICdhbGxTZWxlY3RlZElzRWZmZWN0aXZlbHlSYW5nZVR5cGVBbGwnLFxyXG5cclxuICAvLyBEUElfQWxsU3RvcnlQb2ludHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxTdG9yeVBvaW50cyA9ICdhbGxTdG9yeXBvaW50cycsXHJcblxyXG4gIC8vIERQSV9BbGxvd0FsbFJhbmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dBbGxSYW5nZSA9ICdhbGxvd0FsbFJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93Q3JlYXRpbmdOZXdQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dDcmVhdGluZ05ld1BhcmFtZXRlcnMgPSAnYWxsb3dDcmVhdGluZ05ld1BhcmFtZXRlcnMnLFxyXG5cclxuICAvLyBEUElfQWxsb3dDb250aW51b3VzRGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93Q29udGludW91c0RhdGUgPSAnYWxsb3dDb250aW51b3VzRGF0ZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd0R1cGxpY2F0ZUZpZWxkRHJvcE9uRmlsdGVyU2hlbGYsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0R1cGxpY2F0ZUZpZWxkRHJvcE9uRmlsdGVyU2hlbGYgPSAnYWxsb3dEdXBsaWNhdGVGaWVsZERyb3BPbkZpbHRlclNoZWxmJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93RmlsdGVyUHJlc2V0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dGaWx0ZXJQcmVzZXQgPSAnYWxsb3dGaWx0ZXJQcmVzZXQnLFxyXG5cclxuICAvLyBEUElfQWxsb3dIb3ZlckFjdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd0hvdmVyQWN0aW9ucyA9ICdhbGxvd0hvdmVyQWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9BbGxvd0h5cGhlbmF0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dIeXBoZW5hdGlvbiA9ICdhbGxvd0h5cGhlbmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93Sm9pbk9uQ2FsYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93Sm9pbk9uQ2FsYyA9ICdhbGxvd0pvaW5PbkNhbGMnLFxyXG5cclxuICAvLyBEUElfQWxsb3dNYW51YWxSYW5nZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93TWFudWFsUmFuZ2UgPSAnYWxsb3dNYW51YWxSYW5nZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd01hcHBpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd01hcHBpbmcgPSAnYWxsb3dNYXBwaW5nJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93TXVsdGlTZWxlY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd011bHRpU2VsZWN0ID0gJ2FsbG93TXVsdGlTZWxlY3QnLFxyXG5cclxuICAvLyBEUElfQWxsb3dOdWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dOdWxsID0gJ2FsbG93TnVsbCcsXHJcblxyXG4gIC8vIERQSV9BbGxvd1Bhblpvb20sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1Bhblpvb20gPSAnYWxsb3dQYW5ab29tJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93UGF0dGVybkJhc2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWxsb3dQYXR0ZXJuQmFzZWQgPSAnYWxsb3dQYXR0ZXJuQmFzZWRVbmlvbicsXHJcblxyXG4gIC8vIERQSV9BbGxvd1Byb21wdFRleHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1Byb21wdFRleHQgPSAnYWxsb3dQcm9tcHRUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0FsbG93U2F2ZURhdGFTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1NhdmVEYXRhU291cmNlID0gJ2FsbG93U2F2ZURhdGFTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfQWxsb3dXaG9sZURhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1dob2xlRGF0ZSA9ICdhbGxvd1dob2xlRGF0ZScsXHJcblxyXG4gIC8vIERQSV9BbGxvd1dvcmssIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxvd1dvcmsgPSAnYWxsb3dXb3JrJyxcclxuXHJcbiAgLy8gRFBJX0FsbG93V3JhcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93V3JhcCA9ICdhbGxvd1dyYXAnLFxyXG5cclxuICAvLyBEUElfQXBwSXMzMkJpdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFwcElzMzJCaXQgPSAnYXBwSXMzMkJpdCcsXHJcblxyXG4gIC8vIERQSV9BcHBJczY0Qml0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXBwSXM2NEJpdCA9ICdhcHBJczY0Qml0JyxcclxuXHJcbiAgLy8gRFBJX0FwcElzQmV0YSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFwcElzQmV0YSA9ICdhcHBJc0JldGEnLFxyXG5cclxuICAvLyBEUElfQXBwSXNPRU0sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBcHBJc09FTSA9ICdhcHBJc09lbScsXHJcblxyXG4gIC8vIERQSV9BcHBlbmRUZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBcHBlbmRUZGUgPSAnYXBwZW5kVGRlJyxcclxuXHJcbiAgLy8gRFBJX0FwcGx5Q29sb3JzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXBwbHlDb2xvcnMgPSAnYXBwbHlDb2xvcnMnLFxyXG5cclxuICAvLyBEUElfQXBwbHlOZXdTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBBcHBseU5ld1NlbGVjdGlvbiA9ICdhcHBseU5ld1NlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9BcmVDb25maWRlbmNlQmFuZHNWYWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZUNvbmZpZGVuY2VCYW5kc1ZhbGlkID0gJ2FyZUNvbmZpZGVuY2VCYW5kc1ZhbGlkJyxcclxuXHJcbiAgLy8gRFBJX0FyZURhdGFTb3VyY2VGaWx0ZXJzVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZURhdGFTb3VyY2VGaWx0ZXJzVmlzaWJsZSA9ICdhcmVEYXRhU291cmNlRmlsdGVyc1Zpc2libGUnLFxyXG5cclxuICAvLyBEUElfQXJlRXh0cmFjdEZpbHRlcnNFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXJlRXh0cmFjdEZpbHRlcnNFbmFibGVkID0gJ2FyZUV4dHJhY3RGaWx0ZXJzRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9BcmVUb3RhbHNVc2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXJlVG90YWxzVXNlZCA9ICdhcmVUb3RhbHNVc2VkJyxcclxuXHJcbiAgLy8gRFBJX0F0VGhlTGV2ZWxGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF0VGhlTGV2ZWxGaWVsZElzSW52YWxpZCA9ICdhdFRoZUxldmVsRmllbGRJc0ludmFsaWQnLFxyXG5cclxuICAvLyBEUElfQXV0b1VSTCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEF1dG9VUkwgPSAnYXV0b1VybCcsXHJcblxyXG4gIC8vIERQSV9BdXRvVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXV0b1VwZGF0ZSA9ICdhdXRvVXBkYXRlJyxcclxuXHJcbiAgLy8gRFBJX0JhY2tpbmdTaGVldElzRGFzaGJvYXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQmFja2luZ1NoZWV0SXNEYXNoYm9hcmQgPSAnaXNCYWNraW5nU2hlZXREYXNoYm9hcmQnLFxyXG5cclxuICAvLyBEUElfQmVnaW5EYXRhU291cmNlUHJlc01vZGVsVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQmVnaW5EYXRhU291cmNlUHJlc01vZGVsVXBkYXRlID0gJ2JlZ2luRGF0YVNvdXJjZVByZXNNb2RlbFVwZGF0ZScsXHJcblxyXG4gIC8vIERQSV9BZ2dyZWdhdGVEcmlsbFVwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWdncmVnYXRlRHJpbGxVcCA9ICdib29sQWdncmVnYXRlRHJpbGxVcCcsXHJcblxyXG4gIC8vIERQSV9Cb3hwbG90TWFya0V4Y2x1c2lvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEJveHBsb3RNYXJrRXhjbHVzaW9uID0gJ2JveHBsb3RNYXJrRXhjbHVzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0JyZWFrUGFnZU9uUGFuZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEJyZWFrUGFnZU9uUGFuZSA9ICdicmVha1BhZ2VPblBhbmUnLFxyXG5cclxuICAvLyBEUElfQnJ1c2hMZWdlbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQnJ1c2hMZWdlbmRzID0gJ2JydXNoTGVnZW5kcycsXHJcblxyXG4gIC8vIERQSV9DYWNoZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYWNoZVByZXNNb2RlbHMgPSAnY2FjaGVQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0NhbkFkZENvbm5lY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuQWRkQ29ubmVjdGlvbnMgPSAnY2FuQWRkQ29ubmVjdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU29ydFBpbGxDYW5CZURyYWdnZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTb3J0UGlsbENhbkJlRHJhZ2dlZCA9ICdzb3J0UGlsbENhbkJlRHJhZ2dlZCcsXHJcblxyXG4gIC8vIERQSV9DYW5BZGRUYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkFkZFRhYmxlID0gJ2NhbkFkZFRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0NhbkFkZFRvRHJpbGxQYXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuQWRkVG9EcmlsbFBhdGggPSAnY2FuQWRkVG9EcmlsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfQ2FuQW5hbHl6ZURhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5BbmFseXplRGF0YSA9ICdjYW5BbmFseXplRGF0YScsXHJcblxyXG4gIC8vIERQSV9DYW5DaGFuZ2VEYXRhVHlwZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkNoYW5nZURhdGFUeXBlID0gJ2NhbkNoYW5nZURhdGFUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0NhbkNoYW5nZVNlbWFudGljUm9sZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkNoYW5nZVNlbWFudGljUm9sZSA9ICdjYW5DaGFuZ2VTZW1hbnRpY1JvbGUnLFxyXG5cclxuICAvLyBEUElfQ2FuRGVyaXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuRGVyaXZlID0gJ2NhbkRlcml2ZScsXHJcblxyXG4gIC8vIERQSV9DYW5Ecm9wLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuRHJvcCA9ICdjYW5Ecm9wJyxcclxuXHJcbiAgLy8gRFBJX0NhbkVkaXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5FZGl0ID0gJ2NhbkVkaXQnLFxyXG5cclxuICAvLyBEUElfQ2FuRWRpdExlZ2VuZENvbG9yLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuRWRpdExlZ2VuZENvbG9yID0gJ2NhbkVkaXRMZWdlbmRDb2xvcicsXHJcblxyXG4gIC8vIERQSV9DYW5FbmFibGVDZW50ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5FbmFibGVDZW50ZXIgPSAnY2FuRW5hYmxlQ2VudGVyJyxcclxuXHJcbiAgLy8gRFBJX0NhblNob3dBZHZhbmNlZFNldHRpbmdzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2hvd0FkdmFuY2VkU2V0dGluZ3MgPSAnY2FuU2hvd0FkdmFuY2VkU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfQ2FuRW5hYmxlRmlsdGVyU3RhdGVCdXR0b24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5FbmFibGVGaWx0ZXJTdGF0ZUJ1dHRvbiA9ICdjYW5FbmFibGVGaWx0ZXJTdGF0ZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9DYW5GbG9hdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkZsb2F0ID0gJ2NhbkZsb2F0JyxcclxuXHJcbiAgLy8gRFBJX0NhbkhhdmVUaXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkhhdmVUaXRsZSA9ICdjYW5IYXZlVGl0bGUnLFxyXG5cclxuICAvLyBEUElfQ2FuSWdub3JlVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuSWdub3JlVXBkYXRlID0gJ2Nhbklnbm9yZVVwZGF0ZScsXHJcblxyXG4gIC8vIERQSV9DYW5Mb2dUcmFuc2Zvcm1FeHBsYW5hdG9yeUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Mb2dUcmFuc2Zvcm1FeHBsYW5hdG9yeUF4aXMgPSAnY2FuTG9nVHJhbnNmb3JtRXhwbGFuYXRvcnlBeGlzJyxcclxuXHJcbiAgLy8gRFBJX0Nhbk5hdmlnYXRlQmFjaywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbk5hdmlnYXRlQmFjayA9ICdjYW5OYXZpZ2F0ZUJhY2snLFxyXG5cclxuICAvLyBEUElfQ2FuTmF2aWdhdGVGb3J3YXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuTmF2aWdhdGVGb3J3YXJkID0gJ2Nhbk5hdmlnYXRlRm9yd2FyZCcsXHJcblxyXG4gIC8vIERQSV9DYW5TY3JvbGxYLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2Nyb2xsWCA9ICdjYW5TY3JvbGxYJyxcclxuXHJcbiAgLy8gRFBJX0NhblNjcm9sbFksIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5TY3JvbGxZID0gJ2NhblNjcm9sbFknLFxyXG5cclxuICAvLyBEUElfQ2FuU2V0RG9tYWluLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2V0RG9tYWluID0gJ2NhblNldERvbWFpbicsXHJcblxyXG4gIC8vIERQSV9DYW5TZXRNYXBVbml0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2V0TWFwVW5pdCA9ICdjYW5TZXRNYXBVbml0JyxcclxuXHJcbiAgLy8gRFBJX0NhblNob3dBcHBseUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblNob3dBcHBseUJ1dHRvbiA9ICdjYW5TaG93QXBwbHlCdXR0b24nLFxyXG5cclxuICAvLyBEUElfQ2FuU2hvd0ZpbHRlclN0YXRlQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2hvd0ZpbHRlclN0YXRlQnV0dG9uID0gJ2NhblNob3dGaWx0ZXJTdGF0ZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9DYW5TaG93TW9yZUZld2VyQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU2hvd01vcmVGZXdlckJ1dHRvbiA9ICdjYW5TaG93TW9yZUZld2VyQnV0dG9uJyxcclxuXHJcbiAgLy8gRFBJX0NhblNob3dTeW5jQ2xpZW50T3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblNob3dTeW5jQ2xpZW50T3B0aW9ucyA9ICdjYW5TaG93U3luY0NsaWVudE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfQ2FuU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblNvcnQgPSAnY2FuU29ydCcsXHJcblxyXG4gIC8vIERQSV9DYW5Tb3J0T3JkaW5hbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuU29ydE9yZGluYWxseSA9ICdjYW5Tb3J0T3JkaW5hbCcsXHJcblxyXG4gIC8vIERQSV9DYW5Ub2dnbGVBdXRvbWF0aWNEcmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblRvZ2dsZUF1dG9tYXRpY0RyaWxsID0gJ2NhblRvZ2dsZUF1dG9tYXRpY0RyaWxsJyxcclxuXHJcbiAgLy8gRFBJX0NhblRvZ2dsZUdlb2dyYXBoaWNTZWFyY2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Ub2dnbGVHZW9ncmFwaGljU2VhcmNoID0gJ2NhblRvZ2dsZUdlb2dyYXBoaWNTZWFyY2gnLFxyXG5cclxuICAvLyBEUElfQ2FuVG9nZ2xlTWFwU2NhbGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Ub2dnbGVNYXBTY2FsZSA9ICdjYW5Ub2dnbGVNYXBTY2FsZScsXHJcblxyXG4gIC8vIERQSV9DYW5Vc2VGdWxsQ29sb3JSYW5nZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhblVzZUZ1bGxDb2xvclJhbmdlID0gJ2NhblVzZUZ1bGxDb2xvclJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0NhblVzZU11bHRpcGxlSGllcmFyY2hpZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5Vc2VNdWx0aXBsZUhpZXJhcmNoaWVzID0gJ2NhblVzZU11bHRpcGxlSGllcmFyY2hpZXMnLFxyXG5cclxuICAvLyBEUElfQ2VudGVySG9yaXpvbnRhbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2VudGVySG9yaXpvbnRhbGx5ID0gJ2NlbnRlckhvcml6b250YWxseScsXHJcblxyXG4gIC8vIERQSV9DZW50ZXJWZXJ0aWNhbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2VudGVyVmVydGljYWxseSA9ICdjZW50ZXJWZXJ0aWNhbGx5JyxcclxuXHJcbiAgLy8gRFBJX0NoYW5nZUFsbEZpZWxkcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoYW5nZUFsbEZpZWxkcyA9ICdjaGFuZ2VBbGxGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQ2hhbmdlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoYW5nZWQgPSAnY2hhbmdlZCcsXHJcblxyXG4gIC8vIERQSV9DbGVhckJydXNoaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2xlYXJCcnVzaGluZyA9ICdjbGVhckJydXNoaW5nJyxcclxuXHJcbiAgLy8gRFBJX0NsZWFyU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENsZWFyU29ydCA9ICdjbGVhclNvcnQnLFxyXG5cclxuICAvLyBEUElfQ2xlYXJWaWV3LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2xlYXJWaWV3ID0gJ2NsZWFyVmlldycsXHJcblxyXG4gIC8vIERQSV9Db2xsYXBzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb2xsYXBzZWQgPSAnY29sbGFwc2VkJyxcclxuXHJcbiAgLy8gRFBJX0NvbnNvbGlkYXRlSW5Db21taXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb25zb2xpZGF0ZUluQ29tbWl0ID0gJ2NvbnNvbGlkYXRlSW5Db21taXQnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlckVuYWJsZVNjYWxlZENoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2x1c3RlckVuYWJsZVNjYWxlZENoZWNrYm94ID0gJ2NsdXN0ZXJFbmFibGVTY2FsZWRDaGVja2JveCcsXHJcblxyXG4gIC8vIERQSV9Db21taXRQaWxsRmluaXNoZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb21taXRQaWxsRmluaXNoZWQgPSAnY29tbWl0UGlsbEZpbmlzaGVkJyxcclxuXHJcbiAgLy8gRFBJX0NvbXByZXNzQXJyYXlzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29tcHJlc3NBcnJheXMgPSAnY29tcHJlc3NBcnJheXMnLFxyXG5cclxuICAvLyBEUElfQ29tcHV0ZUNvbXBvdW5kZWRSYXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29tcHV0ZUNvbXBvdW5kZWRSYXRlID0gJ2NvbXB1dGVDb21wb3VuZGVkUmF0ZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlSW50ZXJ2YWxBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlkZW5jZUludGVydmFsQWxsb3dlZCA9ICdjb25maWRlbmNlSW50ZXJ2YWxBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX0NvbmZpZ0lzRGVza3RvcFN0YW5kYXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlnSXNEZXNrdG9wU3RhbmRhcmQgPSAnY29uZmlnSXNEZXNrdG9wU3RhbmRhcmQnLFxyXG5cclxuICAvLyBEUElfQ29uZmlnSXNJbnRlcmFjdG9yLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlnSXNJbnRlcmFjdG9yID0gJ2NvbmZpZ0lzSW50ZXJhY3RvcicsXHJcblxyXG4gIC8vIERQSV9Db25maWdJc1B1YmxpYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENvbmZpZ0lzUHVibGljID0gJ2NvbmZpZ0lzUHVibGljJyxcclxuXHJcbiAgLy8gRFBJX0NvbmZpZ0lzUmVhZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29uZmlnSXNSZWFkZXIgPSAnY29uZmlnSXNSZWFkZXInLFxyXG5cclxuICAvLyBEUElfQ29udGFpbnNRdWFudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENvbnRhaW5zUXVhbnQgPSAnY29udGFpbnNRdWFudCcsXHJcblxyXG4gIC8vIERQSV9Db250YWluc1ZhbGlkRGF0YXNvdXJjZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDb250YWluc1ZhbGlkRGF0YXNvdXJjZXMgPSAnY29udGFpbnNWYWxpZERhdGFzb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRyb2xsZXJNaXNzaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ29udHJvbGxlck1pc3NpbmcgPSAnY29udHJvbGxlck1pc3NpbmcnLFxyXG5cclxuICAvLyBEUElfQ3JlYXRlRXh0cmFjdEZvclB1Ymxpc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDcmVhdGVFeHRyYWN0Rm9yUHVibGlzaCA9ICdjcmVhdGVFeHRyYWN0Rm9yUHVibGlzaCcsXHJcblxyXG4gIC8vIERQSV9Dcm9zc1RhYiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENyb3NzVGFiID0gJ2Nyb3NzVGFiJyxcclxuXHJcbiAgLy8gRFBJX0N1bGxMYWJlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDdWxsTGFiZWxzID0gJ2N1bGxMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudEN1c3RWaWV3SWRGbGFnLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ3VycmVudEN1c3RWaWV3SWRGbGFnID0gJ2lzQ3VycmVudEN1c3RWaWV3SWRWYWxpZCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRFbmFibGVTbmFwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGFzaGJvYXJkRW5hYmxlU25hcCA9ICdkYXNoYm9hcmRFbmFibGVTbmFwJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZFNob3dHcmlkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGFzaGJvYXJkU2hvd0dyaWQgPSAnZGFzaGJvYXJkU2hvd0dyaWQnLFxyXG5cclxuICAvLyBEUElfRGF0YUdyaWRTb3J0T3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEYXRhR3JpZFNvcnRPcmRlciA9ICdkYXRhZ3JpZFNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9EZWxldGVFeHRyYWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGVsZXRlRXh0cmFjdCA9ICdkZWxldGVFeHRyYWN0JyxcclxuXHJcbiAgLy8gRFBJX0RlbGV0ZU9ubHlTcGVjaWZpZWRTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBEZWxldGVPbmx5U3BlY2lmaWVkU2VsZWN0aW9uID0gJ2RlbGV0ZU9ubHlTcGVjaWZpZWRTZWxlY3Rpb24nLFxyXG5cclxuICAvLyBEUElfRGVsZXRlT3JwaGFucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERlbGV0ZU9ycGhhbnMgPSAnZGVsZXRlT3JwaGFucycsXHJcblxyXG4gIC8vIERQSV9EaW1lbnNpb25Jc0VmZmVjdGl2ZWx5RW1wdHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBEaW1lbnNpb25Jc0VmZmVjdGl2ZWx5RW1wdHkgPSAnZGltZW5zaW9uSXNFZmZlY3RpdmVseUVtcHR5JyxcclxuXHJcbiAgLy8gRFBJX0Rpc2FibGVkRGF0YUNvbm5lY3Rpb25DbGFzc05hbWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGlzYWJsZWREYXRhQ29ubmVjdGlvbkNsYXNzTmFtZXMgPSAnZGlzYWJsZWREYXRhQ29ubmVjdGlvbkNsYXNzTmFtZXMnLFxyXG5cclxuICAvLyBEUElfRGlzYWJsZVByZXNNb2RlbEhhbmRsZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEaXNhYmxlUHJlc01vZGVsSGFuZGxlciA9ICdkaXNhYmxlUHJlc01vZGVsSGFuZGxlcicsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5RGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERpc3BsYXlEYXRlID0gJ2Rpc3BsYXlEYXRlJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3BsYXlUaW1lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRGlzcGxheVRpbWUgPSAnZGlzcGxheVRpbWUnLFxyXG5cclxuICAvLyBEUElfRG9Ecm9wVUlBY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBEb0Ryb3BVSUFjdGlvbiA9ICdkb0Ryb3BVaUFjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Eb01lcmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRG9NZXJnZSA9ICdkb01lcmdlJyxcclxuXHJcbiAgLy8gRFBJX0RvUHJlRHJvcFVJQWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRG9QcmVEcm9wVUlBY3Rpb24gPSAnZG9QcmVEcm9wVWlBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfRG9RdWVyeSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERvUXVlcnkgPSAnZG9RdWVyeScsXHJcblxyXG4gIC8vIERQSV9EcmFnSG9yeiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERyYWdIb3J6ID0gJ2RyYWdIb3J6JyxcclxuXHJcbiAgLy8gRFBJX0RyaWxsRG93biwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERyaWxsRG93biA9ICdkcmlsbERvd24nLFxyXG5cclxuICAvLyBEUElfRHJvcFRvWEF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBEcm9wVG9YQXhpcyA9ICdkcm9wVG9YQXhpcycsXHJcblxyXG4gIC8vIERQSV9Ecm9wVG9ZQXhpcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERyb3BUb1lBeGlzID0gJ2Ryb3BUb1lBeGlzJyxcclxuXHJcbiAgLy8gRFBJX0Ryb3BVbm5hbWVkRmllbGRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRHJvcFVubmFtZWRGaWVsZHMgPSAnZHJvcFVubmFtZWRGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfRWRpdEV4aXN0aW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRWRpdEV4aXN0aW5nID0gJ2VkaXRFeGlzdGluZycsXHJcblxyXG4gIC8vIERQSV9FZGl0aW5nQ29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVkaXRpbmdDb25uZWN0aW9uID0gJ2VkaXRpbmdDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0VtYmVkQ3JlZGVudGlhbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbWJlZENyZWRlbnRpYWxzID0gJ2VtYmVkQ3JlZGVudGlhbHMnLFxyXG5cclxuICAvLyBEUElfRW1iZWRPQXV0aENyZWRlbnRpYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbWJlZE9BdXRoQ3JlZGVudGlhbCA9ICdlbWJlZE9hdXRoQ3JlZGVudGlhbHMnLFxyXG5cclxuICAvLyBEUElfRW1wdHlIaWdobGlnaHRGb2dBbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbXB0eUhpZ2hsaWdodEZvZ0FsbCA9ICdlbXB0eUhpZ2hsaWdodEZvZ0FsbCcsXHJcblxyXG4gIC8vIERQSV9FbmFibGVBbHBoYWJldGljU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUFscGhhYmV0aWNTb3J0ID0gJ2VuYWJsZUFscGhhYmV0aWNTb3J0JyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZUF1dG9tYXRpY0RyaWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlQXV0b21hdGljRHJpbGwgPSAnZW5hYmxlQXV0b21hdGljRHJpbGwnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlQ29uZmlkZW5jZUJhbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlQ29uZmlkZW5jZUJhbmRzID0gJ2VuYWJsZUNvbmZpZGVuY2VCYW5kcycsXHJcblxyXG4gIC8vIERQSV9FbmFibGVEYXRhT3JkZXJTb3J0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlRGF0YU9yZGVyU29ydCA9ICdlbmFibGVEYXRhT3JkZXJTb3J0JyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZUZpZWxkU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUZpZWxkU29ydCA9ICdlbmFibGVGaWVsZFNvcnQnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlSW5zdGFudEFuYWx5dGljcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUluc3RhbnRBbmFseXRpY3MgPSAnZW5hYmxlSW5zdGFudEFuYWx5dGljcycsXHJcblxyXG4gIC8vIERQSV9FbmFibGVMaW5lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUxpbmVzID0gJ2VuYWJsZUxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZU1hbnVhbFNvcnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbmFibGVNYW51YWxTb3J0ID0gJ2VuYWJsZU1hbnVhbFNvcnQnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlTWFya3MsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbmFibGVNYXJrcyA9ICdlbmFibGVNYXJrcycsXHJcblxyXG4gIC8vIERQSV9FbmFibGVNdWx0aXBsZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZU11bHRpcGxlU2VsZWN0aW9uID0gJ2VuYWJsZU11bHRpcGxlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZVByZWZldGNoaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlUHJlZmV0Y2hpbmcgPSAnZW5hYmxlUHJlZmV0Y2hpbmcnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlVGFibGVDYWxjRGVuc2lmaWNhdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVRhYmxlQ2FsY0RlbnNpZmljYXRpb24gPSAnZW5hYmxlVGFibGVDYWxjRGVuc2lmaWNhdGlvbicsXHJcblxyXG4gIC8vIERQSV9FbmFibGVUb29sdGlwcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVRvb2x0aXBzID0gJ2VuYWJsZVRvb2x0aXBzJyxcclxuXHJcbiAgLy8gRFBJX0VuZERhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFbmREYXRhU291cmNlUHJlc01vZGVsVXBkYXRlID0gJ2VuZERhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGUnLFxyXG5cclxuICAvLyBEUElfRXN0aW1hdGVOdWxscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVzdGltYXRlTnVsbHMgPSAnZXN0aW1hdGVOdWxscycsXHJcblxyXG4gIC8vIERQSV9FeGNsdWRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRXhjbHVkZSA9ICdleGNsdWRlJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVDb2xvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4Y2x1ZGVDb2xvciA9ICdleGNsdWRlQ29sb3InLFxyXG5cclxuICAvLyBEUElfRXhjbHVkZUN1YmVEZW5vcm0sIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeGNsdWRlQ3ViZURlbm9ybSA9ICdleGNsdWRlQ3ViZURlbm9ybScsXHJcblxyXG4gIC8vIERQSV9FeGNsdWRlSW50ZXJjZXB0RW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4Y2x1ZGVJbnRlcmNlcHRFbmFibGVkID0gJ2V4Y2x1ZGVJbnRlcmNlcHRFbmFibGVkJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVMb2NhbEZ1bmN0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4Y2x1ZGVMb2NhbEZ1bmN0aW9ucyA9ICdleGNsdWRlTG9jYWxGdW5jdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRXhwb3J0RGFzaGJvYXJkSW1hZ2VGcm9tU2hlZXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHBvcnREYXNoYm9hcmRJbWFnZUZyb21TaGVldCA9ICdleHBvcnRJbWFnZVNoZWV0QXNEYXNoYm9hcmQnLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnSXNBdXRoRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEV4dFN2Y0NvbmZpZ0lzQXV0aEVuYWJsZWQgPSAnZXh0U3ZjQ29uZmlnSXNBdXRoRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0RnVsbFJlZnJlc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0RnVsbFJlZnJlc2ggPSAnZXh0cmFjdEZ1bGxSZWZyZXNoJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3ROZWVkc1JlZnJlc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0TmVlZHNSZWZyZXNoID0gJ2V4dHJhY3ROZWVkc1JlZnJlc2gnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFBlbmRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0UGVuZGluZyA9ICdleHRyYWN0UGVuZGluZycsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0U2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBFeHRyYWN0U2VsZWN0ZWQgPSAnZXh0cmFjdFNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0ZlZGVyYXRhYmxlT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZlZGVyYXRhYmxlT25seSA9ICdmZWRlcmF0YWJsZU9ubHknLFxyXG5cclxuICAvLyBEUElfRmllbGRTb3J0T3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWVsZFNvcnRPcmRlciA9ICdmaWVsZFNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9GaWVsZFN1cHBvcnRzQ29udGFpbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWVsZFN1cHBvcnRzQ29udGFpbnMgPSAnZmllbGRTdXBwb3J0c0NvbnRhaW5zJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkU3VwcG9ydHNFbmRzV2l0aCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZpZWxkU3VwcG9ydHNFbmRzV2l0aCA9ICdmaWVsZFN1cHBvcnRzRW5kc1dpdGgnLFxyXG5cclxuICAvLyBEUElfRmllbGRTdXBwb3J0c1N0YXJ0c1dpdGgsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWVsZFN1cHBvcnRzU3RhcnRzV2l0aCA9ICdmaWVsZFN1cHBvcnRzU3RhcnRzV2l0aCcsXHJcblxyXG4gIC8vIERQSV9GaWxsQWJvdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWxsQWJvdmUgPSAnZmlsbEFib3ZlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbGxCZWxvdywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZpbGxCZWxvdyA9ICdmaWxsQmVsb3cnLFxyXG5cclxuICAvLyBEUElfRmlsbFdpdGhaZXJvZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWxsV2l0aFplcm9lcyA9ICdmaWxsWmVyb2VzJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlcklzTmFtZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGaWx0ZXJJc05hbWVkID0gJ2ZpbHRlcklzTmFtZWQnLFxyXG5cclxuICAvLyBEUElfRm9jdXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb2N1cyA9ICdmb2N1cycsXHJcblxyXG4gIC8vIERQSV9Gb3JJbnRlcm5hbFVzZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvckludGVybmFsVXNlID0gJ2ludGVybmFsVXNlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlQnJvd3NlclJlbmRlcmluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlQnJvd3NlclJlbmRlcmluZyA9ICdmb3JjZUJyb3dzZXJSZW5kZXJpbmcnLFxyXG5cclxuICAvLyBEUElfRm9yY2VDYWNoZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlQ2FjaGUgPSAnZm9yY2VDYWNoZScsXHJcblxyXG4gIC8vIERQSV9Gb3JjZUNvbG9yRnJvbUFwcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlQ29sb3JGcm9tQXBwID0gJ2ZvcmNlQ29sb3JGcm9tQXBwJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlQ29ubmVjdGlvbkF0dGVtcHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb3JjZUNvbm5lY3Rpb25BdHRlbXB0ID0gJ2ZvcmNlQ29ubmVjdGlvbkF0dGVtcHQnLFxyXG5cclxuICAvLyBEUElfRm9yY2VDb25zb2xpZGF0ZUluQ29tbWl0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yY2VDb25zb2xpZGF0ZUluQ29tbWl0ID0gJ2ZvcmNlQ29uc29saWRhdGVJbkNvbW1pdCcsXHJcblxyXG4gIC8vIERQSV9Gb3JjZUV4dHJhY3RSZWZyZXNoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yY2VFeHRyYWN0UmVmcmVzaCA9ICdleHRyYWN0Rm9yY2VSZWZyZXNoJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlSW50ZXJjZXB0WmVybywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlSW50ZXJjZXB0WmVybyA9ICdmb3JjZUludGVyY2VwdFplcm8nLFxyXG5cclxuICAvLyBEUElfRm9yY2VPbGRDb25uZWN0RXhwZXJpZW5jZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlT2xkQ29ubmVjdEV4cGVyaWVuY2UgPSAnZm9yY2VPbGRDb25uZWN0RXhwZXJpZW5jZScsXHJcblxyXG4gIC8vIERQSV9Gb3JjZVJlbGF0aXZlRGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlUmVsYXRpdmVEYXRlID0gJ2ZvcmNlUmVsYXRpdmVEYXRlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlVG9nZ2xlSGlnaGxpZ2h0U3RhdGVPbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmNlVG9nZ2xlSGlnaGxpZ2h0U3RhdGVPbiA9ICdmb3JjZUhpZ2hsaWdodE9uJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmNlVXNlclRvQ2hvb3NlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yY2VVc2VyVG9DaG9vc2UgPSAnZm9yY2VVc2VyVG9DaG9vc2UnLFxyXG5cclxuICAvLyBEUElfRm9yY2VXaG9sZURhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb3JjZVdob2xlRGF0ZSA9ICdmb3JjZVdob2xlRGF0ZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdFNlbGVjdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9yZWNhc3RTZWxlY3RlZCA9ICdmb3JlY2FzdFNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0VXNlQXV0b0FnZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvcmVjYXN0VXNlQXV0b0FnZyA9ICdmb3JlY2FzdFVzZUF1dG9TdW1tYXJpemUnLFxyXG5cclxuICAvLyBEUElfRm9ySm9pbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEZvckpvaW4gPSAnZm9ySm9pbicsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXREYXRhVmFsdWVMb2NhbGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9ybWF0RGF0YVZhbHVlTG9jYWxseSA9ICdmb3JtYXREYXRhVmFsdWVMb2NhbGx5JyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdElmQ29sdW1uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRm9ybWF0SWZDb2x1bW4gPSAnZm9ybWF0SWZDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfRm9ybWF0SWZQYXJhbWV0ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBGb3JtYXRJZlBhcmFtZXRlciA9ICdmb3JtYXRJZlBhcmFtZXRlcicsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoSXNEYXRhTG9hZGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaElzRGF0YUxvYWRlZCA9ICdnZW9ncmFwaGljU2VhcmNoRGF0YUxvYWRlZCcsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoTG9hZERhdGFBc3luYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEdlb2dyYXBoaWNTZWFyY2hMb2FkRGF0YUFzeW5jID0gJ2dlb2dyYXBoaWNTZWFyY2hMb2FkRGF0YUFzeW5jJyxcclxuXHJcbiAgLy8gRFBJX0dyb3VwQnlBbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBHcm91cEJ5QWxsID0gJ2dyb3VwQnlBbGwnLFxyXG5cclxuICAvLyBEUElfSGFzQWxpYXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNBbGlhcyA9ICdoYXNBbGlhcycsXHJcblxyXG4gIC8vIERQSV9IYXNBbGxNZW1iZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNBbGxNZW1iZXIgPSAnaGFzQWxsTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0hhc0FwcGx5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQXBwbHkgPSAnaGFzQXBwbHknLFxyXG5cclxuICAvLyBEUElfSGFzQmFja2dyb3VuZEltYWdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQmFja2dyb3VuZEltYWdlID0gJ2hhc0JhY2tncm91bmRJbWFnZScsXHJcblxyXG4gIC8vIERQSV9IYXNCZWVuRGlzbWlzc2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQmVlbkRpc21pc3NlZCA9ICdoYXNCZWVuRGlzbWlzc2VkJyxcclxuXHJcbiAgLy8gRFBJX0hhc0NhcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNDYXB0aW9uID0gJ2hhc0NhcHRpb24nLFxyXG5cclxuICAvLyBEUElfSGFzQ29uZGl0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzQ29uZGl0aW9uID0gJ2hhc0NvbmRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNDb25uZWN0UGVybWlzc2lvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNDb25uZWN0UGVybWlzc2lvbnMgPSAnaGFzQ29ubmVjdFBlcm1pc3Npb25zJyxcclxuXHJcbiAgLy8gRFBJX0hhc0Rhc2hib2FyZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0Rhc2hib2FyZCA9ICdoYXNEYXNoYm9hcmQnLFxyXG5cclxuICAvLyBEUElfSGFzRG93bmxvYWRQZXJtaXNzaW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0Rvd25sb2FkUGVybWlzc2lvbnMgPSAnaGFzRG93bmxvYWRQZXJtaXNzaW9ucycsXHJcblxyXG4gIC8vIERQSV9IYXNEcmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0RyaWxsID0gJ2hhc0RyaWxsJyxcclxuXHJcbiAgLy8gRFBJX0hhc0V4Y2x1ZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNFeGNsdWRlID0gJ2hhc0V4Y2x1ZGUnLFxyXG5cclxuICAvLyBEUElfSGFzRmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0ZpbGwgPSAnaGFzRmlsbCcsXHJcblxyXG4gIC8vIERQSV9IYXNMYWJlbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNMYWJlbHMgPSAnaGFzTGFiZWxzJyxcclxuXHJcbiAgLy8gRFBJX0hhc0xpbWl0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzTGltaXQgPSAnaGFzTGltaXQnLFxyXG5cclxuICAvLyBEUElfSGFzTGluZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0xpbmUgPSAnaGFzTGluZScsXHJcblxyXG4gIC8vIERQSV9IYXNNb2RpZmllZEF4ZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNNb2RpZmllZEF4ZXMgPSAnaGFzTW9kaWZpZWRBeGVzJyxcclxuXHJcbiAgLy8gRFBJX0hhc05vblJvb3RDYWxjdWxhdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNOb25Sb290Q2FsY3VsYXRpb25zID0gJ2hhc05vblJvb3RDYWxjdWxhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfSGFzT25seU9uZUhpZXJhcmNoeSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc09ubHlPbmVIaWVyYXJjaHkgPSAnaGFzT25seU9uZUhpZXJhcmNoeScsXHJcblxyXG4gIC8vIERQSV9IYXNQYXR0ZXJuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzUGF0dGVybiA9ICdoYXNQYXR0ZXJuJyxcclxuXHJcbiAgLy8gRFBJX0hhc1B1Ymxpc2hHdWlkYW5jZVJlc3VsdHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNQdWJsaXNoR3VpZGFuY2VSZXN1bHRzID0gJ2hhc1B1Ymxpc2hHdWlkYW5jZVJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfSGFzU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU2VsZWN0aW9uID0gJ2hhc1NlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNTZXJ2ZXJDcmVkZW50aWFscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1NlcnZlckNyZWRlbnRpYWxzID0gJ2hhc1NlcnZlckNyZWRlbnRpYWxzJyxcclxuXHJcbiAgLy8gRFBJX0hhc1NwYWNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU3BhY2UgPSAnaGFzU3BhY2UnLFxyXG5cclxuICAvLyBEUElfSGFzU3RvcmVkUHJvY2VkdXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU3RvcmVkUHJvY2VkdXJlID0gJ2hhc1N0b3JlZFByb2NlZHVyZScsXHJcblxyXG4gIC8vIERQSV9IYXNTdHJpbmdDYWxjdWxhdGVkTWVhc3VyZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNTdHJpbmdDYWxjdWxhdGVkTWVhc3VyZXMgPSAnaGFzU3RyaW5nQ2FsY3VsYXRlZE1lYXN1cmVzJyxcclxuXHJcbiAgLy8gRFBJX0hhc1RhYmxlQ2FsY0RhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNUYWJsZUNhbGNEYXRhID0gJ2hhc1RhYmxlQ2FsY0RhdGEnLFxyXG5cclxuICAvLyBEUElfSGFzVGl0bGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNUaXRsZSA9ICdoYXNUaXRsZScsXHJcblxyXG4gIC8vIERQSV9IYXNVc2VyU3BlY2lmaWNDb250ZW50LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzVXNlclNwZWNpZmljQ29udGVudCA9ICdoYXNVc2VyU3BlY2lmaWNDb250ZW50JyxcclxuXHJcbiAgLy8gRFBJX0hhc1Vuam9pbmVkVGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNVbmpvaW5lZFRhYmxlID0gJ2hhc1Vuam9pbmVkVGFibGUnLFxyXG5cclxuICAvLyBEUElfSGFzVmFyQXJncywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1ZhckFyZ3MgPSAnaGFzVmFyQXJncycsXHJcblxyXG4gIC8vIERQSV9IYXNWaXNpdGVkV0RDUGFnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1Zpc2l0ZWRXRENQYWdlID0gJ2hhc1Zpc2l0ZWRXZGNQYWdlJyxcclxuXHJcbiAgLy8gRFBJX0lnbm9yZUFsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJZ25vcmVBbGlhc2VzID0gJ2lnbm9yZUFsaWFzZXMnLFxyXG5cclxuICAvLyBEUElfSWdub3JlRG9tYWluLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSWdub3JlRG9tYWluID0gJ2lnbm9yZURvbWFpbicsXHJcblxyXG4gIC8vIERQSV9JZ25vcmVTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJZ25vcmVTZWxlY3Rpb24gPSAnaWdub3JlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVBbGxDb2x1bW5zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUFsbENvbHVtbnMgPSAnaW5jbHVkZUFsbENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUNvbnRleHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlQ29udGV4dCA9ICdpbmNsdWRlQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlRGFzaGJvYXJkUHJlc01vZGVscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVEYXNoYm9hcmRQcmVzTW9kZWxzID0gJ2luY2x1ZGVEYXNoYm9hcmRQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVJdGVtU2V0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUl0ZW1TZXQgPSAnaW5jbHVkZUl0ZW1TZXQnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUxvY2FsRmlsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlTG9jYWxGaWxlcyA9ICdpbmNsdWRlTG9jYWxGaWxlcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlT3RoZXJTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVPdGhlclNlbGVjdGVkID0gJ2luY2x1ZGVPdGhlclNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVOdWxscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVOdWxscyA9ICdpbmNsdWRlTnVsbHMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZVBhcmVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVQYXJlbnQgPSAnaW5jbHVkZVBhcmVudCcsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlU2VsZWN0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVTZWxlY3Rpb25zID0gJ2luY2x1ZGVTZWxlY3Rpb25zJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVTaWJsaW5ncywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVTaWJsaW5ncyA9ICdpbmNsdWRlU2libGluZ3MnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZVN0b3JpZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlU3RvcmllcyA9ICdpbmNsdWRlU3RvcmllcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlU3ViZm9sZGVycywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVTdWJmb2xkZXJzID0gJ2luY2x1ZGVTdWJmb2xkZXJzJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVWb2xhdGlsZVByb3BzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZVZvbGF0aWxlUHJvcHMgPSAnaW5jbHVkZVZvbGF0aWxlUHJvcHMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZXNUYWcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlc1RhZyA9ICdpbmNsdWRlc1RhZycsXHJcblxyXG4gIC8vIERQSV9JbnNlcnRBZnRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluc2VydEFmdGVyID0gJ2luc2VydEFmdGVyJyxcclxuXHJcbiAgLy8gRFBJX0luc2VydEF0RW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5zZXJ0QXRFbmQgPSAnaW5zZXJ0QXRFbmQnLFxyXG5cclxuICAvLyBEUElfSW5zdGFudEFuYWx5dGljc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbnN0YW50QW5hbHl0aWNzQWxsb3dlZCA9ICdpbnN0YW50QW5hbHl0aWNzQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9JbnRlZ2VyQ29vcmRpbmF0ZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbnRlZ2VyQ29vcmRpbmF0ZXMgPSAnaW50Q29vcmRzJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRhdGVkTGF5b3V0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW52YWxpZGF0ZWRMYXlvdXQgPSAnaW52YWxpZGF0ZWRMYXlvdXQnLFxyXG5cclxuICAvLyBEUElfSXNBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FjdGl2ZSA9ICdpc0FjdGl2ZScsXHJcblxyXG4gIC8vIERQSV9Jc0FkZFRvRmlsdGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBZGRUb0ZpbHRlciA9ICdpc0FkZFRvRmlsdGVyQnV0dG9uQ2hlY2tlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0FsbEJ1dHRvblZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FsbEJ1dHRvblZpc2libGUgPSAnaXNBbGxCdXR0b25WaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzQWxsb3dlZEluQ2FsY3MsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FsbG93ZWRJbkNhbGNzID0gJ2lzQWxsb3dlZEluQ2FsY3MnLFxyXG5cclxuICAvLyBEUElfSXNBcHBNYXBTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FwcE1hcFNvdXJjZSA9ICdpc0FwcE1hcFNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9Jc0FyY2hpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0FyY2hpdmUgPSAnaXNBcmNoaXZlJyxcclxuXHJcbiAgLy8gRFBJX0lzQXR0cmlidXRlSGllcmFyY2h5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdHRyaWJ1dGVIaWVyYXJjaHkgPSAnaXNBdHRyaWJ1dGVIaWVyYXJjaHknLFxyXG5cclxuICAvLyBEUElfSXNBdXRob3JpbmdNb2RlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdXRob3JpbmdNb2RlID0gJ2lzQXV0aG9yaW5nTW9kZScsXHJcblxyXG4gIC8vIERQSV9Jc0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0F1dG8gPSAnaXNBdXRvJyxcclxuXHJcbiAgLy8gRFBJX0lzQXV0b0NsZWFyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdXRvQ2xlYXIgPSAnaXNBdXRvQ2xlYXInLFxyXG5cclxuICAvLyBEUElfSXNBdXRvQ29sdW1uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNBdXRvQ29sdW1uID0gJ2lzQXV0b0NvbHVtbicsXHJcblxyXG4gIC8vIERQSV9Jc0F1dG9IaWRkZW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0F1dG9IaWRkZW4gPSAnaXNBdXRvSGlkZGVuJyxcclxuXHJcbiAgLy8gRFBJX0lzQXV0b1NlbGVjdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQXV0b1NlbGVjdCA9ICdpc0F1dG9TZWxlY3QnLFxyXG5cclxuICAvLyBEUElfSXNCb2xkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNCb2xkID0gJ2lzQm9sZCcsXHJcblxyXG4gIC8vIERQSV9Jc0JvcmRlclZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0JvcmRlclZpc2libGUgPSAnaXNCb3JkZXJWaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzQm94cGxvdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQm94cGxvdCA9ICdpc0JveHBsb3QnLFxyXG5cclxuICAvLyBEUElfSXNDYXBhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYXBhYmxlID0gJ2lzQ2FwYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0NhcHR1cmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYXB0dXJlZCA9ICdpc0NhcHR1cmVkJyxcclxuXHJcbiAgLy8gRFBJX0lzQ2VudGVyZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0NlbnRlcmVkID0gJ2lzQ2VudGVyZWQnLFxyXG5cclxuICAvLyBEUElfSXNDaGVja2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDaGVja2VkID0gJ2lzQ2hlY2tlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0NvbG9yRGl2ZXJnaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb2xvckRpdmVyZ2luZyA9ICdpc0NvbG9yRGl2ZXJnaW5nJyxcclxuXHJcbiAgLy8gRFBJX0lzQ29sb3JTdGVwcGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb2xvclN0ZXBwZWQgPSAnaXNDb2xvclN0ZXBwZWQnLFxyXG5cclxuICAvLyBEUElfSXNDb21iaW5lZEZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb21iaW5lZEZpZWxkID0gJ2lzQ29tYmluZWRGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9Jc0Nvbm5lY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ29ubmVjdGVkID0gJ2lzQ29ubmVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzQ29udGV4dE1lbnVBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb250ZXh0TWVudUFsbG93ZWQgPSAnaXNDb250ZXh0TWVudUFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfSXNDb250aW51b3VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDb250aW51b3VzID0gJ2lzQ29udGludW91cycsXHJcblxyXG4gIC8vIERQSV9Jc0NvcHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0NvcHkgPSAnaXNDb3B5JyxcclxuXHJcbiAgLy8gRFBJX0lzQ3VzdG9tQ2FsY3VsYXRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0N1c3RvbUNhbGN1bGF0aW9uID0gJ2lzQ3VzdG9tQ2FsY3VsYXRpb24nLFxyXG5cclxuICAvLyBEUElfSXNDdXN0b21QYWxldHRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDdXN0b21QYWxldHRlID0gJ2lzQ3VzdG9tUGFsZXR0ZScsXHJcblxyXG4gIC8vIERQSV9Jc0N1c3RvbVNRTCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ3VzdG9tU1FMID0gJ2lzQ3VzdG9tU3FsJyxcclxuXHJcbiAgLy8gRFBJX0lzQ3VzdG9tVmFsdWVFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDdXN0b21WYWx1ZUVuYWJsZWQgPSAnaXNDdXN0b21WYWx1ZUVuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfSXNEYXRhQWxlcnRDb25kaXRpb25NZXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFBbGVydENvbmRpdGlvbk1ldCA9ICdpc0RhdGFBbGVydENvbmRpdGlvbk1ldCcsXHJcblxyXG4gIC8vIERQSV9Jc0RhdGFBbGVydERpYWxvZ1Zpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFBbGVydERpYWxvZ1Zpc2libGUgPSAnaXNEYXRhQWxlcnREaWFsb2dWaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzRGF0YUJpbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRGF0YUJpbiA9ICdpc0RhdGFCaW4nLFxyXG5cclxuICAvLyBEUElfSXNEYXRhR3JpZFZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFHcmlkVmlzaWJsZSA9ICdpc0RhdGFHcmlkVmlzaWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0RhdGFiYXNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEYXRhYmFzZSA9ICdpc0RhdGFiYXNlJyxcclxuXHJcbiAgLy8gRFBJX0lzRGF0YWJhc2VGaWx0ZXJJbmNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RhdGFiYXNlRmlsdGVySW5jbHVzaXZlID0gJ2lzRGJGaWx0ZXJJbmNsdXNpdmUnLFxyXG5cclxuICAvLyBEUElfSXNEcmFnZ2FibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RyYWdnYWJsZSA9ICdpc0RyYWdnYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc01EWENhbGN1bGF0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNRFhDYWxjdWxhdGlvbiA9ICdpc01keENhbGN1bGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzTWV0YWRhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01ldGFkYXRhID0gJ2lzTWV0YWRhdGEnLFxyXG5cclxuICAvLyBEUElfSXNXZWJEYXRhVGFiVmlld1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzV2ViRGF0YVRhYlZpZXdTdXBwb3J0ZWQgPSAnaXNXZWJEYXRhVGFiVmlld1N1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1B1Ymxpc2hlZERhdGFzb3VyY2VSZXBsYWNlbWVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHVibGlzaGVkRGF0YXNvdXJjZVJlcGxhY2VtZW50ID0gJ2lzUHVibGlzaGVkRGF0YXNvdXJjZVJlcGxhY2VtZW50JyxcclxuXHJcbiAgLy8gRFBJX0lzRGVhZERyb3AsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RlYWREcm9wID0gJ2lzRGVhZERyb3AnLFxyXG5cclxuICAvLyBEUElfSXNEZWZhdWx0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZWZhdWx0ID0gJ2lzRGVmYXVsdCcsXHJcblxyXG4gIC8vIERQSV9Jc0RlbGV0ZUNhbGNDb25maXJtLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZWxldGVDYWxjQ29uZmlybSA9ICdpc0RlbGV0ZUNhbGNDb25maXJtZWQnLFxyXG5cclxuICAvLyBEUElfSXNEaW1lbnNpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RpbWVuc2lvbiA9ICdpc0RpbWVuc2lvbicsXHJcblxyXG4gIC8vIERQSV9Jc0Rpc2FibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEaXNhYmxlZCA9ICdpc0Rpc2FibGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzRGl2aWRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRGl2aWRlciA9ICdpc0RpdmlkZXInLFxyXG5cclxuICAvLyBEUElfSXNEcm9wZG93bkVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Ryb3Bkb3duRW5hYmxlZCA9ICdpc0Ryb3Bkb3duRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0VkaXRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VkaXRpbmcgPSAnaXNFZGl0aW5nJyxcclxuXHJcbiAgLy8gRFBJX0lzRW1iZWRkZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VtYmVkZGVkID0gJ2lzRW1iZWRkZWQnLFxyXG5cclxuICAvLyBEUElfSXNFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRW1wdHkgPSAnaXNFbXB0eScsXHJcblxyXG4gIC8vIERQSV9Jc0FkZEluRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQWRkSW5FbmFibGVkID0gJ2lzQWRkSW5FbmFibGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzSW5EcmlsbFBhdGgsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0luRHJpbGxQYXRoID0gJ2lzSW5EcmlsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfQWRkSW5KU0RlYnVnZ2luZ0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBZGRJbkpTRGVidWdnaW5nRW5hYmxlZCA9ICdhZGRJbkpzRGVidWdnaW5FbmFibGVkJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluUGF1c2VCZWZvcmVMb2FkaW5nLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQWRkSW5QYXVzZUJlZm9yZUxvYWRpbmcgPSAnYWRkSW5QYXVzZUJlZm9yZUxvYWRpbmcnLFxyXG5cclxuICAvLyBEUElfSXNEU0hpZXJhcmNoaWNhbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRFNIaWVyYXJjaGljYWwgPSAnaXNEc0hpZXJhcmNoaWNhbCcsXHJcblxyXG4gIC8vIERQSV9Jc0VkaXRvck9wZW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0VkaXRvck9wZW4gPSAnaXNFZGl0b3JPcGVuJyxcclxuXHJcbiAgLy8gRFBJX0lzRW5kUHRNb3ZlYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRW5kUHRNb3ZlYWJsZSA9ICdpc0VuZHBvaW50TW92YWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0V4Y2x1ZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4Y2x1ZGUgPSAnaXNFeGNsdWRlQnV0dG9uQ2hlY2tlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0V4aXN0aW5nQ29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRXhpc3RpbmdDb25uZWN0aW9uID0gJ2lzRXhpc3RpbmdDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzRXhpc3RpbmdPYmplY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4aXN0aW5nT2JqZWN0ID0gJ2lzRXhpc3RpbmdPYmplY3QnLFxyXG5cclxuICAvLyBEUElfSXNFeHRyYWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNFeHRyYWN0ID0gJ2lzRXh0cmFjdCcsXHJcblxyXG4gIC8vIERQSV9Jc0V4dHJhY3RPbmx5Q29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRXh0cmFjdE9ubHlDb25uZWN0aW9uID0gJ2lzRXh0cmFjdE9ubHlDb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzRXh0cmFjdFNlbGVjdGlvblZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4dHJhY3RTZWxlY3Rpb25WaXNpYmxlID0gJ2lzRXh0cmFjdFNlbGVjdGlvblZpc2libGUnLFxyXG5cclxuICAvLyBEUElfSXNGZWRlcmF0YWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRmVkZXJhdGFibGUgPSAnaXNGZWRlcmF0YWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc0ZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGaWVsZCA9ICdpc0ZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX0lzRmllbGRQYXJhbWV0ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ZpZWxkUGFyYW1ldGVyID0gJ2lzRmllbGRQYXJhbWV0ZXInLFxyXG5cclxuICAvLyBEUElfSXNGaWx0ZXJBY3Rpb25GaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRmlsdGVyQWN0aW9uRmllbGQgPSAnaXNGaWx0ZXJBY3Rpb25GaWVsZCcsXHJcblxyXG4gIC8vIERQSV9Jc0ZpcnN0Q2xhc3NDb25uZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ZpcnN0Q2xhc3NDb25uZWN0b3IgPSAnaXNGaXJzdENsYXNzQ29ubmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0lzRmxvYXRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Zsb2F0aW5nID0gJ2lzRmxvYXRpbmcnLFxyXG5cclxuICAvLyBEUElfSXNGb2xkZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ZvbGRlZCA9ICdpc0ZvbGRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0ZvcklucHV0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGb3JJbnB1dCA9ICdpc0ZvcklucHV0JyxcclxuXHJcbiAgLy8gRFBJX0lzRm9yZWNhc3RFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGb3JlY2FzdEVuYWJsZWQgPSAnaXNGb3JlY2FzdEVuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfSXNGb3JjZURpcnR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGb3JjZURpcnR5ID0gJ2lzRm9yY2VEaXJ0eScsXHJcblxyXG4gIC8vIERQSV9Jc0Z1bGxTY2FuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNGdWxsU2NhbiA9ICdpc0Z1bGxTY2FuJyxcclxuXHJcbiAgLy8gRFBJX0lzRnVsbFN0eWxpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0Z1bGxTdHlsaW5nID0gJ2lzRnVsbFN0eWxpbmcnLFxyXG5cclxuICAvLyBEUElfSXNHZW5lcmF0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0dlbmVyYXRlZCA9ICdpc0dlbmVyYXRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0dsb2JhbE5hbWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNHbG9iYWxOYW1lcyA9ICdpc0dsb2JhbE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0lzR3JheWVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNHcmF5ZWQgPSAnaXNHcmF5ZWQnLFxyXG5cclxuICAvLyBEUElfSXNHcmF5c2NhbGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0dyYXlzY2FsZSA9ICdpc0dyYXlzY2FsZScsXHJcblxyXG4gIC8vIERQSV9Jc0dyb3VwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNHcm91cCA9ICdpc0dyb3VwJyxcclxuXHJcbiAgLy8gRFBJX0lzSGlkZWFibGVGaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSGlkZWFibGVGaWVsZCA9ICdpc0hpZGVhYmxlRmllbGQnLFxyXG5cclxuICAvLyBEUElfSXNIaWVyYXJjaHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0hpZXJhcmNoeSA9ICdpc0hpZXJhcmNoeScsXHJcblxyXG4gIC8vIERQSV9Jc0hpZXJhcmNoeVNpbmdsZVNlbGVjdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSGllcmFyY2h5U2luZ2xlU2VsZWN0ID0gJ2lzSGllcmFyY2h5U2luZ2xlU2VsZWN0JyxcclxuXHJcbiAgLy8gRFBJX0lzSGlnaGxpZ2h0QWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSGlnaGxpZ2h0QWxsb3dlZCA9ICdpc0hpZ2hsaWdodEFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfSXNIaWdobGlnaHRFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNIaWdobGlnaHRFbmFibGVkID0gJ2lzSGlnaGxpZ2h0RW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0hpZ2hsaWdodEZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNIaWdobGlnaHRGaWVsZCA9ICdpc0hpZ2hsaWdodEZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX0lzSG9yaXpvbnRhbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSG9yaXpvbnRhbCA9ICdpc0hvcml6b250YWwnLFxyXG5cclxuICAvLyBEUElfSXNJbWFnZUVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ltYWdlRW5hYmxlZCA9ICdpc0ltYWdlRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0luRGVmYXVsdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW5EZWZhdWx0ID0gJ2lzSW5EZWZhdWx0JyxcclxuXHJcbiAgLy8gRFBJX0lzSW5QcmltYXJ5RGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW5QcmltYXJ5RGF0YVNvdXJjZSA9ICdpc0luUHJpbWFyeURhdGFTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfSXNJbm5lciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW5uZXIgPSAnaXNJbm5lcicsXHJcblxyXG4gIC8vIERQSV9Jc0luc3RhbmNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNJbnN0YW5jZSA9ICdpc0luc3RhbmNlJyxcclxuXHJcbiAgLy8gRFBJX0lzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSW52YWxpZCA9ICdpc0ludmFsaWQnLFxyXG5cclxuICAvLyBEUElfSXNJbnZhbGlkQ2FsY09uREcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0ludmFsaWRDYWxjT25ERyA9ICdpc0ludmFsaWREZ0NhbGMnLFxyXG5cclxuICAvLyBEUElfSXNJdGFsaWNzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNJdGFsaWNzID0gJ2lzSXRhbGljcycsXHJcblxyXG4gIC8vIERQSV9Jc0pvaW5BcmVhVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzSm9pbkFyZWFWaXNpYmxlID0gJ2lzSm9pbkFyZWFWaXNpYmxlJyxcclxuXHJcbiAgLy8gRFBJX0lzTGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMYWJlbHMgPSAnaXNMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfSXNMYXllcmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMYXllcmVkID0gJ2lzTGF5ZXJlZCcsXHJcblxyXG4gIC8vIERQSV9Jc0xlZnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0xlZnQgPSAnaXNMZWZ0JyxcclxuXHJcbiAgLy8gRFBJX0lzTGVnYWN5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMZWdhY3kgPSAnaXNMZWdhY3knLFxyXG5cclxuICAvLyBEUElfSXNMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTGV2ZWwgPSAnaXNMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9Jc0xldmVsT3JMZXZlbElkZW50aXR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMZXZlbE9yTGV2ZWxJZGVudGl0eSA9ICdpc0xldmVsT3JMZXZlbElkZW50aXR5JyxcclxuXHJcbiAgLy8gRFBJX0lzTGljZW5zZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0xpY2Vuc2VkID0gJ2lzTGljZW5zZWQnLFxyXG5cclxuICAvLyBEUElfSXNMaW5rLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNMaW5rID0gJ2lzTGluaycsXHJcblxyXG4gIC8vIERQSV9Jc0xpbmtlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTGlua2VkID0gJ2lzTGlua2VkJyxcclxuXHJcbiAgLy8gRFBJX0lzTWFwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNYXAgPSAnaXNNYXAnLFxyXG5cclxuICAvLyBEUElfSXNNZWFzdXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNZWFzdXJlID0gJ2lzTWVhc3VyZScsXHJcblxyXG4gIC8vIERQSV9Jc01lcmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNNZXJnZSA9ICdpc01lcmdlJyxcclxuXHJcbiAgLy8gRFBJX0lzTWVzc2FnZVNvdXJjZVJlbW90ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTWVzc2FnZVNvdXJjZVJlbW90ZSA9ICdpc01lc3NhZ2VTb3VyY2VSZW1vdGUnLFxyXG5cclxuICAvLyBEUElfSXNNaXNzaW5nRnJvbUV4dHJhY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01pc3NpbmdGcm9tRXh0cmFjdCA9ICdpc01pc3NpbmdGcm9tRXh0cmFjdCcsXHJcblxyXG4gIC8vIERQSV9Jc01vYmlsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTW9iaWxlID0gJ2lzTW9iaWxlJyxcclxuXHJcbiAgLy8gRFBJX0lzTW9kaWZpZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01vZGlmaWVkID0gJ2lzTW9kaWZpZWQnLFxyXG5cclxuICAvLyBEUElfSXNOZXcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc05ldyA9ICdpc05ldycsXHJcblxyXG4gIC8vIERQSV9Jc05ld0Nsb3VkRmlsZURhdGFTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc05ld0Nsb3VkRmlsZURhdGFTb3VyY2UgPSAnaXNOZXdDbG91ZEZpbGVEYXRhU291cmNlJyxcclxuXHJcbiAgLy8gRFBJX0lzTmV3Wm9uZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTmV3Wm9uZSA9ICdpc05ld1pvbmUnLFxyXG5cclxuICAvLyBEUElfSXNOb25lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNOb25lID0gJ2lzTm9uZScsXHJcblxyXG4gIC8vIERQSV9Jc09mZmxpbmVNb2RlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPZmZsaW5lTW9kZSA9ICdpc09mZmxpbmVNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0lzUHJlQXFsQmluLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQcmVBcWxCaW4gPSAnaXNQcmVBcWxCaW4nLFxyXG5cclxuICAvLyBEUElfSXNPTWVhc3VyZXNBbmRSZWxhdGlvbmFsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPTWVhc3VyZXNBbmRSZWxhdGlvbmFsID0gJ2lzT21lYXN1cmVzQW5kUmVsYXRpb25hbCcsXHJcblxyXG4gIC8vIERQSV9Jc09wYXF1ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzT3BhcXVlID0gJ2lzT3BhcXVlJyxcclxuXHJcbiAgLy8gRFBJX0lzT3JwaGFuZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc09ycGhhbmVkID0gJ2lzT3JwaGFuZWQnLFxyXG5cclxuICAvLyBEUElfSXNPdmVybGF5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPdmVybGF5ID0gJ2lzT3ZlcmxheScsXHJcblxyXG4gIC8vIERQSV9Jc092ZXJyaWRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNPdmVycmlkZSA9ICdpc092ZXJyaWRlJyxcclxuXHJcbiAgLy8gRFBJX0lzUGFnZUxvYWRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1BhZ2VMb2FkaW5nID0gJ2lzUGFnZUxvYWRpbmcnLFxyXG5cclxuICAvLyBEUElfSXNQYXJhbWV0ZXJTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUGFyYW1ldGVyU2VsZWN0ZWQgPSAnaXNQYXJhbWV0ZXJTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1BhcmFtZXRlclNlbGVjdGVkT25Gcm9tLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQYXJhbWV0ZXJTZWxlY3RlZE9uRnJvbSA9ICdpc1BhcmFtZXRlclNlbGVjdGVkT25Gcm9tJyxcclxuXHJcbiAgLy8gRFBJX0lzUGFyYW1ldGVyU2VsZWN0ZWRPblRvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQYXJhbWV0ZXJTZWxlY3RlZE9uVG8gPSAnaXNQYXJhbWV0ZXJTZWxlY3RlZE9uVG8nLFxyXG5cclxuICAvLyBEUElfSXNQYXR0ZXJuQmFzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1BhdHRlcm5CYXNlZCA9ICdpc1BhdHRlcm5CYXNlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1Bpbm5lZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUGlubmVkID0gJ2lzUGlubmVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUHJlc2VudGF0aW9uTW9kZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHJlc2VudGF0aW9uTW9kZSA9ICdpc1ByZXNlbnRhdGlvbk1vZGVEb2MnLFxyXG5cclxuICAvLyBEUElfSXNQdWJsaXNoQWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHVibGlzaEFsbG93ZWQgPSAnaXNQdWJsaXNoQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9Jc011c3REb3duZ3JhZGVUb1B1Ymxpc2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc011c3REb3duZ3JhZGVUb1B1Ymxpc2ggPSAnaXNEb3duZ3JhZGVUb1B1Ymxpc2hSZXF1aXJlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1B1Ymxpc2hlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUHVibGlzaGVkID0gJ2lzUHVibGlzaGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUXVhbnRpdGF0aXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNRdWFudGl0YXRpdmUgPSAnaXNRdWFudGl0YXRpdmUnLFxyXG5cclxuICAvLyBEUElfSXNRdWlja1RhYmxlQ2FsYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUXVpY2tUYWJsZUNhbGMgPSAnaXNRdWlja1RhYmxlQ2FsYycsXHJcblxyXG4gIC8vIERQSV9Jc1JhZGlvT24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JhZGlvT24gPSAnaXNSYWRpb09uJyxcclxuXHJcbiAgLy8gRFBJX0lzUmVjb25uZWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNSZWNvbm5lY3QgPSAnaXNSZWNvbm5lY3QnLFxyXG5cclxuICAvLyBEUElfSXNSZWN1cnNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlY3Vyc2l2ZSA9ICdpc1JlY3Vyc2l2ZScsXHJcblxyXG4gIC8vIERQSV9Jc1JlZmVyZW5jZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlZmVyZW5jZWQgPSAnaXNSZWZlcmVuY2VkJyxcclxuXHJcbiAgLy8gRFBJX0lzUmVtb3ZhbEFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlbW92YWxBbGxvd2VkID0gJ2lzUm93UmVtb3ZhbEFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfSXNSZW5kZXJDYXBhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNSZW5kZXJDYXBhYmxlID0gJ2lzUmVuZGVyQ2FwYWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc1JlcXVpcmVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNSZXF1aXJlZCA9ICdpc1JlcXVpcmVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUmV2ZXJzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JldmVyc2VkID0gJ2lzUmV2ZXJzZWQnLFxyXG5cclxuICAvLyBEUElfSXNSaWdodERyYWcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JpZ2h0RHJhZyA9ICdpc1JpZ2h0RHJhZycsXHJcblxyXG4gIC8vIERQSV9Jc1Jvd0xhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUm93TGFiZWxzID0gJ2lzUm93TGFiZWxzJyxcclxuXHJcbiAgLy8gRFBJX0lzUGVyY2VudGFnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUGVyY2VudGFnZSA9ICdpc1BlcmNlbnRhZ2UnLFxyXG5cclxuICAvLyBEUElfSXNTYWxlc2ZvcmNlSW5Db25uZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTYWxlc2ZvcmNlSW5Db25uZWN0aW9uID0gJ2lzU2FsZXNmb3JjZUluQ29ubmVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Jc1NjYWxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2NhbGVkID0gJ2lzU2NhbGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzU2Vjb25kYXJ5RmllbGQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NlY29uZGFyeUZpZWxkID0gJ2lzU2Vjb25kYXJ5RmllbGQnLFxyXG5cclxuICAvLyBEUElfSXNTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2VsZWN0ZWQgPSAnaXNTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1NlbGVjdGVkSXRlbSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2VsZWN0ZWRJdGVtID0gJ2lzU2VsZWN0ZWRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0lzU2VsZWN0aW9uRGlzYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NlbGVjdGlvbkRpc2FibGVkID0gJ2lzU2VsZWN0aW9uRGlzYWJsZWQnLFxyXG5cclxuICAvLyBEUElfSXNTaGlmdERyYWcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NoaWZ0RHJhZyA9ICdpc1NoaWZ0RHJhZycsXHJcblxyXG4gIC8vIERQSV9Jc1NpbmdsZUxhYmVsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTaW5nbGVMYWJlbCA9ICdpc1NpbmdsZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0lzU2luZ2xlU2VsZWN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTaW5nbGVTZWxlY3QgPSAnaXNTaW5nbGVTZWxlY3QnLFxyXG5cclxuICAvLyBEUElfSXNTaW5nbGVTZWxlY3RNb2RlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTaW5nbGVTZWxlY3RNb2RlID0gJ2lzU2luZ2xlU2VsZWN0TW9kZScsXHJcblxyXG4gIC8vIERQSV9Jc1NpbmdsZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2luZ2xlU2VsZWN0aW9uID0gJ2lzU2luZ2xlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzU29ydGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTb3J0ZWQgPSAnaXNTb3J0ZWQnLFxyXG5cclxuICAvLyBEUElfSXNTb3J0UGlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU29ydFBpbGwgPSAnaXNTb3J0UGlsbCcsXHJcblxyXG4gIC8vIERQSV9Jc1NwZWNpYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NwZWNpYWwgPSAnaXNTcGVjaWFsJyxcclxuXHJcbiAgLy8gRFBJX0lzU3BsYXNoU2NyZWVuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTcGxhc2hTY3JlZW4gPSAnaXNTcGxhc2hTY3JlZW4nLFxyXG5cclxuICAvLyBEUElfSXNTdG9yeUVtcHR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTdG9yeUVtcHR5ID0gJ2lzU3RvcnlFbXB0eScsXHJcblxyXG4gIC8vIERQSV9Jc1N0cmlrZVRocm91Z2gsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1N0cmlrZVRocm91Z2ggPSAnaXNTdHJpa2VUaHJvdWdoJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUYWJsZUNhbGMgPSAnaXNUYWJsZUNhbGMnLFxyXG5cclxuICAvLyBEUElfSXNUYWJsZUNsZWFuaW5nU3VidGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlQ2xlYW5pbmdTdWJ0YWJsZSA9ICdpc1RhYmxlQ2xlYW5pbmdTdWJ0YWJsZScsXHJcblxyXG4gIC8vIERQSV9Jc1RhYmxlRmlsdGVySW5jbHVzaXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUYWJsZUZpbHRlckluY2x1c2l2ZSA9ICdpc1RhYmxlRmlsdGVySW5jbHVzaXZlJyxcclxuXHJcbiAgLy8gRFBJX0lzVGFibGVSYW5rZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RhYmxlUmFua2VkID0gJ2lzVGFibGVSYW5rZWQnLFxyXG5cclxuICAvLyBEUElfSXNUZW1wb3JhcnksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RlbXBvcmFyeSA9ICdpc1RlbXBvcmFyeScsXHJcblxyXG4gIC8vIERQSV9Jc1RpbWVJbnRlbGxpZ2VuY2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1RpbWVJbnRlbGxpZ2VuY2UgPSAnaXNUaW1lSW50ZWxsaWdlbmNlJyxcclxuXHJcbiAgLy8gRFBJX0lzVGl0bGVWaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUaXRsZVZpc2libGUgPSAnaXNUaXRsZVZpc2libGUnLFxyXG5cclxuICAvLyBEUElfSXNUb3BMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVG9wTGV2ZWwgPSAnaXNUb3BMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9Jc1R3b1ZhbHVlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVHdvVmFsdWVkID0gJ2lzVHdvVmFsdWVkJyxcclxuXHJcbiAgLy8gRFBJX0lzVHlwZUluRmluaXNoZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1R5cGVJbkZpbmlzaGVkID0gJ2lzVHlwZWluRmluaXNoZWQnLFxyXG5cclxuICAvLyBEUElfSXNUeXBlSW5QaWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUeXBlSW5QaWxsID0gJ2lzVHlwZUluUGlsbCcsXHJcblxyXG4gIC8vIERQSV9Jc1VSTEFjdGlvbkZpZWxkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNVUkxBY3Rpb25GaWVsZCA9ICdpc1VybEFjdGlvbkZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX0lzVW5kZXJsaW5lZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVW5kZXJsaW5lZCA9ICdpc1VuZGVybGluZWQnLFxyXG5cclxuICAvLyBEUElfSXNVbmlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVW5pb24gPSAnaXNVbmlvbicsXHJcblxyXG4gIC8vIERQSV9Jc1VuaW9uUmVwbGFjZW1lbnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VuaW9uUmVwbGFjZW1lbnQgPSAnaXNVbmlvblJlcGxhY2VtZW50JyxcclxuXHJcbiAgLy8gRFBJX0lzVW5uYW1lZENhbGMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VubmFtZWRDYWxjID0gJ2lzVW5uYW1lZCcsXHJcblxyXG4gIC8vIERQSV9Jc1VzZXJEZWZpbmVkQXR0cmlidXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNVc2VyRGVmaW5lZEF0dHJpYnV0ZSA9ICdpc1VzZXJEZWZpbmVkQXR0cmlidXRlJyxcclxuXHJcbiAgLy8gRFBJX0lzVXNlckVkaXRhYmxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNVc2VyRWRpdGFibGUgPSAnaXNVc2VyRWRpdGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNVc2VyUHJvbXB0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VzZXJQcm9tcHRlZCA9ICdpc1VzZXJQcm9tcHRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1VzZXJSZXNwb25kZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VzZXJSZXNwb25kZWQgPSAnaXNVc2VyUmVzcG9uZGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZhbGlkID0gJ2lzVmFsaWQnLFxyXG5cclxuICAvLyBEUElfSXNWYWxpZFdEQ1BhZ2UsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZhbGlkV0RDUGFnZSA9ICdpc1ZhbGlkV2RjUGFnZScsXHJcblxyXG4gIC8vIERQSV9Jc1ZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb24gPSAnaXNWYXJ5aW5nQXR0cmlidXRlRGltZW5zaW9uJyxcclxuXHJcbiAgLy8gRFBJX0lzVmVydGljYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZlcnRpY2FsID0gJ2lzVmVydGljYWwnLFxyXG5cclxuICAvLyBEUElfSXNWaWV3TW9kaWZpZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1ZpZXdNb2RpZmllZCA9ICdpc1ZpZXdNb2RpZmllZCcsXHJcblxyXG4gIC8vIERQSV9Jc1Zpc3VhbGx5Q2F0ZWdvcmljYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1Zpc3VhbGx5Q2F0ZWdvcmljYWwgPSAnaXNWaXN1YWxseUNhdCcsXHJcblxyXG4gIC8vIERQSV9Jc1ZpekluVG9vbHRpcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVml6SW5Ub29sdGlwID0gJ2lzVml6SW5Ub29sdGlwJyxcclxuXHJcbiAgLy8gRFBJX0lzV2ViLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNXZWIgPSAnaXNXZWInLFxyXG5cclxuICAvLyBEUElfSXNXaGl0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzV2hpdGUgPSAnaXNXaGl0ZScsXHJcblxyXG4gIC8vIERQSV9Jc1dvcmxkTmV3LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNXb3JsZE5ldyA9ICdpc1dvcmxkTmV3JyxcclxuXHJcbiAgLy8gRFBJX0lzWEF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1hBeGlzID0gJ2lzWEF4aXMnLFxyXG5cclxuICAvLyBEUElfS2VlcEFzcGVjdFJhdGlvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgS2VlcEFzcGVjdFJhdGlvID0gJ2tlZXBBc3BlY3RSYXRpbycsXHJcblxyXG4gIC8vIERQSV9MYWJlbExpbmVFbmRGaXJzdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIExhYmVsTGluZUVuZEZpcnN0ID0gJ2xhYmVsTGluZUVuZEZpcnN0JyxcclxuXHJcbiAgLy8gRFBJX0xhYmVsTGluZUVuZExhc3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBMYWJlbExpbmVFbmRMYXN0ID0gJ2xhYmVsTGluZUVuZExhc3QnLFxyXG5cclxuICAvLyBEUElfTGFiZWxNYXJrTWF4LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTGFiZWxNYXJrTWF4ID0gJ2xhYmVsTWFya01heCcsXHJcblxyXG4gIC8vIERQSV9MYWJlbE1hcmtNaW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBMYWJlbE1hcmtNaW4gPSAnbGFiZWxNYXJrTWluJyxcclxuXHJcbiAgLy8gRFBJX0xvY2tBc3BlY3RSYXRpbywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIExvY2tBc3BlY3RSYXRpbyA9ICdsb2NrQXNwZWN0UmF0aW8nLFxyXG5cclxuICAvLyBEUElfTG9vcFBsYXliYWNrLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTG9vcFBsYXliYWNrID0gJ2xvb3BQbGF5YmFjaycsXHJcblxyXG4gIC8vIERQSV9Mb3NzeUltYWdlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIExvc3N5SW1hZ2VzID0gJ2xvc3N5SW1hZ2VzJyxcclxuXHJcbiAgLy8gRFBJX01ha2VHbG9iYWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNYWtlR2xvYmFsID0gJ2lzTWFrZUdsb2JhbCcsXHJcblxyXG4gIC8vIERQSV9NYW51YWxTb3J0T25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE1hbnVhbFNvcnRPbmx5ID0gJ21hbnVhbFNvcnRPbmx5JyxcclxuXHJcbiAgLy8gRFBJX01hcEJveERlZmF1bHRTdHlsZVNlbGVjdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwQm94RGVmYXVsdFN0eWxlU2VsZWN0ZWQgPSAnbWFwYm94RGVmYXVsdFN0eWxlU2VsZWN0ZWQnLFxyXG5cclxuICAvLyBEUElfTWFwQm94VVJMUGFyc2VTdWNjZXNzZnVsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwQm94VVJMUGFyc2VTdWNjZXNzZnVsID0gJ21hcGJveFVybFBhcnNlU3VjY2Vzc2Z1bCcsXHJcblxyXG4gIC8vIERQSV9NYXBDbGllbnRSZXF1ZXN0c01hcFRpbGVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwQ2xpZW50UmVxdWVzdHNNYXBUaWxlcyA9ICdjbGllbnRSZXF1ZXN0c01hcFRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX01hcEhhc1ZhbGlkTGF5ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNYXBIYXNWYWxpZExheWVyID0gJ21hcEhhc1ZhbGlkTGF5ZXInLFxyXG5cclxuICAvLyBEUElfTWFwU2hvd0F0dHJpYnV0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTWFwU2hvd0F0dHJpYnV0aW9uID0gJ3Nob3dBdHRyaWJ1dGlvbicsXHJcblxyXG4gIC8vIERQSV9NYXJrTGFiZWxzVmlzaWJpbGl0eUNoYW5nZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNYXJrTGFiZWxzVmlzaWJpbGl0eUNoYW5nZWQgPSAnbWFya0xhYmVsc1Zpc2liaWxpdHlDaGFuZ2VkJyxcclxuXHJcbiAgLy8gRFBJX01lbWJlcnNMb2FkZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNZW1iZXJzTG9hZGVkID0gJ21lbWJlcnNMb2FkZWQnLFxyXG5cclxuICAvLyBEUElfTWluaW1pemVOYW1lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE1pbmltaXplTmFtZXMgPSAndXNlTWluTmFtZXMnLFxyXG5cclxuICAvLyBEUElfTW9kZWxzVGltZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE1vZGVsc1RpbWUgPSAnbW9kZWxzVGltZScsXHJcblxyXG4gIC8vIERQSV9Nb3ZlUmVmZXJlY2VMaW5lVXAsIGhhdmluZyB0eXBlIGJvb2xcclxuICBNb3ZlUmVmZXJlY2VMaW5lVXAgPSAnbW92ZVJlZmVyZW5jZUxpbmVVcCcsXHJcblxyXG4gIC8vIERQSV9NdWx0aURhdGFTb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTXVsdGlEYXRhU291cmNlcyA9ICdtdWx0aURhdGFTb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX05hdkFycm93c1Zpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBOYXZBcnJvd3NWaXNpYmxlID0gJ25hdkFycm93c1Zpc2libGUnLFxyXG5cclxuICAvLyBEUElfT0VNSGFzU3BsYXNoU2NyZWVuLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgT0VNSGFzU3BsYXNoU2NyZWVuID0gJ29lbUhhc1NwbGFzaFNjcmVlbicsXHJcblxyXG4gIC8vIERQSV9PbmVXYXlCcnVzaGluZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE9uZVdheUJydXNoaW5nID0gJ29uZVdheUJydXNoaW5nJyxcclxuXHJcbiAgLy8gRFBJX09ubHlBZ2dyZWdhdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBPbmx5QWdncmVnYXRpb25zID0gJ29ubHlBZ2dyZWdhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfT25seVNob3dEYXRlQmlucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE9ubHlTaG93RGF0ZUJpbnMgPSAnb25seVNob3dEYXRlQmlucycsXHJcblxyXG4gIC8vIERQSV9PdmVycmlkZUFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBPdmVycmlkZUFsbG93ZWQgPSAnb3ZlcnJpZGVBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX092ZXJyaWRlU3RhY2tEdW1wZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBPdmVycmlkZVN0YWNrRHVtcGVyID0gJ292ZXJyaWRlU3RhY2tEdW1wZXInLFxyXG5cclxuICAvLyBEUElfUGFnZUF1dG9Db2xvckxpbmVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUGFnZUF1dG9Db2xvckxpbmVzID0gJ2F1dG9Db2xvckxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VBdXRvQ29sb3JNYXJrcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFBhZ2VBdXRvQ29sb3JNYXJrcyA9ICdhdXRvQ29sb3JNYXJrcycsXHJcblxyXG4gIC8vIERQSV9QYWdlSGlzdG9yeUZhZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBQYWdlSGlzdG9yeUZhZGUgPSAnaGlzdG9yeUZhZGUnLFxyXG5cclxuICAvLyBEUElfUGVyY2VudGFnZUJhbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUGVyY2VudGFnZUJhbmRzID0gJ3BlcmNlbnRhZ2VCYW5kcycsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50aWxlc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBQZXJjZW50aWxlc0FsbG93ZWQgPSAncGVyY2VudGlsZXNBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hXaXRoUmVtb3RlUXVlcnlBZ2VudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFB1Ymxpc2hXaXRoUmVtb3RlUXVlcnlBZ2VudCA9ICdwdWJsaXNoV2l0aFJlbW90ZVF1ZXJ5QWdlbnQnLFxyXG5cclxuICAvLyBEUElfUHJldmlvdXNTaGVldCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFByZXZpb3VzU2hlZXQgPSAncHJldmlvdXNTaGVldCcsXHJcblxyXG4gIC8vIERQSV9Qcm9tcHREZWxldGVTaGVldHNXaXRoVml6SW5Ub29sdGlwLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUHJvbXB0RGVsZXRlU2hlZXRzV2l0aFZpekluVG9vbHRpcCA9ICdwcm9tcHREZWxldGVTaGVldHNXaXRoVml6SW5Ub29sdGlwJyxcclxuXHJcbiAgLy8gRFBJX1F1YW50aWxlc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBRdWFudGlsZXNBbGxvd2VkID0gJ3F1YW50aWxlc0FsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfUmFkaWFsRGlzdGFuY2VIaXRUZXN0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmFkaWFsRGlzdGFuY2VIaXRUZXN0ID0gJ3JhZGlhbERpc3RhbmNlSGl0VGVzdCcsXHJcblxyXG4gIC8vIERQSV9SZWZMaW5lU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZWZMaW5lU2VsZWN0ZWQgPSAncmVmTGluZVNlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX1JlbW92ZWRTaGVldHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZW1vdmVkU2hlZXRzID0gJ3JlbW92ZWRTaGVldHMnLFxyXG5cclxuICAvLyBEUElfUmVuZGVySW1hZ2VzQXNVcmxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVuZGVySW1hZ2VzQXNVcmxzID0gJ2ltYWdlc0FzVXJscycsXHJcblxyXG4gIC8vIERQSV9SZW5kZXJPblRvcCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlbmRlck9uVG9wID0gJ3JlbmRlck9uVG9wJyxcclxuXHJcbiAgLy8gRFBJX1JlcGVhdEhlYWRlcnNMZWdlbmRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVwZWF0SGVhZGVyc0xlZ2VuZHMgPSAncmVwZWF0SGVhZGVyc0xlZ2VuZHMnLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZUFjdGl2ZUNvbmZpZywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VBY3RpdmVDb25maWcgPSAncmVwbGFjZUFjdGl2ZUNvbmZpZycsXHJcblxyXG4gIC8vIERQSV9SZXBsYWNlRGF0YXNvdXJjZUFmdGVyUHVibGlzaCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VEYXRhc291cmNlQWZ0ZXJQdWJsaXNoID0gJ3JlcGxhY2VEYXRhc291cmNlQWZ0ZXJQdWJsaXNoJyxcclxuXHJcbiAgLy8gRFBJX1JlcGxhY2VEYXRhc291cmNlRmFpbGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVwbGFjZURhdGFzb3VyY2VGYWlsZWQgPSAncmVwbGFjZURhdGFzb3VyY2VGYWlsZWQnLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZVRkZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VUZGUgPSAncmVwbGFjZVRkZScsXHJcblxyXG4gIC8vIERQSV9SZXF1aXJlU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgUmVxdWlyZVNlbGVjdGlvbiA9ICdyZXF1aXJlU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1JlcXVpcmVzREJWYXJpYWJsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZXF1aXJlc0RCVmFyaWFibGVzID0gJ3JlcXVpcmVzRGJWYXJpYWJsZXMnLFxyXG5cclxuICAvLyBEUElfUmVxdWlyZXNGaWVsZExpc3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZXF1aXJlc0ZpZWxkTGlzdCA9ICdyZXF1aXJlc0ZpZWxkTGlzdCcsXHJcblxyXG4gIC8vIERQSV9SZXN0YXJ0RXZlcnlGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlc3RhcnRFdmVyeUZpZWxkSXNJbnZhbGlkID0gJ3Jlc3RhcnRFdmVyeUZpZWxkSXNJbnZhbGlkJyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0SnVzdGlmeSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJpZ2h0SnVzdGlmeSA9ICdyaWdodEp1c3RpZnknLFxyXG5cclxuICAvLyBEUElfU2F2ZUVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTYXZlRW5hYmxlZCA9ICdzYXZlRW5hYmxlZCcsXHJcblxyXG4gIC8vIERQSV9TYXZlUGFzc3dvcmRBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2F2ZVBhc3N3b3JkQWxsb3dlZCA9ICdzYXZlUGFzc3dvcmRBbGxvd2VkJyxcclxuXHJcbiAgLy8gRFBJX1Njb3BlSXNvbGF0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2NvcGVJc29sYXRpb24gPSAnc2NvcGVJc29sYXRpb24nLFxyXG5cclxuICAvLyBEUElfU2VsZWN0aW9uUmVxdWlyZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTZWxlY3Rpb25SZXF1aXJlZCA9ICdzZWxlY3Rpb25SZXF1aXJlZCcsXHJcblxyXG4gIC8vIERQSV9TZW5kTm90aWZpY2F0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNlbmROb3RpZmljYXRpb25zID0gJ3NlbmROb3RpZmljYXRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1NldEFjdGl2ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNldEFjdGl2ZSA9ICdzZXRBY3RpdmUnLFxyXG5cclxuICAvLyBEUElfU2V0RGVmYXVsdFNvcnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTZXREZWZhdWx0U29ydCA9ICdzZXREZWZhdWx0JyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SXNEYXNoYm9hcmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaGVldElzRGFzaGJvYXJkID0gJ2lzRGFzaGJvYXJkJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SXNTdG9yeWJvYXJkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hlZXRJc1N0b3J5Ym9hcmQgPSAnaXNTdG9yeScsXHJcblxyXG4gIC8vIERQSV9TaG91bGRBbHdheXNEaXNwbGF5QWxpYXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRBbHdheXNEaXNwbGF5QWxpYXMgPSAnc2hvdWxkQWx3YXlzRGlzcGxheUFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZEF1dG9DYXB0dXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkQXV0b0NhcHR1cmUgPSAnc2hvdWxkQXV0b0NhcHR1cmUnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkQXV0b1JldmVydCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZEF1dG9SZXZlcnQgPSAnc2hvdWxkQXV0b1JldmVydCcsXHJcblxyXG4gIC8vIERQSV9TaG91bGRDaGFuZ2VVSU1vZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRDaGFuZ2VVSU1vZGUgPSAnc2hvdWxkQ2hhbmdlVWlNb2RlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZERpc3BsYXksIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGREaXNwbGF5ID0gJ3Nob3VsZERpc3BsYXknLFxyXG5cclxuICAvLyBEUElfU2hvdWxkRHJpbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGREcmlsbCA9ICdzaG91bGREcmlsbCcsXHJcblxyXG4gIC8vIERQSV9TaG91bGRGb3JjZUNvbm5lY3Rpb25BdHRlbXB0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkRm9yY2VDb25uZWN0aW9uQXR0ZW1wdCA9ICdzaG91bGRGb3JjZUNvbm5lY3Rpb25BdHRlbXB0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFJlZnJlc2hEUywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZFJlZnJlc2hEUyA9ICdzaG91bGRSZWZyZXNoRHMnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkU2NhbGVNYXJrc0luQXhpc1VuaXRzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkU2NhbGVNYXJrc0luQXhpc1VuaXRzID0gJ3Nob3VsZFNjYWxlTWFya3NJbkF4aXNVbml0cycsXHJcblxyXG4gIC8vIERQSV9TaG91bGRTZWVkQ3JlZGVudGlhbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRTZWVkQ3JlZGVudGlhbHMgPSAnc2hvdWxkU2VlZENyZWRlbnRpYWxzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFNob3dEYXRhU291cmNlQ29ubmVjdGlvbkVycm9yLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkU2hvd0RhdGFTb3VyY2VDb25uZWN0aW9uRXJyb3IgPSAnc2hvdWxkU2hvd0RhdGFTb3VyY2VDb25uZWN0aW9uRXJyb3InLFxyXG5cclxuICAvLyBEUElfU2hvdWxkU2hvd0Rpc3RhbmNlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkU2hvd0Rpc3RhbmNlID0gJ3Nob3VsZFNob3dEaXN0YW5jZScsXHJcblxyXG4gIC8vIERQSV9TaG91bGRTaG93SGlkZGVuRmllbGQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRTaG93SGlkZGVuRmllbGQgPSAnc2hvdWxkU2hvd0hpZGRlbkZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZFNob3dNYXBTY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZFNob3dNYXBTY2FsZSA9ICdzaG91bGRTaG93TWFwU2NhbGUnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkVVJMRXNjYXBlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkVVJMRXNjYXBlID0gJ3Nob3VsZFVybEVzY2FwZScsXHJcblxyXG4gIC8vIERQSV9TaG91bGRVcGRhdGVEb21haW5JbmZvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkVXBkYXRlRG9tYWluSW5mbyA9ICdzaG91bGRVcGRhdGVEb21JbmZvJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dBZGRUb0ZpbHRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBZGRUb0ZpbHRlciA9ICdzaG93QWRkVG9GaWx0ZXJCdXR0b24nLFxyXG5cclxuICAvLyBEUElfU2hvd0FsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QWxpYXNlcyA9ICdzaG93QWxpYXNlcycsXHJcblxyXG4gIC8vIERQSV9TaG93QWxsUGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QWxsUGFnZXMgPSAnc2hvd0FsbFBhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dBcHBseSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBcHBseSA9ICdzaG93QXBwbHlCdXR0b24nLFxyXG5cclxuICAvLyBEUElfU2hvd0FwcGx5QW5kQ2FuY2VsQnV0dG9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBcHBseUFuZENhbmNlbEJ1dHRvbnMgPSAnc2hvd0FwcGx5QW5kQ2FuY2VsQnV0dG9ucycsXHJcblxyXG4gIC8vIERQSV9TaG93QXV0aGVudGljYXRpb25PcHRpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0F1dGhlbnRpY2F0aW9uT3B0aW9ucyA9ICdzaG93QXV0aGVudGljYXRpb25PcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dBdXRoZW50aWNhdGlvblNldHRpbmcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QXV0aGVudGljYXRpb25TZXR0aW5nID0gJ3Nob3dBdXRoZW50aWNhdGlvblNldHRpbmcnLFxyXG5cclxuICAvLyBEUElfU2hvd0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93QXV0byA9ICdzaG93QXV0bycsXHJcblxyXG4gIC8vIERQSV9TaG93Qm9sZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dCb2xkID0gJ3Nob3dCb2xkT3B0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dCdXR0b25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0J1dHRvbnMgPSAnc2hvd0J1dHRvbnMnLFxyXG5cclxuICAvLyBEUElfU2hvd0NhcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Q2FwdGlvbiA9ICdzaG93Q2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaG93Q29sb3JMZWdlbmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Q29sb3JMZWdlbmQgPSAnc2hvd0NvbG9yTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEYXRhR3JpZElubGluZVJlbmFtZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEYXRhR3JpZElubGluZVJlbmFtZSA9ICdzaG93RGF0YUdyaWRJbmxpbmVSZW5hbWUnLFxyXG5cclxuICAvLyBEUElfU2hvd0RldGFpbE1lc3NhZ2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0RldGFpbE1lc3NhZ2VzID0gJ3Nob3dEZXRhaWxNZXNzYWdlcycsXHJcblxyXG4gIC8vIERQSV9TaG93RGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEYXRlID0gJ3Nob3dEYXRlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEcmFnTGFiZWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RHJhZ0xhYmVsID0gJ3Nob3dEcmFnTGFiZWwnLFxyXG5cclxuICAvLyBEUElfU2hvd0Ryb3BNZWFzdXJlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dEcm9wTWVhc3VyZXMgPSAnc2hvd0Ryb3BNZWFzdXJlcycsXHJcblxyXG4gIC8vIERQSV9TaG93RW1iZWRBbGwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RW1iZWRBbGwgPSAnc2hvd0VtYmVkQWxsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dFbnRpcmVJbWFnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dFbnRpcmVJbWFnZSA9ICdzaG93RW50aXJlSW1hZ2UnLFxyXG5cclxuICAvLyBEUElfU2hvd0V4Y2x1ZGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RXhjbHVkZSA9ICdzaG93RXhjbHVkZUJ1dHRvbicsXHJcblxyXG4gIC8vIERQSV9TaG93RmxvYXRpbmdab29tVG9vbGJhciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGbG9hdGluZ1pvb21Ub29sYmFyID0gJ3Nob3dGbG9hdGluZ1pvb21Ub29sYmFyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dGb3JtYXR0ZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Rm9ybWF0dGVyID0gJ3Nob3dGb3JtYXR0ZXInLFxyXG5cclxuICAvLyBEUElfU2hvd0Z1bGxTY2hlZHVsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93RnVsbFNjaGVkdWxlcyA9ICdzaG93RnVsbFNjaGVkdWxlcycsXHJcblxyXG4gIC8vIERQSV9TaG93R2VvZ3JhcGhpY1NlYXJjaCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dHZW9ncmFwaGljU2VhcmNoID0gJ3Nob3dHZW9ncmFwaGljU2VhcmNoJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dIaWRkZW5GaWVsZHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SGlkZGVuRmllbGRzID0gJ3Nob3dIaWRkZW5GaWVsZHMnLFxyXG5cclxuICAvLyBEUElfU2hvd0hpc3RvcnlDb250cm9scywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dIaXN0b3J5Q29udHJvbHMgPSAnc2hvd0hpc3RvcnlDb250cm9scycsXHJcblxyXG4gIC8vIERQSV9TaG93SW5jbHVkZUxvY2FsRmlsZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SW5jbHVkZUxvY2FsRmlsZXMgPSAnc2hvd0luY2x1ZGVMb2NhbEZpbGVzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dJbmNsdWRlT3RoZXJPcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SW5jbHVkZU90aGVyT3B0aW9uID0gJ3Nob3dJbmNsdWRlT3RoZXJPcHRpb24nLFxyXG5cclxuICAvLyBEUElfU2hvd0luY2x1ZGVTZWxlY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0luY2x1ZGVTZWxlY3Rpb25zID0gJ3Nob3dJbmNsdWRlU2VsZWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9TaG93SW5jclNjaGVkdWxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dJbmNyU2NoZWR1bGVzID0gJ3Nob3dJbmNyU2NoZWR1bGVzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dJbm5lck1vc3RMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dJbm5lck1vc3RMZXZlbCA9ICdzaG93SW5uZXJtb3N0TGV2ZWwnLFxyXG5cclxuICAvLyBEUElfU2hvd0l0YWxpY3MsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93SXRhbGljcyA9ICdzaG93SXRhbGljc09wdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaG93TGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0xlZ2VuZCA9ICdzaG93TGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dMb2NrZWRQZXJtaXNzaW9uc0ljb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TG9ja2VkUGVybWlzc2lvbnNJY29uID0gJ3Nob3dMb2NrZWRQZXJtaXNzaW9uc0ljb24nLFxyXG5cclxuICAvLyBEUElfU2hvd01hbmFnZURhdGFzb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd01hbmFnZURhdGFzb3VyY2VzID0gJ3Nob3dNYW5hZ2VEYXRhc291cmNlcycsXHJcblxyXG4gIC8vIERQSV9TaG93TWFwTGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd01hcExlZ2VuZCA9ICdzaG93TWFwTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNYXBTY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dNYXBTY2FsZSA9ICdzaG93TWFwU2NhbGUnLFxyXG5cclxuICAvLyBEUElfU2hvd01hcHBlZEZpbHRlckNvbHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TWFwcGVkRmlsdGVyQ29scyA9ICdzaG93TWFwcGVkRmlsdGVyQ29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9TaG93TmFtZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dOYW1lID0gJ3Nob3dOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dOb25lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd05vbmUgPSAnc2hvd05vbmUnLFxyXG5cclxuICAvLyBEUElfU2hvd1BhZ2VQbGF5YmFjaywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dQYWdlUGxheWJhY2sgPSAnc2hvd1BhZ2VQbGF5YmFjaycsXHJcblxyXG4gIC8vIERQSV9TaG93UGFnZVJlYWRvdXQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93UGFnZVJlYWRvdXQgPSAnc2hvd1BhZ2VSZWFkb3V0JyxcclxuXHJcbiAgLy8gRFBJX1Nob3dQYWdlU2xpZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1BhZ2VTbGlkZXIgPSAnc2hvd1BhZ2VTbGlkZXInLFxyXG5cclxuICAvLyBEUElfU2hvd1BhcmVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dQYXJlbnQgPSAnc2hvd1BhcmVudCcsXHJcblxyXG4gIC8vIERQSV9TaG93UGVyY2VudGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93UGVyY2VudGFnZXMgPSAnc2hvd1BlcmNlbnRhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dQcmVkaWN0aW9uSW50ZXJ2YWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1ByZWRpY3Rpb25JbnRlcnZhbHMgPSAnc2hvd1ByZWRpY3Rpb25JbnRlcnZhbHMnLFxyXG5cclxuICAvLyBEUElfU2hvd1B1Ymxpc2hlZERhdGFzb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1B1Ymxpc2hlZERhdGFzb3VyY2VzID0gJ3Nob3dQdWJsaXNoZWREYXRhc291cmNlcycsXHJcblxyXG4gIC8vIERQSV9TaG93UmVsRGF0ZVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dSZWxEYXRlUGlja2VyID0gJ3Nob3dSZWxEYXRlUGlja2VyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dSZXBsYWNlRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dSZXBsYWNlRGF0YXNvdXJjZSA9ICdzaG93UmVwbGFjZURhdGFzb3VyY2UnLFxyXG5cclxuICAvLyBEUElfU2hvd1NlcGFyYXRvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dTZXBhcmF0b3IgPSAnc2hvd1NlcGFyYXRvcicsXHJcblxyXG4gIC8vIERQSV9TaG93U2hhcGVMZWdlbmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93U2hhcGVMZWdlbmQgPSAnc2hvd1NoYXBlTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dTaXplTGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NpemVMZWdlbmQgPSAnc2hvd1NpemVMZWdlbmQnLFxyXG5cclxuICAvLyBEUElfU2hvd1NoZWxmLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1NoZWxmID0gJ3Nob3dTaGVsZicsXHJcblxyXG4gIC8vIERQSV9TaG93U3RydWN0dXJlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1N0cnVjdHVyZSA9ICdzaG93U3RydWN0dXJlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dTeW5jQ2xpZW50T3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dTeW5jQ2xpZW50T3B0aW9ucyA9ICdzaG93U3luY0NsaWVudE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2hvd1RhYnNBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1RhYnNBbGxvd2VkID0gJ3Nob3dUYWJzQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9TaG93VGltZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dUaW1lID0gJ3Nob3dUaW1lJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dUaXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dUaXRsZSA9ICdzaG93VGl0bGUnLFxyXG5cclxuICAvLyBEUElfU2hvd1RyYW5zU2xpZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1RyYW5zU2xpZGVyID0gJ3Nob3dUcmFuc3BhcmVuY3lTbGlkZXInLFxyXG5cclxuICAvLyBEUElfU2hvd1VuZGVybGluZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dVbmRlcmxpbmUgPSAnc2hvd1VuZGVybGluZU9wdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaG93VXNlclRodW1ibmFpbE9wdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93VXNlclRodW1ibmFpbE9wdGlvbnMgPSAnc2hvd1VzZXJUaHVtYm5haWxPcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dWaWV3LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1ZpZXcgPSAnc2hvd1ZpZXcnLFxyXG5cclxuICAvLyBEUElfU2hvd1ZpZXdzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd1ZpZXdzID0gJ3Nob3dWaWV3cycsXHJcblxyXG4gIC8vIERQSV9TaG93aW5nUGFnZUxvYWRFcnJvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dpbmdQYWdlTG9hZEVycm9yID0gJ3Nob3dpbmdQYWdlTG9hZEVycm9yJyxcclxuXHJcbiAgLy8gRFBJX1N1cHJlc3NBbGlhc2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcmVzc0FsaWFzZXMgPSAnc3VzcHJlc3NBbGlhc2VzJyxcclxuXHJcbiAgLy8gRFBJX1N1cHJlc3NUaG91c2FuZHNTZXBhcmF0b3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXByZXNzVGhvdXNhbmRzU2VwYXJhdG9yID0gJ3N1cHJlc3NUaG91c2FuZHNTZXBhcmF0b3InLFxyXG5cclxuICAvLyBEUElfU2luZ2xlU2VsZWN0T25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNpbmdsZVNlbGVjdE9ubHkgPSAnc2luZ2xlU2VsZWN0T25seScsXHJcblxyXG4gIC8vIERQSV9Ta2lwSWZBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTa2lwSWZBY3RpdmUgPSAnc2tpcElmQWN0aXZlJyxcclxuXHJcbiAgLy8gRFBJX1NraXBSZWZyZXNoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2tpcFJlZnJlc2ggPSAnc2tpcFJlZnJlc2gnLFxyXG5cclxuICAvLyBEUElfU2tpcFZhbGlkYXRpb24sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTa2lwVmFsaWRhdGlvbiA9ICdza2lwVmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIERQSV9Ta2lwcGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2tpcHBlZCA9ICdza2lwcGVkJyxcclxuXHJcbiAgLy8gRFBJX1NvcnRGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNvcnRGaWVsZElzSW52YWxpZCA9ICdzb3J0RmllbGRJc0ludmFsaWQnLFxyXG5cclxuICAvLyBEUElfU29ydE1vZGVJc0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBTb3J0TW9kZUlzQXV0byA9ICdzb3J0TW9kZUlzQXV0bycsXHJcblxyXG4gIC8vIERQSV9TcGxpdE9uRWRnZVNuYXAsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTcGxpdE9uRWRnZVNuYXAgPSAnc3BsaXRPbkVkZ2VTbmFwJyxcclxuXHJcbiAgLy8gRFBJX1N0YW5kYXJkRGV2aWF0aW9uQWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFN0YW5kYXJkRGV2aWF0aW9uQWxsb3dlZCA9ICdzdGFuZGFyZERldmlhdGlvbkFsbG93ZWQnLFxyXG5cclxuICAvLyBEUElfU3RhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdGF0ZSA9ICdzdGF0ZScsXHJcblxyXG4gIC8vIERQSV9TdG9yZWRQcm9jRGlzYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdG9yZWRQcm9jRGlzYWJsZWQgPSAnc3RvcmVkUHJvY0Rpc2FibGVkJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlZFByb2NzRHJvcGFibGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdG9yZWRQcm9jc0Ryb3BhYmxlID0gJ3N0b3JlZFByb2NzRHJvcGFibGUnLFxyXG5cclxuICAvLyBEUElfU3RvcnlJc0VtcHR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3RvcnlJc0VtcHR5ID0gJ3N0b3J5SXNFbXB0eScsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50SXNFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFN0b3J5UG9pbnRJc0VtcHR5ID0gJ3N0b3J5UG9pbnRJc0VtcHR5JyxcclxuXHJcbiAgLy8gRFBJX1N1Y2Nlc3NmdWxTYXZlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VjY2Vzc2Z1bFNhdmUgPSAnc3VjY2Vzc2Z1bFNhdmUnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydFhBeGlzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydFhBeGlzID0gJ3N1cHBvcnRYQXhpcycsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0WUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0WUF4aXMgPSAnc3VwcG9ydFlBeGlzJyxcclxuXHJcbiAgLy8gRFBJX1N1cHBvcnRzQ2VudGVyQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNDZW50ZXJBbGlnbm1lbnQgPSAnc3VwcG9ydHNDZW50ZXJBbGlnbm1lbnQnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydHNEQkZpbHRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0c0RCRmlsdGVycyA9ICdzdXBwb3J0c0RhdGFiYXNlRmlsdGVycycsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0c011bHRpcGxlVmFsdWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNNdWx0aXBsZVZhbHVlcyA9ICdzdXBwb3J0c011bHRpcGxlVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX1N1cHBvcnRzUmlnaHRBbGlnbm1lbnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0c1JpZ2h0QWxpZ25tZW50ID0gJ3N1cHBvcnRzUmlnaHRBbGlnbm1lbnQnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydHNUYWJsZUZpbHRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTdXBwb3J0c1RhYmxlRmlsdGVycyA9ICdzdXBwb3J0c1RhYmxlRmlsdGVycycsXHJcblxyXG4gIC8vIERQSV9TeW1tZXRyaWMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTeW1tZXRyaWMgPSAnc3ltbWV0cmljJyxcclxuXHJcbiAgLy8gRFBJX1N5bmNBdXRvbWF0aWNEcmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFN5bmNBdXRvbWF0aWNEcmlsbCA9ICdzeW5jQXV0b21hdGljRHJpbGwnLFxyXG5cclxuICAvLyBEUElfVGFic0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUYWJzQWxsb3dlZCA9ICd0YWJzQWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9UZXh0RHJvcGRvd25TdGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFRleHREcm9wZG93blN0YXRlID0gJ3RvZ2dsZVN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX1RpdGxlSW5saW5lLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVGl0bGVJbmxpbmUgPSAndGl0bGVJbmxpbmUnLFxyXG5cclxuICAvLyBEUElfVG9nZ2xlSGlnaGxpZ2h0U3RhdGVDaGFuZ2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVG9nZ2xlSGlnaGxpZ2h0U3RhdGVDaGFuZ2VkID0gJ3RvZ2dsZUhpZ2hsaWdodCcsXHJcblxyXG4gIC8vIERQSV9UcmFuc2Zvcm1lZDgwRm9ybWF0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVHJhbnNmb3JtZWQ4MEZvcm1hdCA9ICdvbGRGb3JtYXQnLFxyXG5cclxuICAvLyBEUElfVHJlbmRMaW5lU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUcmVuZExpbmVTZWxlY3RlZCA9ICd0cmVuZExpbmVTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9UcnVuY0RhdGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUcnVuY0RhdGUgPSAndHJ1bmNEYXRlJyxcclxuXHJcbiAgLy8gRFBJX1R1cGxlU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUdXBsZVNlbGVjdGVkID0gJ3R1cGxlU2VsZWN0ZWQnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uRGlkUGFnZUxvYWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25EaWRQYWdlTG9hZCA9ICd1aUF1dG9tYXRpb25EaWRQYWdlTG9hZCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Jc0NoZWNrZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25Jc0NoZWNrZWQgPSAndWlBdXRvbWF0aW9uSXNDaGVja2VkJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbklzRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVJQXV0b21hdGlvbklzRW5hYmxlZCA9ICd1aUF1dG9tYXRpb25Jc0VuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSXNFdmVudFByb2Nlc3NlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVJQXV0b21hdGlvbklzRXZlbnRQcm9jZXNzZWQgPSAndWlBdXRvbWF0aW9uSXNFdmVudFByb2Nlc3NlZCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Jc0ZvY3VzZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25Jc0ZvY3VzZWQgPSAndWlBdXRvbWF0aW9uSXNGb2N1c2VkJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbklzRm91bmQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVSUF1dG9tYXRpb25Jc0ZvdW5kID0gJ3VpQXV0b21hdGlvbklzRm91bmQnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSXNSZWFkb25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVJQXV0b21hdGlvbklzUmVhZG9ubHkgPSAndWlBdXRvbWF0aW9uSXNSZWFkb25seScsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Jc1NlbGVjdGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVUlBdXRvbWF0aW9uSXNTZWxlY3RlZCA9ICd1aUF1dG9tYXRpb25Jc1NlbGVjdGVkJyxcclxuXHJcbiAgLy8gRFBJX1VwZGF0ZUFsbFBhbmVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXBkYXRlQWxsUGFuZXMgPSAndXBkYXRlQWxsUGFuZXMnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlRFNDYXB0aW9uT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVwZGF0ZURTQ2FwdGlvbk9ubHkgPSAndXBkYXRlRHNDYXB0aW9uT25seScsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVNb2RlbEZyb21QYXJhbXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVcGRhdGVNb2RlbEZyb21QYXJhbXMgPSAndXBkYXRlTW9kZWxGcm9tUGFyYW1zJyxcclxuXHJcbiAgLy8gRFBJX1VwZGF0ZVNoZWx2ZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVcGRhdGVTaGVsdmVzID0gJ3VwZGF0ZVNoZWx2ZXMnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlc1VzZUNvbnRleHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVcGRhdGVzVXNlQ29udGV4dCA9ICd1cGRhdGVzVXNlQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9VcGdyYWRlRG9jdW1lbnRWZXJzaW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXBncmFkZURvY3VtZW50VmVyc2lvbiA9ICd1cGdyYWRlRG9jdW1lbnRWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX1VzZUFsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VBbGlhc2VzID0gJ3VzZUFsaWFzZXMnLFxyXG5cclxuICAvLyBEUElfVXNlQmxhbmtGb3JOdWxsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlQmxhbmtGb3JOdWxsID0gJ3VzZUJsYW5rRm9yTnVsbCcsXHJcblxyXG4gIC8vIERQSV9Vc2VDYWxjdWxhdGlvbkVkaXRvciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUNhbGN1bGF0aW9uRWRpdG9yID0gJ3VzZUNhbGN1bGF0aW9uRWRpdG9yJyxcclxuXHJcbiAgLy8gRFBJX1VzZUNlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlQ2VudGVyVmFsdWUgPSAndXNlQ2VudGVyVmFsdWUnLFxyXG5cclxuICAvLyBEUElfVXNlQ29sb3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VDb2xvciA9ICd1c2VDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Vc2VDdXN0b21NYXJrU2l6ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUN1c3RvbU1hcmtTaXplID0gJ3VzZUN1c3RvbU1hcmtTaXplJyxcclxuXHJcbiAgLy8gRFBJX1VzZURhcmtJY29ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZURhcmtJY29ucyA9ICd1c2VEYXJrSWNvbnMnLFxyXG5cclxuICAvLyBEUElfVXNlRGF0YVN0b3JlTWluZmllZE5hbWVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlRGF0YVN0b3JlTWluZmllZE5hbWVzID0gJ3VzZURhdGFzdG9yZU1pbk5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX1VzZUluaXRpYWxEb21haW5UeXBlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlSW5pdGlhbERvbWFpblR5cGUgPSAndXNlSW5pdGlhbERvbWFpblR5cGUnLFxyXG5cclxuICAvLyBEUElfVXNlRW5kVmFsdWUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VFbmRWYWx1ZSA9ICd1c2VFbmRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Vc2VGb3JPdmVybGF5SGl0VGVzdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUZvck92ZXJsYXlIaXRUZXN0ID0gJ3VzZUZvck92ZXJsYXlIaXRUZXN0JyxcclxuXHJcbiAgLy8gRFBJX1VzZUZ1bGxDb2xvclJhbmdlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlRnVsbENvbG9yUmFuZ2UgPSAndXNlRnVsbENvbG9yUmFuZ2UnLFxyXG5cclxuICAvLyBEUElfVXNlRnVsbERvbWFpbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUZ1bGxEb21haW4gPSAndXNlRnVsbERvbWFpbicsXHJcblxyXG4gIC8vIERQSV9Vc2VJbmxpbmVJbWFnZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VJbmxpbmVJbWFnZXMgPSAndXNlSW5saW5lSW1hZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1VzZU1lYXN1cmVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlTWVhc3VyZXMgPSAndXNlTWVhc3VyZXMnLFxyXG5cclxuICAvLyBEUElfVXNlTmV3UXVpY2tGaWx0ZXJzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlTmV3UXVpY2tGaWx0ZXJzID0gJ3VzZU5ld1F1aWNrRmlsdGVycycsXHJcblxyXG4gIC8vIERQSV9Vc2VOb3RpZmljYXRpb25SZXR1cm4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VOb3RpZmljYXRpb25SZXR1cm4gPSAndXNlTm90aWZpY2F0aW9uUmV0dXJuJyxcclxuXHJcbiAgLy8gRFBJX1VzZVBhcmFtZXRlcnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VQYXJhbWV0ZXJzID0gJ3VzZVBhcmFtZXRlcnMnLFxyXG5cclxuICAvLyBEUElfVXNlU2VsZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VTZWxlY3RvciA9ICd1c2VTZWxlY3RvcicsXHJcblxyXG4gIC8vIERQSV9Vc2VTaWduaWZpY2FudERpZ2l0cywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVNpZ25pZmljYW50RGlnaXRzID0gJ3VzZVNpZ25pZmljYW50RGlnaXRzJyxcclxuXHJcbiAgLy8gRFBJX1VzZVNwZWNpYWxTdHJpbmdzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlU3BlY2lhbFN0cmluZ3MgPSAndXNlU3BlY2lhbFN0cmluZ3MnLFxyXG5cclxuICAvLyBEUElfVXNlU3RhcnRWYWx1ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVN0YXJ0VmFsdWUgPSAndXNlU3RhcnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Vc2VUYWJzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlVGFicyA9ICd1c2VUYWJzJyxcclxuXHJcbiAgLy8gRFBJX1VzZVRhYmxldEFzRGVmYXVsdFByZXZpZXcsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VUYWJsZXRBc0RlZmF1bHRQcmV2aWV3ID0gJ3VzZVRhYmxldEFzRGVmYXVsdFByZXZpZXcnLFxyXG5cclxuICAvLyBEUElfVXNlVGFyZ2V0UHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VUYXJnZXRQdCA9ICd1c2VUYXJnZXRQb2ludCcsXHJcblxyXG4gIC8vIERQSV9Vc2VVU0xvY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVVTTG9jYWxlID0gJ3VzZVVzTG9jYWxlJyxcclxuXHJcbiAgLy8gRFBJX1VzZVlBeGlzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVXNlWUF4aXMgPSAndXNlWUF4aXMnLFxyXG5cclxuICAvLyBEUElfVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBWYWxpZCA9ICd2YWxpZCcsXHJcblxyXG4gIC8vIERQSV9WaXpEYXRhVjgyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgVml6RGF0YVY4MiA9ICd2aXpEYXRhODInLFxyXG5cclxuICAvLyBEUElfV01TQ29ubmVjdGlvblN1Y2Nlc3NmdWwsIGhhdmluZyB0eXBlIGJvb2xcclxuICBXTVNDb25uZWN0aW9uU3VjY2Vzc2Z1bCA9ICd3bXNDb25uZWN0aW9uU3VjY2Vzc2Z1bCcsXHJcblxyXG4gIC8vIERQSV9XTVNTaG91bGRVc2VUaWxlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFdNU1Nob3VsZFVzZVRpbGVzID0gJ3dtc1Nob3VsZFVzZVRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX1dhbnREb21haW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBXYW50RG9tYWluID0gJ3dhbnREb21haW4nLFxyXG5cclxuICAvLyBEUElfV29ya2Jvb2tNb2RpZmllZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFdvcmtib29rTW9kaWZpZWQgPSAnd29ya2Jvb2tNb2RpZmllZCcsXHJcblxyXG4gIC8vIERQSV9ab29tSW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBab29tSW4gPSAnem9vbUluJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNYXJrTGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd01hcmtMYWJlbHMgPSAnc2hvd01hcmtMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfSGFzRHVwbGljYXRlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0R1cGxpY2F0ZXMgPSAnaGFzRHVwbGljYXRlcycsXHJcblxyXG4gIC8vIERQSV9IYXNVc2VyRGVmaW5lZEluY3JlbWVudCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1VzZXJEZWZpbmVkSW5jcmVtZW50ID0gJ2hhc1VzZXJEZWZpbmVkSW5jcmVtZW50JyxcclxuXHJcbiAgLy8gRFBJX0hhc1VzZXJEZWZpbmVkTWF4LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzVXNlckRlZmluZWRNYXggPSAnaGFzVXNlckRlZmluZWRNYXgnLFxyXG5cclxuICAvLyBEUElfSGFzVXNlckRlZmluZWRNaW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBIYXNVc2VyRGVmaW5lZE1pbiA9ICdoYXNVc2VyRGVmaW5lZE1pbicsXHJcblxyXG4gIC8vIERQSV9Jc0R1cGxpY2F0ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzRHVwbGljYXRlID0gJ2lzRHVwbGljYXRlJyxcclxuXHJcbiAgLy8gRFBJX0lzRWRpdGluZ1ZhbHVlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNFZGl0aW5nVmFsdWUgPSAnaXNFZGl0aW5nVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkUmVzdHJpY3REYXRhVHlwZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZFJlc3RyaWN0RGF0YVR5cGUgPSAncmVzdHJpY3REYXRhVHlwZScsXHJcblxyXG4gIC8vIERQSV9FbmFibGVJbmNsdWRlWmVybywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZUluY2x1ZGVaZXJvID0gJ2VuYWJsZUluY2x1ZGVaZXJvJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZVN5bmNEdWFsQXhlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVN5bmNEdWFsQXhlcyA9ICdlbmFibGVTeW5jaHJvbml6ZUR1YWxBeGVzJyxcclxuXHJcbiAgLy8gRFBJX0VuYWJsZVNob3dUaW1lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEVuYWJsZVNob3dUaW1lcyA9ICdlbmFibGVTaG93VGltZXMnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlVGlja01hcmtzVGFiLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgRW5hYmxlVGlja01hcmtzVGFiID0gJ2VuYWJsZVRpY2tNYXJrc1RhYicsXHJcblxyXG4gIC8vIERQSV9Jc1RlbXBvcmFsLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUZW1wb3JhbCA9ICdpc1RlbXBvcmFsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3VsZEluY2x1ZGVaZXJvLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvdWxkSW5jbHVkZVplcm8gPSAnc2hvdWxkSW5jbHVkZVplcm8nLFxyXG5cclxuICAvLyBEUElfU2hvdWxkUmV2ZXJzZUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRSZXZlcnNlQXhpcyA9ICdzaG91bGRSZXZlcnNlQXhpcycsXHJcblxyXG4gIC8vIERQSV9TaG91bGRTaG93VGltZXMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG91bGRTaG93VGltZXMgPSAnc2hvdWxkU2hvd1RpbWVzJyxcclxuXHJcbiAgLy8gRFBJX1VzZUF1dG9tYXRpY0F4aXNTdWJ0aXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUF1dG9tYXRpY0F4aXNTdWJ0aXRsZSA9ICd1c2VBdXRvbWF0aWNTdWJ0aXRsZScsXHJcblxyXG4gIC8vIERQSV9Vc2VBdXRvbWF0aWNBeGlzVGl0bGUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VBdXRvbWF0aWNBeGlzVGl0bGUgPSAndXNlQXV0b21hdGljVGl0bGUnLFxyXG5cclxuICAvLyBEUElfQWxsU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBBbGxTZWxlY3RlZCA9ICdhbGxTZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9BdXRvQ29tbWl0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXV0b0NvbW1pdCA9ICdhdXRvQ29tbWl0JyxcclxuXHJcbiAgLy8gRFBJX0NhY2hlT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhY2hlT25seSA9ICdjYWNoZU9ubHknLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZURhdGEsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlRGF0YSA9ICdpbmNsdWRlRGF0YScsXHJcblxyXG4gIC8vIERQSV9Jc1BhdHRlcm5FeGNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1BhdHRlcm5FeGNsdXNpdmUgPSAnaXNQYXR0ZXJuRXhjbHVzaXZlJyxcclxuXHJcbiAgLy8gRFBJX0lzU2VhcmNoYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU2VhcmNoYWJsZSA9ICdpc1NlYXJjaGFibGUnLFxyXG5cclxuICAvLyBEUElfSXNTZWxlY3Rpb25FeGNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1NlbGVjdGlvbkV4Y2x1c2l2ZSA9ICdpc1NlbGVjdGlvbkV4Y2x1c2l2ZScsXHJcblxyXG4gIC8vIERQSV9SZXNldE5ld0ZpbHRlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlc2V0TmV3RmlsdGVyID0gJ3Jlc2V0TmV3RmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX1VzZUFsbFdoZW5NYW51YWxFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUFsbFdoZW5NYW51YWxFbXB0eSA9ICd1c2VBbGxXaGVuTWFudWFsRW1wdHknLFxyXG5cclxuICAvLyBEUElfVXNlQWxsV2hlblBhdHRlcm5FbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZUFsbFdoZW5QYXR0ZXJuRW1wdHkgPSAndXNlQWxsV2hlblBhdHRlcm5FbXB0eScsXHJcblxyXG4gIC8vIERQSV9Hcm91cEJ5RHJpbGxEb3duLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgR3JvdXBCeURyaWxsRG93biA9ICdncm91cEJ5RHJpbGxEb3duJyxcclxuXHJcbiAgLy8gRFBJX0dyb3VwQnlUYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEdyb3VwQnlUYWJsZSA9ICdncm91cEJ5VGFibGUnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUdyb3VwcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVHcm91cHMgPSAnaW5jbHVkZUdyb3VwcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlUGVuZGluZ1N0YXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZVBlbmRpbmdTdGF0ZSA9ICdpbmNsdWRlUGVuZGluZ1N0YXRlJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVGaWVsZE1lbnVzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUZpZWxkTWVudXMgPSAnaW5jbHVkZUZpZWxkTWVudXMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUZvcm1hdHRlZFZhbHVlcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVGb3JtYXR0ZWRWYWx1ZXMgPSAnaW5jbHVkZUZvcm1hdHRlZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlQ29sdW1uSW5zdGFuY2VzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUNvbHVtbkluc3RhbmNlcyA9ICdpbmNsdWRlQ29sdW1uSW5zdGFuY2VzJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVBZEhvY0NhbGNzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSW5jbHVkZUFkSG9jQ2FsY3MgPSAnaW5jbHVkZUFkaG9jQ2FsY3MnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUhpZGRlbkludmFsaWRGaWVsZHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlSGlkZGVuSW52YWxpZEZpZWxkcyA9ICdpbmNsdWRlSGlkZGVuSW52YWxpZEZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlTm9uRXh0cmFjdGVkQ29sdW1ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVOb25FeHRyYWN0ZWRDb2x1bW5zID0gJ2luY2x1ZGVOb25FeHRyYWN0ZWRDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVDYWxjdWxhdGVkRmllbGRGb3JtdWxhcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVDYWxjdWxhdGVkRmllbGRGb3JtdWxhcyA9ICdpbmNsdWRlQ2FsY3VsYXRlZEZpZWxkRm9ybXVsYXMnLFxyXG5cclxuICAvLyBEUElfU2V0RGF0YVByZXZpZXdDdXN0b21GaWVsZE9yZGVyLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2V0RGF0YVByZXZpZXdDdXN0b21GaWVsZE9yZGVyID0gJ3NldERhdGFQcmV2aWV3Q3VzdG9tRmllbGRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TcGxpdEFsbG93U3BsaXRGcm9tUmlnaHQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDdXN0b21TcGxpdEFsbG93U3BsaXRGcm9tUmlnaHQgPSAnY3VzdG9tU3BsaXRBbGxvd1NwbGl0RnJvbVJpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX0lzQ2hhbmdlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQ2hhbmdlZCA9ICdpc0NoYW5nZWQnLFxyXG5cclxuICAvLyBEUElfU2hvd0ZvbnRDb2xvclBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGb250Q29sb3JQaWNrZXIgPSAnc2hvd0ZvbnRDb2xvclBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9TaG93Rm9udEZhbWlseVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGb250RmFtaWx5UGlja2VyID0gJ3Nob3dGb250RmFtaWx5UGlja2VyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dGb250U2l6ZVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dGb250U2l6ZVBpY2tlciA9ICdzaG93Rm9udFNpemVQaWNrZXInLFxyXG5cclxuICAvLyBEUElfU2hvd0ZvbnRTdHlsZUJ1dHRvbnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93Rm9udFN0eWxlQnV0dG9ucyA9ICdzaG93Rm9udFN0eWxlQnV0dG9ucycsXHJcblxyXG4gIC8vIERQSV9TaG93TGluZUZvckFsbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dMaW5lRm9yQWxsID0gJ3Nob3dMaW5lRm9yQWxsJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dMaW5lRm9yQ29sdW1uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0xpbmVGb3JDb2x1bW4gPSAnc2hvd0xpbmVGb3JDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfU2hvd0xpbmVGb3JSb3csIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TGluZUZvclJvdyA9ICdzaG93TGluZUZvclJvdycsXHJcblxyXG4gIC8vIERQSV9TaG93TGluZVBhdHRlcm5QaWNrZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTaG93TGluZVBhdHRlcm5QaWNrZXIgPSAnc2hvd0xpbmVQYXR0ZXJuUGlja2VyJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dMaW5lVHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU2hvd0xpbmVUcmFuc3BhcmVuY3kgPSAnc2hvd0xpbmVUcmFuc3BhcmVuY3knLFxyXG5cclxuICAvLyBEUElfU2hvd0xpbmVXaWR0aFBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dMaW5lV2lkdGhQaWNrZXIgPSAnc2hvd0xpbmVXaWR0aFBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9DYW5CZUF1dG8sIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5CZUF1dG8gPSAnY2FuQmVBdXRvJyxcclxuXHJcbiAgLy8gRFBJX0NhbkJlTm9uZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENhbkJlTm9uZSA9ICdjYW5CZU5vbmUnLFxyXG5cclxuICAvLyBEUElfQ2FuTWF0Y2hNYXJrQ29sb3IsIGhhdmluZyB0eXBlIGJvb2xcclxuICBDYW5NYXRjaE1hcmtDb2xvciA9ICdjYW5NYXRjaE1hcmtDb2xvcicsXHJcblxyXG4gIC8vIERQSV9IYXNPcGFjaXR5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzT3BhY2l0eSA9ICdoYXNPcGFjaXR5JyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVBbGxIaWRkZW4sIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlQWxsSGlkZGVuID0gJ2luY2x1ZGVBbGxIaWRkZW4nLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUN1cnJlbnQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJbmNsdWRlQ3VycmVudCA9ICdpbmNsdWRlQ3VycmVudCcsXHJcblxyXG4gIC8vIERQSV9Jc0luY2x1ZGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNJbmNsdWRlZCA9ICdpc0luY2x1ZGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzUmVsYXRpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1JlbGF0aXZlID0gJ2lzUmVsYXRpdmUnLFxyXG5cclxuICAvLyBEUElfSXNTZWNvbmRhcnlBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNTZWNvbmRhcnlBbGxvd2VkID0gJ2lzU2Vjb25kYXJ5QWxsb3dlZCcsXHJcblxyXG4gIC8vIERQSV9OdWxsSWZJbmNvbXBsZXRlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTnVsbElmSW5jb21wbGV0ZSA9ICdudWxsSWZJbmNvbXBsZXRlJyxcclxuXHJcbiAgLy8gRFBJX0lzQ2FsY0Fzc2lzdGFuY2VFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNDYWxjQXNzaXN0YW5jZUVuYWJsZWQgPSAnaXNDYWxjQXNzaXN0YW5jZUVuYWJsZWQnLFxyXG5cclxuICAvLyBEUElfVXNlU2Vjb25kYXJ5Q2FsYywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVNlY29uZGFyeUNhbGMgPSAndXNlU2Vjb25kYXJ5Q2FsYycsXHJcblxyXG4gIC8vIERQSV9DYW5Mb2FkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2FuTG9hZCA9ICdjYW5Mb2FkJyxcclxuXHJcbiAgLy8gRFBJX0Rlc2NyaXB0aW9uT25seSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIERlc2NyaXB0aW9uT25seSA9ICdkZXNjcmlwdGlvbk9ubHknLFxyXG5cclxuICAvLyBEUElfQXJlQWxpYXNlc1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFyZUFsaWFzZXNTdXBwb3J0ZWQgPSAnYXJlQWxpYXNlc1N1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9BcmVSZWZDb2x1bW5zU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQXJlUmVmQ29sdW1uc1N1cHBvcnRlZCA9ICdhcmVSZWZDb2x1bW5zU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX0lzQWdncmVnYXRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzQWdncmVnYXRlZCA9ICdpc0FnZ3JlZ2F0ZWQnLFxyXG5cclxuICAvLyBEUElfSXNFeHBvcnRTdXBwb3J0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0V4cG9ydFN1cHBvcnRlZCA9ICdpc0V4cG9ydFN1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc01lYXN1cmVOYW1lcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTWVhc3VyZU5hbWVzID0gJ2lzTWVhc3VyZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0lzU3VtbWFyeVN1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzU3VtbWFyeVN1cHBvcnRlZCA9ICdpc1N1bW1hcnlTdXBwb3J0ZWQnLFxyXG5cclxuICAvLyBEUElfSXNUb3BOU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNUb3BOU3VwcG9ydGVkID0gJ2lzVG9wTlN1cHBvcnRlZCcsXHJcblxyXG4gIC8vIERQSV9Jc1VuZGVybHlpbmdTdXBwb3J0ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc1VuZGVybHlpbmdTdXBwb3J0ZWQgPSAnaXNVbmRlcmx5aW5nU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX09ubHlFeHBvcnRTdW1tYXJ5LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgT25seUV4cG9ydFN1bW1hcnkgPSAnb25seUV4cG9ydFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfU2hvd0FsbEZpZWxkcywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dBbGxGaWVsZHMgPSAnc2hvd0FsbEZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9Vc2VUYWJsZVB0cnMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBVc2VUYWJsZVB0cnMgPSAndXNlVGFibGVQdHJzJyxcclxuXHJcbiAgLy8gRFBJX09ubHlGZXRjaFN1bW1hcnksIGhhdmluZyB0eXBlIGJvb2xcclxuICBPbmx5RmV0Y2hTdW1tYXJ5ID0gJ29ubHlGZXRjaFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfSXNEZXZpY2VMYXlvdXRDdXN0b21pemVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZXZpY2VMYXlvdXRDdXN0b21pemVkID0gJ2lzRGV2aWNlTGF5b3V0Q3VzdG9taXplZCcsXHJcblxyXG4gIC8vIERQSV9Jc0RldmljZVNpemVDdXN0b21pemVkLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEZXZpY2VTaXplQ3VzdG9taXplZCA9ICdpc0RldmljZVNpemVDdXN0b21pemVkJyxcclxuXHJcbiAgLy8gRFBJX0lzRGV2aWNlU3VwcG9ydGVkQnlNb2JpbGVBcHAsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0RldmljZVN1cHBvcnRlZEJ5TW9iaWxlQXBwID0gJ2lzRGV2aWNlU3VwcG9ydGVkQnlNb2JpbGVBcHAnLFxyXG5cclxuICAvLyBEUElfSXNQb3J0cmFpdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzUG9ydHJhaXQgPSAnaXNQb3J0cmFpdCcsXHJcblxyXG4gIC8vIERQSV9Jc1BvcnRyYWl0QnlEZWZhdWx0LCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNQb3J0cmFpdEJ5RGVmYXVsdCA9ICdpc1BvcnRyYWl0QnlEZWZhdWx0JyxcclxuXHJcbiAgLy8gRFBJX0lzVXNlckN1c3RvbUZvcm1hdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzVXNlckN1c3RvbUZvcm1hdCA9ICdpc1VzZXJDdXN0b21Gb3JtYXQnLFxyXG5cclxuICAvLyBEUElfU2hvdWxkRGlzcGxheVJlYnVpbGRFeHRyYWN0TWVzc2FnZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3VsZERpc3BsYXlSZWJ1aWxkRXh0cmFjdE1lc3NhZ2UgPSAnc2hvdWxkRGlzcGxheVJlYnVpbGRFeHRyYWN0TWVzc2FnZScsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0c0N1c3RvbVN0YXJ0T2ZXZWVrLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgU3VwcG9ydHNDdXN0b21TdGFydE9mV2VlayA9ICdzdXBwb3J0c0N1c3RvbVN0YXJ0T2ZXZWVrJyxcclxuXHJcbiAgLy8gRFBJX05lZWRzQ29ubmVjdFByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE5lZWRzQ29ubmVjdFByb21wdCA9ICduZWVkc0Nvbm5lY3RQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfTmVlZHNDbG9zZURhdGFTb3VyY2VFcnJvclByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIE5lZWRzQ2xvc2VEYXRhU291cmNlRXJyb3JQcm9tcHQgPSAnbmVlZHNDbG9zZURzRXJyb3JQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfQ2xlYXJDdXJyZW50U2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgQ2xlYXJDdXJyZW50U2VsZWN0aW9uID0gJ2NsZWFyQ3VycmVudFNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNDb250YWlucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc0NvbnRhaW5zID0gJ2hhc0NvbnRhaW5zJyxcclxuXHJcbiAgLy8gRFBJX0hhc0VuZHNXaXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzRW5kc1dpdGggPSAnaGFzRW5kc1dpdGgnLFxyXG5cclxuICAvLyBEUElfSGFzUmVwbGFjZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEhhc1JlcGxhY2VTZWxlY3Rpb24gPSAnaGFzUmVwbGFjZVNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9IYXNTdGFydHNXaXRoLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSGFzU3RhcnRzV2l0aCA9ICdoYXNTdGFydHNXaXRoJyxcclxuXHJcbiAgLy8gRFBJX0lzTGVhZlNlbGVjdGlvbk9ubHksIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0xlYWZTZWxlY3Rpb25Pbmx5ID0gJ2lzTGVhZlNlbGVjdGlvbk9ubHknLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFJlcGxhY2VTZWxlY3Rpb24gPSAncmVwbGFjZVNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Jc0NvbG9yUGFsZXR0ZUN1c3RvbWl6ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0NvbG9yUGFsZXR0ZUN1c3RvbWl6ZWQgPSAnaXNDb2xvclBhbGV0dGVDdXN0b21pemVkJyxcclxuXHJcbiAgLy8gRFBJX1JldmVyc2VQYWxldHRlT3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcclxuICBSZXZlcnNlUGFsZXR0ZU9yZGVyID0gJ3JldmVyc2VQYWxldHRlT3JkZXInLFxyXG5cclxuICAvLyBEUElfVHJpZWRUb0Nvbm5lY3QsIGhhdmluZyB0eXBlIGJvb2xcclxuICBUcmllZFRvQ29ubmVjdCA9ICd0cmllZFRvQ29ubmVjdCcsXHJcblxyXG4gIC8vIERQSV9TY2FsZU1hcmtzSW5BeGlzVW5pdHMsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTY2FsZU1hcmtzSW5BeGlzVW5pdHMgPSAnc2NhbGVNYXJrc0luQXhpc1VuaXRzJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNYXJrU2l6aW5nT3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dNYXJrU2l6aW5nT3B0aW9ucyA9ICdzaG93TWFya1NpemluZ09wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfVXNlU2l6ZUZpZWxkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFVzZVNpemVGaWVsZENhcHRpb24gPSAndXNlU2l6ZUZpZWxkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Jc0xpY2Vuc2VkQW5kUmVnaXN0ZXJlZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIElzTGljZW5zZWRBbmRSZWdpc3RlcmVkID0gJ2lzTGljZW5zZWRBbmRSZWdpc3RlcmVkJyxcclxuXHJcbiAgLy8gRFBJX1NldE5ld0RhdGFzb3VyY2VBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcclxuICBTZXROZXdEYXRhc291cmNlQWN0aXZlID0gJ3NldE5ld0RhdGFzb3VyY2VBY3RpdmUnLFxyXG5cclxuICAvLyBEUElfQWxsb3dDdXN0b21MYWJlbCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEFsbG93Q3VzdG9tTGFiZWwgPSAnYWxsb3dDdXN0b21MYWJlbCcsXHJcblxyXG4gIC8vIERQSV9Jc01vc3RSZWNlbnRNb2RlVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc01vc3RSZWNlbnRNb2RlVmFsaWQgPSAnaXNNb3N0UmVjZW50TW9kZVZhbGlkJyxcclxuXHJcbiAgLy8gRFBJX011c3RTaG93TGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgTXVzdFNob3dMYWJlbHMgPSAnbXVzdFNob3dMYWJlbHMnLFxyXG5cclxuICAvLyBEUElfU2hvd1J1bm5pbmdPcmRlckxhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIFNob3dSdW5uaW5nT3JkZXJMYWJlbHMgPSAnc2hvd1J1bm5pbmdPcmRlckxhYmVscycsXHJcblxyXG4gIC8vIERQSV9Jc0Ryb3BwZWRGaWxlLCBoYXZpbmcgdHlwZSBib29sXHJcbiAgSXNEcm9wcGVkRmlsZSA9ICdpc0Ryb3BwZWRGaWxlJyxcclxuXHJcbiAgLy8gRFBJX0lzSW5pdGlhbGl6ZWQsIGhhdmluZyB0eXBlIGJvb2xcclxuICBJc0luaXRpYWxpemVkID0gJ2lzSW5pdGlhbGl6ZWQnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZURhc2hib2FyZCwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIEluY2x1ZGVEYXNoYm9hcmQgPSAnaW5jbHVkZURhc2hib2FyZCcsXHJcblxyXG4gIC8vIERQSV9DaGlsZHJlbkNhblJlc2l6ZSwgaGF2aW5nIHR5cGUgYm9vbFxyXG4gIENoaWxkcmVuQ2FuUmVzaXplID0gJ2NoaWxkcmVuQ2FuUmVzaXplJyxcclxuXHJcbiAgLy8gRFBJX0Jvb2xNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgYm9vbClcclxuICBCb29sTWFwID0gJ2Jvb2xNYXAnLFxyXG5cclxuICAvLyBEUElfQ2hlY2tlZE1lbnVJdGVtcywgaGF2aW5nIHR5cGUgYm9vbFtdXHJcbiAgQ2hlY2tlZE1lbnVJdGVtcyA9ICdjaGVja2VkTWVudUl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVkU2hlZXRWYWx1ZXMsIGhhdmluZyB0eXBlIGJvb2xbXVxyXG4gIEluY2x1ZGVkU2hlZXRWYWx1ZXMgPSAnaW5jbHVkZWRTaGVldFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Tb3J0T3JkZXJWZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xbXVxyXG4gIFNvcnRPcmRlclZlY3RvciA9ICdzb3J0T3JkZXJWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWN0aW9uTmFtZSA9ICdhY3Rpb25OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNvdXJjZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFjdGlvblNvdXJjZVRleHQgPSAnYWN0aW9uU291cmNlVGV4dCcsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25UeXBlQXNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFjdGlvblR5cGVBc1N0cmluZyA9ICdhY3Rpb25UeXBlQXNTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfQWN0aXZlVGFiLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3RpdmVUYWIgPSAnYWN0aXZlX3RhYicsXHJcblxyXG4gIC8vIERQSV9BZGRJbkZlYXR1cmVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBZGRJbkZlYXR1cmVOYW1lID0gJ2FkZEluRmVhdHVyZU5hbWUnLFxyXG5cclxuICAvLyBEUElfQWRkSW5JZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5JZCA9ICdhZGRJbklkJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluc3RhbmNlSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFkZEluc3RhbmNlSWQgPSAnYWRkSW5JbnN0YW5jZUlkJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5OYW1lID0gJ2FkZEluTmFtZScsXHJcblxyXG4gIC8vIERQSV9BZGRJbkxvY2FsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5Mb2NhbGUgPSAnYWRkSW5Mb2NhbGUnLFxyXG5cclxuICAvLyBEUElfQWRkSW5MYW5ndWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkSW5MYW5ndWFnZSA9ICdhZGRJbkxhbmd1YWdlJyxcclxuXHJcbiAgLy8gRFBJX0FQSVZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFQSVZlcnNpb24gPSAnYXBpVmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9BbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWxpYXMgPSAnYWxpYXMnLFxyXG5cclxuICAvLyBEUElfQW5jaG9yRGF0ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQW5jaG9yRGF0ZSA9ICdhbmNob3JEYXRlJyxcclxuXHJcbiAgLy8gRFBJX0Fubm90YXRpb25SZXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFubm90YXRpb25SZXMgPSAnYW5ub3RhdGlvblJlcycsXHJcblxyXG4gIC8vIERQSV9SZWFkSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlYWRJZCA9ICdyZWFkSWQnLFxyXG5cclxuICAvLyBEUElfQW5ub3RhdGlvblRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFubm90YXRpb25UZXh0ID0gJ2Fubm90YXRpb25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0FyY2hpdmVEaXJlY3RvcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFyY2hpdmVEaXJlY3RvcnkgPSAnYXJjaGl2ZURpcmVjdG9yeScsXHJcblxyXG4gIC8vIERQSV9BcmNoaXZlRnVsbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFyY2hpdmVGdWxsUGF0aCA9ICdhcmNoaXZlRnVsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbEludmFsaWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF0VGhlTGV2ZWxJbnZhbGlkRmllbGRDYXB0aW9uID0gJ2F0VGhlTGV2ZWxJbnZhbGlkRmllbGRDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9Db21wbGV0ZVN1YnN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXV0b0NvbXBsZXRlU3Vic3RyaW5nID0gJ2FjU3Vic3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9zYXZlRmlsZUlkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRvc2F2ZUZpbGVJZCA9ICdhdXRvc2F2ZUZpbGVJZCcsXHJcblxyXG4gIC8vIERQSV9BdXRvc2F2ZVRpbWVySW50ZXJ2YWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF1dG9zYXZlVGltZXJJbnRlcnZhbCA9ICdhdXRvc2F2ZVRpbWVySW50ZXJ2YWwnLFxyXG5cclxuICAvLyBEUElfQmFzZUNvbHVtbkNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJhc2VDb2x1bW5DYXB0aW9uID0gJ2Jhc2VDb2x1bW5DYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0J1dHRvbk9iamVjdENsaWNrQWN0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCdXR0b25PYmplY3RDbGlja0FjdGlvbiA9ICdidXR0b25PYmplY3RDbGlja0FjdGlvbicsXHJcblxyXG4gIC8vIERQSV9CdXR0b25PYmplY3RJbWFnZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ1dHRvbk9iamVjdEltYWdlUGF0aCA9ICdidXR0b25PYmplY3RJbWFnZVBhdGgnLFxyXG5cclxuICAvLyBEUElfQ2xlYXJCdXR0b25UZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbGVhckJ1dHRvblRleHQgPSAnY2xlYXJCdXR0b25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZUlkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2xvclBhbGV0dGVJZCA9ICdjb2xvclBhbGV0dGVJZCcsXHJcblxyXG4gIC8vIERQSV9Db2xvclBhbGV0dGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2xvclBhbGV0dGVOYW1lID0gJ2NvbG9yUGFsZXR0ZU5hbWUnLFxyXG5cclxuICAvLyBEUElfQ29sb3JTd2F0Y2gsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbG9yU3dhdGNoID0gJ2NvbG9yU3dhdGNoJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb21tYW5kTmFtZSA9ICdjb21tYW5kTmFtZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlTGV2ZWxWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29uZmlkZW5jZUxldmVsVmFsdWUgPSAnY29uZmlkZW5jZUxldmVsVmFsdWUnLFxyXG5cclxuICAvLyBEUElfQ291bnREaXN0aW5jdFN0ciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ291bnREaXN0aW5jdFN0ciA9ICdjb3VudERpc3RpbmN0U3RyJyxcclxuXHJcbiAgLy8gRFBJX0Nyb3NzVGFiRmlsZXBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENyb3NzVGFiRmlsZXBhdGggPSAnY3Jvc3NUYWJGaWxlcGF0aCcsXHJcblxyXG4gIC8vIERQSV9DU1NNYXJnaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENTU01hcmdpbiA9ICdjc3NNYXJnaW4nLFxyXG5cclxuICAvLyBEUElfQ1NTV2hpdGVzcGFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ1NTV2hpdGVzcGFjZSA9ICdjc3NXaGl0ZXNwYWNlJyxcclxuXHJcbiAgLy8gRFBJX0RCUGFzc3dvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERCUGFzc3dvcmQgPSAnZGJQYXNzd29yZCcsXHJcblxyXG4gIC8vIERQSV9EQlVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEQlVzZXJuYW1lID0gJ2RiVXNlcm5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0Q29uZGl0aW9uVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YUFsZXJ0Q29uZGl0aW9uVGV4dCA9ICdkYXRhQWxlcnRDb25kaXRpb25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFBbGVydE1lYXN1cmVUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhQWxlcnRNZWFzdXJlVGV4dCA9ICdkYXRhQWxlcnRNZWFzdXJlVGV4dCcsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRTcGVjU2VyaWFsaXplZFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydFNwZWNTZXJpYWxpemVkVGV4dCA9ICdkYXRhQWxlcnRTcGVjU2VyaWFsaXplZFRleHQnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0RGVmYXVsdFN1YmplY3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydERlZmF1bHRTdWJqZWN0ID0gJ2RhdGFBbGVydERlZmF1bHRTdWJqZWN0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFBbGVydFRocmVzaG9sZFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydFRocmVzaG9sZFRleHQgPSAnZGF0YUFsZXJ0VGhyZXNob2xkVGV4dCcsXHJcblxyXG4gIC8vIERQSV9EYXRhR3JpZFNvcnRDb2x1bW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhR3JpZFNvcnRDb2x1bW5OYW1lID0gJ2RhdGFncmlkU29ydENvbHVtbk5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlcnZlckNvbm5lY3Rpb25FcnJvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YVNlcnZlckNvbm5lY3Rpb25FcnJvciA9ICdkYXRhU2VydmVyQ29ubmVjdGlvbkVycm9yJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFiYXNlRmlsdGVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhYmFzZUZpbHRlciA9ICdkYXRhYmFzZUZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9EYXRhYmFzZUZpbHRlclByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YWJhc2VGaWx0ZXJQcm9tcHQgPSAnZGF0YWJhc2VGaWx0ZXJQcm9tcHQnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZVJhbmtpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VSYW5raW5nID0gJ2RhdGFzb3VyY2VSYW5raW5nJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzb3VyY2VVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VVcmwgPSAnZGF0YXNvdXJjZVVybCcsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlVXNlcm5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VVc2VybmFtZSA9ICdkYXRhc291cmNlVXNlcm5hbWUnLFxyXG5cclxuICAvLyBEUElfRGF0ZUZvcm1hdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0ZUZvcm1hdCA9ICdkYXRlRm9ybWF0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGVQYXJ0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRlUGFydCA9ICdkYXRlUGFydCcsXHJcblxyXG4gIC8vIERQSV9EYXRlUGFydEFiYnJldiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0ZVBhcnRBYmJyZXYgPSAnZGF0ZVBhcnRBYmJyZXYnLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdEhpZXJhcmNoeU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlZmF1bHRIaWVyYXJjaHlOYW1lID0gJ2RlZmF1bHRIaWVyYXJjaHlOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRNZW51SXRlbUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGVmYXVsdE1lbnVJdGVtS2V5ID0gJ2RlZmF1bHRNZW51SXRlbUtleScsXHJcblxyXG4gIC8vIERQSV9EZWxpbWl0ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlbGltaXRlciA9ICdkZWxpbWl0ZXInLFxyXG5cclxuICAvLyBEUElfRGV2aWNlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGV2aWNlTmFtZSA9ICdkZXZpY2VOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERldmljZVR5cGUgPSAnZGV2aWNlVHlwZScsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5UGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGlzcGxheVBhdGggPSAnZGlzcGxheVBhdGgnLFxyXG5cclxuICAvLyBEUElfRGlzdHJpYnV0aW9uVmFsdWVTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERpc3RyaWJ1dGlvblZhbHVlU3RyaW5nID0gJ2Rpc3RyaWJ1dGlvblZhbHVlU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX0RyaWxsUGF0aE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERyaWxsUGF0aE5hbWUgPSAnZHJpbGxQYXRoTmFtZScsXHJcblxyXG4gIC8vIERQSV9FbWJlZGRlZFRpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFbWJlZGRlZFRpdGxlID0gJ2VtYmVkZGVkVGl0bGUnLFxyXG5cclxuICAvLyBEUElfRW50ZXJWYWx1ZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVudGVyVmFsdWVUZXh0ID0gJ2VudGVyVmFsdWVUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0VzY2FwZVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXNjYXBlU3RyaW5nID0gJ2VzY2FwZVN0cmluZycsXHJcblxyXG4gIC8vIERQSV9FeHRTdmNDb25maWdIb3N0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRTdmNDb25maWdIb3N0ID0gJ2V4dFN2Y0NvbmZpZ0hvc3QnLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnUGFzc3dvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dFN2Y0NvbmZpZ1Bhc3N3b3JkID0gJ2V4dFN2Y0NvbmZpZ1Bhc3N3b3JkJyxcclxuXHJcbiAgLy8gRFBJX0V4dFN2Y0NvbmZpZ1BvcnQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dFN2Y0NvbmZpZ1BvcnQgPSAnZXh0U3ZjQ29uZmlnUG9ydCcsXHJcblxyXG4gIC8vIERQSV9FeHRTdmNDb25maWdDb25uZWN0VGltZW91dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXh0U3ZjQ29uZmlnQ29ubmVjdFRpbWVvdXQgPSAnZXh0U3ZjQ29ubmVjdFRpbWVvdXQnLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnUHJldkhvc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dFN2Y0NvbmZpZ1ByZXZIb3N0ID0gJ2V4dFN2Y0NvbmZpZ1ByZXZIb3N0JyxcclxuXHJcbiAgLy8gRFBJX0V4dFN2Y0NvbmZpZ1VzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRTdmNDb25maWdVc2VybmFtZSA9ICdleHRTdmNDb25maWdVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0VXBkYXRlVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXh0cmFjdFVwZGF0ZVRpbWUgPSAnZXh0cmFjdFVwZGF0ZVRpbWUnLFxyXG5cclxuICAvLyBEUElfRmllbGRGb2xkZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZEZvbGRlck5hbWUgPSAnZmllbGRGb2xkZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGROYW1lU3RyaW5nID0gJ2ZpZWxkTmFtZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJTZWFyY2hEb21haW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbHRlclNlYXJjaERvbWFpbiA9ICdmaWx0ZXJTZWFyY2hEb21haW4nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU3BlYywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsdGVyU3BlYyA9ICdmaWx0ZXJTcGVjJyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpcnN0VmFsdWUgPSAnZmlyc3RWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Gb2xkZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb2xkZXJOYW1lID0gJ2ZvbGRlck5hbWUnLFxyXG5cclxuICAvLyBEUElfRm9udE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvbnROYW1lID0gJ2ZvbnROYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdFN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9ybWF0U3RyaW5nID0gJ2Zvcm1hdFN0cmluZycsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWREaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWREaXNwbGF5U3RyaW5nID0gJ2Zvcm1hdHRlZERpc3BsYXlTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfRm9ybWF0dGVkSW5jcmVtZW50VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZEluY3JlbWVudFZhbHVlID0gJ2Zvcm1hdHRlZEluY3JlbWVudCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWRNYXhWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9ybWF0dGVkTWF4VmFsdWUgPSAnZm9ybWF0dGVkTWF4JyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZE1pblZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWRNaW5WYWx1ZSA9ICdmb3JtYXR0ZWRNaW4nLFxyXG5cclxuICAvLyBEUElfRm9ybWF0dGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZFZhbHVlID0gJ2Zvcm1hdHRlZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZENlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWRDZW50ZXJWYWx1ZSA9ICdmb3JtYXR0ZWRDZW50ZXInLFxyXG5cclxuICAvLyBEUElfRm9ybWF0dGVkRW5kVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZEVuZFZhbHVlID0gJ2Zvcm1hdHRlZEVuZCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWRTdGFydFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JtYXR0ZWRTdGFydFZhbHVlID0gJ2Zvcm1hdHRlZFN0YXJ0JyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZEZvcm1hdHRlZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYWlyZWRGb3JtYXR0ZWRWYWx1ZSA9ICdwYWlyZWRGb3JtYXR0ZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9GcmFtZUF0dHJpYnV0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZyYW1lQXR0cmlidXRlcyA9ICdmcmFtZUF0dHInLFxyXG5cclxuICAvLyBEUElfR1VJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR1VJRCA9ICdndWlkJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVEaXNwbGF5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZURpc3BsYXlOYW1lID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVEaXNwbGF5TmFtZScsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlUGFyZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVBhcmVudE5hbWUgPSAnZ2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVBhcmVudE5hbWUnLFxyXG5cclxuICAvLyBEUElfR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVUeXBlID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hMb2NhbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdlb2dyYXBoaWNTZWFyY2hMb2NhbGUgPSAnZ2VvZ3JhcGhpY1NlYXJjaExvY2FsZScsXHJcblxyXG4gIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoUXVlcnlTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdlb2dyYXBoaWNTZWFyY2hRdWVyeVN0cmluZyA9ICdnZW9ncmFwaGljU2VhcmNoU2VhcmNoU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hVSUxvY2FsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaFVJTG9jYWxlID0gJ2dlb2dyYXBoaWNTZWFyY2hVaWxvY2FsZScsXHJcblxyXG4gIC8vIERQSV9JY29uUmVzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJY29uUmVzID0gJ2ljb25SZXMnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VIYXNoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbWFnZUhhc2ggPSAnaW1hZ2VIYXNoJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW1hZ2VOYW1lID0gJ2ltYWdlTmFtZScsXHJcblxyXG4gIC8vIERQSV9JbWFnZVJlcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW1hZ2VSZXMgPSAnaW1hZ2VSZXMnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZXNTaWJsaW5nc1Byb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW5jbHVkZXNTaWJsaW5nc1Byb21wdCA9ICdpbmNsdWRlc1NpYmxpbmdzUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVzU3ViZm9sZGVyc1Byb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW5jbHVkZXNTdWJmb2xkZXJzUHJvbXB0ID0gJ2luY2x1ZGVzU3ViZm9sZGVyc1Byb21wdCcsXHJcblxyXG4gIC8vIERQSV9JbmNyZW1lbnRhbFNjaGVkdWxlSURzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbmNyZW1lbnRhbFNjaGVkdWxlSURzID0gJ2luY3JlbWVudGFsU2NoZWR1bGVJZHMnLFxyXG5cclxuICAvLyBEUElfSW52YXJpYW50S2V5d29yZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW52YXJpYW50S2V5d29yZCA9ICdpbnZhcmlhbnRLZXl3b3JkJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5PcGVyYXRvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSm9pbk9wZXJhdG9yID0gJ2pvaW5PcGVyYXRvcicsXHJcblxyXG4gIC8vIERQSV9Kb2luRXhwcmVzc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSm9pbkV4cHJlc3Npb24gPSAnam9pbkV4cHJlc3Npb24nLFxyXG5cclxuICAvLyBEUElfS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBLZXkgPSAna2V5SWQnLFxyXG5cclxuICAvLyBEUElfTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExhYmVsID0gJ2xhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZExhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYWlyZWRMYWJlbCA9ICdwYWlyZWRMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9MYXlvdXRJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTGF5b3V0SUQgPSAnbGF5b3V0SWQnLFxyXG5cclxuICAvLyBEUElfTGVmdEpvaW5FeHByZXNzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMZWZ0Sm9pbkV4cHJlc3Npb24gPSAnbGVmdEpvaW5FeHByZXNzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0xpbWl0Q291bnRFeHByZXNzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaW1pdENvdW50RXhwcmVzc2lvbiA9ICdsaW1pdENvdW50RXhwcmVzc2lvbicsXHJcblxyXG4gIC8vIERQSV9MaW5rVGFyZ2V0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaW5rVGFyZ2V0ID0gJ2xpbmtUYXJnZXQnLFxyXG5cclxuICAvLyBEUElfTG9jYWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMb2NhbGUgPSAnbG9jYWxlJyxcclxuXHJcbiAgLy8gRFBJX0xvY2FsaXplZEtleXdvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExvY2FsaXplZEtleXdvcmQgPSAnbG9jYWxpemVkS2V5d29yZCcsXHJcblxyXG4gIC8vIERQSV9NYXBCb3hHTFN0eWxlSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEJveEdMU3R5bGVJZCA9ICdtYXBib3hHbFN0eWxlSWQnLFxyXG5cclxuICAvLyBEUElfTWFwQm94U3R5bGVVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEJveFN0eWxlVXJsID0gJ21hcGJveFN0eWxlVXJsJyxcclxuXHJcbiAgLy8gRFBJX01hcEJveFVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hVc2VybmFtZSA9ICdtYXBib3hVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZVJlYWRvdXRTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFNjYWxlUmVhZG91dFN0cmluZyA9ICdtYXBTY2FsZVJlYWRvdXRTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVUb29sdGlwU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBTY2FsZVRvb2x0aXBTdHJpbmcgPSAnbWFwU2NhbGVUb29sdGlwU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX01hcFNvdXJjZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFNvdXJjZU5hbWUgPSAnbWFwU291cmNlTmFtZScsXHJcblxyXG4gIC8vIERQSV9NYXhMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWF4TGFiZWwgPSAnbWF4TGFiZWwnLFxyXG5cclxuICAvLyBEUElfTWluTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1pbkxhYmVsID0gJ21pbkxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX01vZGVsRGVzY3JpcHRpb25QYXJhZ3JhcGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1vZGVsRGVzY3JpcHRpb25QYXJhZ3JhcGggPSAnbW9kZWxEZXNjcmlwdGlvblBhcmFncmFwaCcsXHJcblxyXG4gIC8vIERQSV9OYW1lVGVtcGxhdGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5hbWVUZW1wbGF0ZSA9ICduYW1lVGVtcGxhdGUnLFxyXG5cclxuICAvLyBEUElfTmV3RHJpbGxQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdEcmlsbFBhdGggPSAnbmV3RHJpbGxQYXRoJyxcclxuXHJcbiAgLy8gRFBJX05ld0ZpZWxkRm9sZGVyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmV3RmllbGRGb2xkZXJOYW1lID0gJ25ld0ZpZWxkRm9sZGVyTmFtZScsXHJcblxyXG4gIC8vIERQSV9OZXdUYWJsZUFsaWFzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdUYWJsZUFsaWFzID0gJ25ld1RhYmxlQWxpYXMnLFxyXG5cclxuICAvLyBEUElfTm9uRm9ybWF0dGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5vbkZvcm1hdHRlZFZhbHVlID0gJ3VuZm9ybWF0dGVkVmFsdWUnLFxyXG5cclxuICAvLyBEUElfT0F1dGhVc2VyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT0F1dGhVc2VyTmFtZSA9ICdvYXV0aFVzZXJuYW1lJyxcclxuXHJcbiAgLy8gRFBJX09iamVjdE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE9iamVjdE5hbWUgPSAnb2JqZWN0TmFtZScsXHJcblxyXG4gIC8vIERQSV9PYmplY3RPdmVycmlkZU1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE9iamVjdE92ZXJyaWRlTWVzc2FnZSA9ICdvYmplY3RPdmVycmlkZU1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfT2xkVGFibGVBbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT2xkVGFibGVBbGlhcyA9ICdvbGRUYWJsZUFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX09wZXJhdGluZ1N5c3RlbSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3BlcmF0aW5nU3lzdGVtID0gJ29wZXJhdGluZ1N5c3RlbScsXHJcblxyXG4gIC8vIERQSV9PcmlnaW5hbEZpbGVQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcmlnaW5hbEZpbGVQYXRoID0gJ29yaWdpbmFsRmlsZVBhdGgnLFxyXG5cclxuICAvLyBEUElfT3JpZ2luYWxGaWxlVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3JpZ2luYWxGaWxlVmVyc2lvbiA9ICdvcmlnaW5hbEZpbGVWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVEZXNjcmlwdG9yS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYW5lRGVzY3JpcHRvcktleSA9ICdwYW5lRGVzY3JLZXknLFxyXG5cclxuICAvLyBEUElfUGFyZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFyZW50TmFtZSA9ICdwYXJlbnROYW1lJyxcclxuXHJcbiAgLy8gRFBJX1BhcmVudFRhYmxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYXJlbnRUYWJsZSA9ICdwYXJlbnRUYWJsZScsXHJcblxyXG4gIC8vIERQSV9QYXR0ZXJuRmlsdGVyU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYXR0ZXJuRmlsdGVyU3RyaW5nID0gJ3BhdHRlcm5GaWx0ZXJTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfUGVuZGluZ0NhbGNOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQZW5kaW5nQ2FsY05hbWUgPSAncGVuZGluZ0NhbGNOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVzU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQZXJjZW50aWxlc1N0cmluZyA9ICdwZXJjZW50aWxlc1N0cmluZycsXHJcblxyXG4gIC8vIERQSV9Qcm9qZWN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUHJvamVjdE5hbWUgPSAncHJvamVjdE5hbWUnLFxyXG5cclxuICAvLyBEUElfUHJvcGVydHlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQcm9wZXJ0eU5hbWUgPSAncHJvcGVydHlOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyVGl0bGVDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBRdWlja0ZpbHRlclRpdGxlQ2FwdGlvbiA9ICdxdWlja0ZpbHRlclRpdGxlQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9SYW5nZURpZmZTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJhbmdlRGlmZlN0ciA9ICdkaWZmVmFsdWUnLFxyXG5cclxuICAvLyBEUElfUmFuZ2VNYXhTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJhbmdlTWF4U3RyID0gJ21heFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1JhbmdlTWluU3RyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSYW5nZU1pblN0ciA9ICdtaW5WYWx1ZScsXHJcblxyXG4gIC8vIERQSV9SZWNvdmVyZWRGaWxlUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVjb3ZlcmVkRmlsZVBhdGggPSAncmVjb3ZlcmVkRmlsZVBhdGgnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVNwZWNpZmljYXRpb25JZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVmZXJlbmNlTGluZVNwZWNpZmljYXRpb25JZCA9ICdyZWZlcmVuY2VMaW5lSWQnLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZUZpZWxkUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSZXBsYWNlRmllbGRQcm9tcHQgPSAncmVwbGFjZUZpZWxkUHJvbXB0JyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0Sm9pbkV4cHJlc3Npb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJpZ2h0Sm9pbkV4cHJlc3Npb24gPSAncmlnaHRKb2luRXhwcmVzc2lvbicsXHJcblxyXG4gIC8vIERQSV9Sb290UGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUm9vdFBhdGggPSAncm9vdFBhdGgnLFxyXG5cclxuICAvLyBEUElfUnVudGltZUZpbmFsRGF0YXN0b3JlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSdW50aW1lRmluYWxEYXRhc3RvcmUgPSAncnVudGltZUZpbmFsRGF0YXN0b3JlJyxcclxuXHJcbiAgLy8gRFBJX1J1bnRpbWVJbml0aWFsRGF0YXN0b3JlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSdW50aW1lSW5pdGlhbERhdGFzdG9yZSA9ICdydW50aW1lSW5pdGlhbERhdGFzdG9yZScsXHJcblxyXG4gIC8vIERQSV9SdW50aW1lVlRMLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSdW50aW1lVlRMID0gJ3J1bnRpbWVWdGwnLFxyXG5cclxuICAvLyBEUElfU2FtcGxlRGF0YVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2FtcGxlRGF0YVN0cmluZyA9ICdzYW1wbGVEYXRhJyxcclxuXHJcbiAgLy8gRFBJX1NjaGVkdWxlSURzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY2hlZHVsZUlEcyA9ICdzY2hlZHVsZUlkcycsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFGaWVsZEljb25SZXNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2NoZW1hRmllbGRJY29uUmVzb3VyY2UgPSAnZmllbGRJY29uUmVzJyxcclxuXHJcbiAgLy8gRFBJX1NjcmVlbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNjcmVlbk5hbWUgPSAnc2NyZWVuTmFtZScsXHJcblxyXG4gIC8vIERQSV9TY3JpcHRDb21tYW5kLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTY3JpcHRDb21tYW5kID0gJ2NvbW1hbmQnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlY29uZFZhbHVlID0gJ3NlY29uZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlbGVjdGVkVmFsdWUgPSAnc2VsZWN0ZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9TaGFwZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNoYXBlTmFtZSA9ICdzaGFwZU5hbWUnLFxyXG5cclxuICAvLyBEUElfU2hlZXRJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2hlZXRJZCA9ICdzaGVldElkJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEYXRhVGFibGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNob3dEYXRhVGFibGUgPSAnc2hvd0RhdGFUYWJsZScsXHJcblxyXG4gIC8vIERQSV9TaW1wbGVDb21tYW5kLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaW1wbGVDb21tYW5kID0gJ3NpbXBsZUNvbW1hbmQnLFxyXG5cclxuICAvLyBEUElfU29ydE1vZGVDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTb3J0TW9kZUNhcHRpb24gPSAnc29ydE1vZGVDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNvdXJjZU5hbWUgPSAnc291cmNlTmFtZScsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTb3VyY2VUZXh0ID0gJ3NvdXJjZVRleHQnLFxyXG5cclxuICAvLyBEUElfU3BlY2lhbFZhbHVlVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3BlY2lhbFZhbHVlVGV4dCA9ICdzcGVjaWFsVmFsdWVUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1N0YXRpY0ltYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdGF0aWNJbWFnZSA9ICdzdGF0aWNJbWFnZScsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50QmFzZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3RvcnlQb2ludEJhc2UgPSAnc3RvcnlQb2ludEJhc2UnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb2ludENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0b3J5UG9pbnRDYXB0aW9uID0gJ3N0b3J5UG9pbnRDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5Ym9hcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0b3J5Ym9hcmQgPSAnc3Rvcnlib2FyZCcsXHJcblxyXG4gIC8vIERQSV9TdHlsZWRMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3R5bGVkTGFiZWwgPSAnc3R5bGVkTGFiZWwnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXB0aW9uID0gJ3N1bW1hcnlDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlGaWVsZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUZpZWxkID0gJ3N1bW1hcnlGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1VmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFibGVhdVZlcnNpb24gPSAndGFibGVhdVZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfVGFibGVGaWx0ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlRmlsdGVyID0gJ3RhYmxlRmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlRmlsdGVyUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYWJsZUZpbHRlclByb21wdCA9ICd0YWJsZUZpbHRlclByb21wdCcsXHJcblxyXG4gIC8vIERQSV9UYWdzTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhZ3NMYWJlbCA9ICd0YWdzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUYXJnZXQgPSAndGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX1RodW1ibmFpbEdyb3VwLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaHVtYm5haWxHcm91cCA9ICd0aHVtYm5haWxHcm91cCcsXHJcblxyXG4gIC8vIERQSV9UaHVtYm5haWxVc2VyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaHVtYm5haWxVc2VyID0gJ3RodW1ibmFpbFVzZXInLFxyXG5cclxuICAvLyBEUElfVGltZUZvcm1hdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGltZUZvcm1hdCA9ICd0aW1lRm9ybWF0JyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUVycm9yU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUcmVuZExpbmVFcnJvclN0cmluZyA9ICd0cmVuZExpbmVFcnJvclN0cmluZycsXHJcblxyXG4gIC8vIERQSV9UcmVuZExpbmVNb2RlbEZvcm11bGEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRyZW5kTGluZU1vZGVsRm9ybXVsYSA9ICd0cmVuZExpbmVNb2RlbEZvcm11bGEnLFxyXG5cclxuICAvLyBEUElfVVJMU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVUkxTdHJpbmcgPSAndXJsU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX1VSTFRlc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVSTFRlc3QgPSAndXJsVGVzdCcsXHJcblxyXG4gIC8vIERQSV9WYWxpZGF0aW9uTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVmFsaWRhdGlvbk1lc3NhZ2UgPSAndmFsaWRhdGlvbk1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfVmFsdWVTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhbHVlU3RyID0gJ3ZhbHVlU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX1ZlcmlmaWVkTm9uRm9ybWF0dGVkVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZlcmlmaWVkTm9uRm9ybWF0dGVkVmFsdWUgPSAndmVyaWZpZWRVbmZvcm1hdHRlZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rRnVsbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdvcmtib29rRnVsbFBhdGggPSAnd29ya2Jvb2tGdWxsUGF0aCcsXHJcblxyXG4gIC8vIERQSV9XaW5kb3dUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV2luZG93VGl0bGUgPSAnd2luZG93VGl0bGUnLFxyXG5cclxuICAvLyBEUElfWm9uZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFpvbmVOYW1lID0gJ3pvbmVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVQYXJhbSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgWm9uZVBhcmFtID0gJ3pvbmVQYXJhbScsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRFcnJvclRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFBbGVydEVycm9yVGV4dCA9ICdkYXRhQWxlcnRFcnJvclRleHQnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFRlbXBEaXJlY3RvcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RUZW1wRGlyZWN0b3J5ID0gJ2V4dHJhY3RUZW1wRGlyJyxcclxuXHJcbiAgLy8gRFBJX0RTU3ViQ2xhc3MsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERTU3ViQ2xhc3MgPSAnZHNTdWJDbGFzcycsXHJcblxyXG4gIC8vIERQSV9EYmdDb21tYW5kTGluZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGJnQ29tbWFuZExpbmUgPSAnZGVidWdDb21tYW5kTGluZScsXHJcblxyXG4gIC8vIERQSV9EYmdMb2dQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYmdMb2dQYXRoID0gJ2RlYnVnTG9nUGF0aCcsXHJcblxyXG4gIC8vIERQSV9EYmdPU1ZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERiZ09TVmVyc2lvbiA9ICdkZWJ1Z09zVmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9EYmdVc2VyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGJnVXNlck5hbWUgPSAnZGVidWdVc2VybmFtZScsXHJcblxyXG4gIC8vIERQSV9FcnJvck1zZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JNc2cgPSAnZXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yU3RhY2tUcmFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JTdGFja1RyYWNlID0gJ2Vycm9yU3RhY2tUcmFjZScsXHJcblxyXG4gIC8vIERQSV9FcnJvclN0ciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JTdHIgPSAnZXJyb3JTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfRXZlbnRNZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFdmVudE1lc3NhZ2UgPSAnZXZlbnRNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0V2ZW50VGltZXN0YW1wLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFdmVudFRpbWVzdGFtcCA9ICdldmVudFRpbWVzdGFtcCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0RGVsdGFQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRyYWN0RGVsdGFQYXRoID0gJ2V4dHJhY3REZWx0YVBhdGgnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RQYXRoID0gJ2V4dHJhY3RQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RTdWdnZXN0ZWRQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRyYWN0U3VnZ2VzdGVkUGF0aCA9ICdzdWdnZXN0ZWRFeHRyYWN0UGF0aCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0VGFza1N1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RUYXNrU3VtbWFyeSA9ICdleHRyYWN0VGFza1N1bW1hcnknLFxyXG5cclxuICAvLyBEUElfRmFjdG9yc1N0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmFjdG9yc1N0cmluZyA9ICdmYWN0b3JzU3RyJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZEZhbWlseU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZEZhbWlseU5hbWUgPSAnZm9ybWF0dGVkRmFtaWx5TmFtZScsXHJcblxyXG4gIC8vIERQSV9GdW5jdGlvblNpZ25hdHVyZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRnVuY3Rpb25TaWduYXR1cmUgPSAnZnVuY1NpZycsXHJcblxyXG4gIC8vIERQSV9GdW5jdGlvblRvb2x0aXAsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZ1bmN0aW9uVG9vbHRpcCA9ICdmdW5jVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9IZWxwQ29udGVudHMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhlbHBDb250ZW50cyA9ICdoZWxwQ29udGVudHMnLFxyXG5cclxuICAvLyBEUElfTWFwQXR0cmlidXRpb25UZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBBdHRyaWJ1dGlvblRleHQgPSAnbWFwQXR0cmlidXRpb25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX01hcEF0dHJpYnV0aW9uVGV4dFNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEF0dHJpYnV0aW9uVGV4dFNpemUgPSAnbWFwQXR0cmlidXRpb25UZXh0U2l6ZScsXHJcblxyXG4gIC8vIERQSV9NYXBBdHRyaWJ1dGlvblVybCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwQXR0cmlidXRpb25VcmwgPSAnbWFwQXR0cmlidXRpb25VcmwnLFxyXG5cclxuICAvLyBEUElfTWFwQm94RXJyb3JNZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hFcnJvck1lc3NhZ2UgPSAnbWFwYm94RXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX01hcEJveE9sZFN0eWxlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwQm94T2xkU3R5bGVOYW1lID0gJ21hcGJveE9sZFN0eWxlTmFtZScsXHJcblxyXG4gIC8vIERQSV9NYXBCb3hTZWxlY3RlZFN0eWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hTZWxlY3RlZFN0eWxlID0gJ21hcGJveFNlbGVjdGVkU3R5bGUnLFxyXG5cclxuICAvLyBEUElfTWFwQm94U3R5bGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBCb3hTdHlsZU5hbWUgPSAnbWFwYm94U3R5bGVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX01hcExheWVyUmVxdWVzdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwTGF5ZXJSZXF1ZXN0ID0gJ21hcExheWVyUmVxdWVzdCcsXHJcblxyXG4gIC8vIERQSV9NYXBTZXJ2ZXJLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFNlcnZlcktleSA9ICdtYXBTZXJ2ZXJLZXknLFxyXG5cclxuICAvLyBEUElfTWFwVGlsZVNlcnZlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwVGlsZVNlcnZlciA9ICdtYXBUaWxlU2VydmVyJyxcclxuXHJcbiAgLy8gRFBJX01hcFRpbGVVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcFRpbGVVcmwgPSAnbWFwVGlsZVVybCcsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50YWdlc1N0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVyY2VudGFnZXNTdHJpbmcgPSAncGVyY2VudGFnZXNTdHInLFxyXG5cclxuICAvLyBEUElfUHVibGlzaEVycm9yTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUHVibGlzaEVycm9yTWVzc2FnZSA9ICdwdWJsaXNoRXJyb3JNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX1RkZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRkZVBhdGggPSAndGRlUGF0aCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Db21wb25lbnROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVSUF1dG9tYXRpb25Db21wb25lbnROYW1lID0gJ3VpQXV0b21hdGlvbkNvbXBvbmVudE5hbWUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uRW5kVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVUlBdXRvbWF0aW9uRW5kVGltZSA9ICd1aUF1dG9tYXRpb25FbmRUaW1lJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVJQXV0b21hdGlvbk5hbWUgPSAndWlBdXRvbWF0aW9uTmFtZScsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25TdGFydFRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVJQXV0b21hdGlvblN0YXJ0VGltZSA9ICd1aUF1dG9tYXRpb25TdGFydFRpbWUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVJQXV0b21hdGlvblZhbHVlID0gJ3VpQXV0b21hdGlvblZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1dNU0Nvbm5lY3Rpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXTVNDb25uZWN0aW9uTmFtZSA9ICd3bXNDb25uZWN0aW9uTmFtZScsXHJcblxyXG4gIC8vIERQSV9XTVNPbGRDb25uZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV01TT2xkQ29ubmVjdGlvbk5hbWUgPSAnd21zT2xkQ29ubmVjdGlvbk5hbWUnLFxyXG5cclxuICAvLyBEUElfV01TU2VydmVyVXJsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXTVNTZXJ2ZXJVcmwgPSAnd21zU2VydmVyVXJsJyxcclxuXHJcbiAgLy8gRFBJX0Fib3V0QnVpbGRWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBYm91dEJ1aWxkVmVyc2lvbiA9ICdhYm91dEJ1aWxkVmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25GaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFjdGlvbkZpZWxkcyA9ICdhY3Rpb25GaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQWRkVmFyaWFibGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkVmFyaWFibGVMYWJlbCA9ICdhZGRWYXJpYWJsZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZFZhcmlhYmxlVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQWRkVmFyaWFibGVUb29sdGlwID0gJ2FkZFZhcmlhYmxlVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9BbGxvd2VkRGF0YVNvdXJjZXNCeU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFsbG93ZWREYXRhU291cmNlc0J5TmFtZSA9ICdhbGxvd2VkRGF0YVNvdXJjZXNCeU5hbWUnLFxyXG5cclxuICAvLyBEUElfQXBwQWJvdXRWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBcHBBYm91dFZlcnNpb24gPSAnYXBwQWJvdXRWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0FwcEJ1aWxkQnJhbmNoTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXBwQnVpbGRCcmFuY2hOYW1lID0gJ2FwcEJ1aWxkQnJhbmNoTmFtZScsXHJcblxyXG4gIC8vIERQSV9BcHBCdWlsZFZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFwcEJ1aWxkVmVyc2lvbiA9ICdhcHBCdWlsZFZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfQXBwRXh0ZXJuYWxWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBcHBFeHRlcm5hbFZlcnNpb24gPSAnYXBwRXh0ZXJuYWxWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0FwcE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEFwcE5hbWUgPSAnYXBwTmFtZScsXHJcblxyXG4gIC8vIERQSV9BcHBQcm9kdWN0VmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXBwUHJvZHVjdFZlcnNpb24gPSAnYXBwUHJvZHVjdFZlcnNpb24nLFxyXG5cclxuICAvLyBEUElfT3JpZ2luYWxWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcmlnaW5hbFZlcnNpb24gPSAnb3JpZ2luYWxWZXJzaW9uJyxcclxuXHJcbiAgLy8gRFBJX0F0VGhlTGV2ZWxTcGVjaWFsQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQXRUaGVMZXZlbFNwZWNpYWxDYXB0aW9uID0gJ2F0VGhlTGV2ZWxTcGVjaWFsQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9BdXRvQ29tcGxldGVDYWxjLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRvQ29tcGxldGVDYWxjID0gJ2FjQ2FsYycsXHJcblxyXG4gIC8vIERQSV9DU1ZQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDU1ZQYXRoID0gJ2NzdlBhdGgnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZE5hbWVzcGFjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29tbWFuZE5hbWVzcGFjZSA9ICdjb21tYW5kTmFtZXNwYWNlJyxcclxuXHJcbiAgLy8gRFBJX0NvbmRpdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29uZGl0aW9uID0gJ2NvbmRpdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25kaXRpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25kaXRpb25TdW1tYXJ5ID0gJ2NvbmRpdGlvblN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfQ29uZmlybWF0aW9uTXNnLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25maXJtYXRpb25Nc2cgPSAnY29uZmlybWF0aW9uTXNnJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZFR5cGVUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXNoYm9hcmRUeXBlVGV4dCA9ICdkYXNoYm9hcmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzZXJ2ZXJQdWJsaWNBZGRyZXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc2VydmVyUHVibGljQWRkcmVzcyA9ICdkYXRhc2VydmVyUHVibGljQWRkcmVzcycsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlRmlsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VGaWxlTmFtZSA9ICdkYXRhc291cmNlRmlsZU5hbWUnLFxyXG5cclxuICAvLyBEUElfRGVjaW1hbE1hcmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlY2ltYWxNYXJrID0gJ2RlY2ltYWxNYXJrJyxcclxuXHJcbiAgLy8gRFBJX0RlbGV0ZVZhcmlhYmxlVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGVsZXRlVmFyaWFibGVUb29sdGlwID0gJ2RlbGV0ZVZhcmlhYmxlVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9EaWFsb2dUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGlhbG9nVGl0bGUgPSAnZGlhbG9nVGl0bGUnLFxyXG5cclxuICAvLyBEUElfRGlzcGxheVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEaXNwbGF5VmFsdWUgPSAnZGlzcGxheVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1Rvb2x0aXBWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVG9vbHRpcFZhbHVlID0gJ3Rvb2x0aXBWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Ec3RQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEc3RQYXRoID0gJ2RzdFBhdGgnLFxyXG5cclxuICAvLyBEUElfRWRpdFdpZGdldEhlYWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRWRpdFdpZGdldEhlYWRlciA9ICdlZGl0V2lkZ2V0SGVhZGVyJyxcclxuXHJcbiAgLy8gRFBJX0VkaXRXaWRnZXRJbnN0cnVjdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRWRpdFdpZGdldEluc3RydWN0aW9uID0gJ2VkaXRXaWRnZXRJbnN0cnVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9FbmRTZWxlY3Rpb25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFbmRTZWxlY3Rpb25DYXB0aW9uID0gJ2VuZFNlbGVjdGlvbkNhcHRpb24nLFxyXG5cclxuICAvLyBEUElfRXJyb3JDb25maXJtYXRpb25RdWVzdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXJyb3JDb25maXJtYXRpb25RdWVzdGlvbiA9ICdlcnJvckNvbmZpcm1hdGlvblF1ZXN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yRGlhbG9nVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVycm9yRGlhbG9nVGl0bGUgPSAnZXJyb3JEaWFsb2dUaXRsZScsXHJcblxyXG4gIC8vIERQSV9FcnJvckhlbHBMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFcnJvckhlbHBMaW5rID0gJ2Vycm9ySGVscExpbmsnLFxyXG5cclxuICAvLyBEUElfRXJyb3JTaG9ydE1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVycm9yU2hvcnRNZXNzYWdlID0gJ2Vycm9yU2hvcnRNZXNzYWdlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFF1ZXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJTZWFyY2hRdWVyeSA9ICdmaWx0ZXJTZWFyY2hRdWVyeScsXHJcblxyXG4gIC8vIERQSV9Gcm9tTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZyb21MYWJlbCA9ICdmcm9tTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25IZWxwLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGdW5jdGlvbkhlbHAgPSAnZnVuY3Rpb25IZWxwJyxcclxuXHJcbiAgLy8gRFBJX0luc3RydWN0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW5zdHJ1Y3Rpb25zID0gJ2luc3RydWN0aW9ucycsXHJcblxyXG4gIC8vIERQSV9MYXJnZVVuaXREaXNwbGF5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMYXJnZVVuaXREaXNwbGF5ID0gJ2xhcmdlVW5pdERpc3BsYXknLFxyXG5cclxuICAvLyBEUElfTGltaXQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpbWl0ID0gJ2xpbWl0JyxcclxuXHJcbiAgLy8gRFBJX0xpc3RWaWV3TmFtZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaXN0Vmlld05hbWVMYWJlbCA9ICdsaXN0Vmlld05hbWVMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9MaXN0Vmlld1ZhbHVlTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpc3RWaWV3VmFsdWVMYWJlbCA9ICdsaXN0Vmlld1ZhbHVlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVSZWFkb3V0VW5pdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwU2NhbGVSZWFkb3V0VW5pdCA9ICdtYXBTY2FsZVJlYWRvdXRVbml0JyxcclxuXHJcbiAgLy8gRFBJX01lYXN1cmVEaW1lbnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1lYXN1cmVEaW1lbnNpb24gPSAnbWVhc3VyZXNEaW1lbnNpb24nLFxyXG5cclxuICAvLyBEUElfTWltZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1pbWVUeXBlID0gJ21pbWVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX05vdGlmaWNhdGlvbk1zZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTm90aWZpY2F0aW9uTXNnID0gJ25vdGlmaWNhdGlvbk1zZycsXHJcblxyXG4gIC8vIERQSV9PcGVyYXRpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPcGVyYXRpb25OYW1lID0gJ29wZXJhdGlvbk5hbWUnLFxyXG5cclxuICAvLyBEUElfUGFnZVRpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYWdlVGl0bGUgPSAncGFnZVRpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1BhdHRlcm5TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQYXR0ZXJuU3VtbWFyeSA9ICdwYXR0ZXJuU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlZmVyZW5jZUxpbmVJZCA9ICdyZWZMaW5lSWQnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVBhaXJlZElkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSZWZlcmVuY2VMaW5lUGFpcmVkSWQgPSAncmVmTGluZVBhaXJlZElkJyxcclxuXHJcbiAgLy8gRFBJX1JlcGxhY2VUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSZXBsYWNlVGV4dCA9ICdyZXBsYWNlVGV4dCcsXHJcblxyXG4gIC8vIERQSV9SZXF1aXJlZFZhcmlhYmxlTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVxdWlyZWRWYXJpYWJsZU1lc3NhZ2UgPSAncmVxdWlyZWRWYXJpYWJsZU1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5U3BlY2lhbENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlc3RhcnRFdmVyeVNwZWNpYWxDYXB0aW9uID0gJ3Jlc3RhcnRFdmVyeVNwZWNpYWxDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Jvb3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJvb3QgPSAncm9vdCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTZWxlY3Rpb25TdW1tYXJ5ID0gJ3NlbGVjdGlvblN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfU2Vzc2lvbkF0dHJpYnV0ZUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2Vzc2lvbkF0dHJpYnV0ZUtleSA9ICdzZXNzaW9uQXR0cmlidXRlS2V5JyxcclxuXHJcbiAgLy8gRFBJX1Nlc3Npb25BdHRyaWJ1dGVWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2Vzc2lvbkF0dHJpYnV0ZVZhbHVlID0gJ3Nlc3Npb25BdHRyaWJ1dGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9TaGVldEF0dHJpYnV0ZUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2hlZXRBdHRyaWJ1dGVLZXkgPSAnYmFzZVNoZWV0QXR0cmlidXRlS2V5JyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0QXR0cmlidXRlVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNoZWV0QXR0cmlidXRlVmFsdWUgPSAnYmFzZVNoZWV0QXR0cmlidXRlVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU21hbGxVbml0RGlzcGxheSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU21hbGxVbml0RGlzcGxheSA9ICdzbWFsbFVuaXREaXNwbGF5JyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNvdXJjZUNhcHRpb24gPSAnc291cmNlQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9TcmNQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTcmNQYXRoID0gJ3NyY1BhdGgnLFxyXG5cclxuICAvLyBEUElfU3RhcnRTZWxlY3Rpb25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdGFydFNlbGVjdGlvbkNhcHRpb24gPSAnc3RhcnRTZWxlY3Rpb25DYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1N1YnRpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdWJ0aXRsZSA9ICdzdWJ0aXRsZScsXHJcblxyXG4gIC8vIERQSV9UYWJsZWF1U2VydmVyU2l0ZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYmxlYXVTZXJ2ZXJTaXRlTmFtZSA9ICd0YWJsZWF1U2VydmVyU2l0ZU5hbWUnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0Q2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFyZ2V0Q2FwdGlvbiA9ICd0YXJnZXRDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1RodW1ibmFpbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRodW1ibmFpbFBhdGggPSAndGh1bWJuYWlsUGF0aCcsXHJcblxyXG4gIC8vIERQSV9Ub0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUb0xhYmVsID0gJ3RvTGFiZWwnLFxyXG5cclxuICAvLyBEUElfVVJMQWRkcmVzcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVVJMQWRkcmVzcyA9ICd1cmxBZGRyZXNzJyxcclxuXHJcbiAgLy8gRFBJX1VybFJvb3QsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVybFJvb3QgPSAndXJsUm9vdCcsXHJcblxyXG4gIC8vIERQSV9WYWx1ZXNUYWJsZUhlYWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVmFsdWVzVGFibGVIZWFkZXIgPSAndmFsdWVzVGFibGVIZWFkZXInLFxyXG5cclxuICAvLyBEUElfVmFsdWVzVGFibGVIZWFkZXIyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYWx1ZXNUYWJsZUhlYWRlcjIgPSAndmFsdWVzVGFibGVIZWFkZXIyJyxcclxuXHJcbiAgLy8gRFBJX1ZhcmlhYmxlRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhcmlhYmxlRGVzY3JpcHRpb24gPSAndmFyaWFibGVEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9WYXJpYWJsZURpc3BsYXlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYXJpYWJsZURpc3BsYXlOYW1lID0gJ3ZhcmlhYmxlRGlzcGxheU5hbWUnLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVHVUlELCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYXJpYWJsZUdVSUQgPSAndmFyaWFibGVHdWlkJyxcclxuXHJcbiAgLy8gRFBJX1ZlcmJvc2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWZXJib3NlTmFtZSA9ICd2ZXJib3NlTmFtZScsXHJcblxyXG4gIC8vIERQSV9WaWV3SWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZpZXdJZCA9ICd2aWV3SWQnLFxyXG5cclxuICAvLyBEUElfV2FybmluZzEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdhcm5pbmcxID0gJ3dhcm5pbmcxJyxcclxuXHJcbiAgLy8gRFBJX1dhcm5pbmcyLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBXYXJuaW5nMiA9ICd3YXJuaW5nMicsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoVG9rZW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlZnJlc2hUb2tlbiA9ICdyZWZyZXNoX3Rva2VuJyxcclxuXHJcbiAgLy8gRFBJX1Rva2VuVHlwZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVG9rZW5UeXBlID0gJ3Rva2VuX3R5cGUnLFxyXG5cclxuICAvLyBEUElfWFNSRlRva2VuLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBYU1JGVG9rZW4gPSAneHNyZl90b2tlbicsXHJcblxyXG4gIC8vIERQSV9BeGlzU3VidGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEF4aXNTdWJ0aXRsZSA9ICdheGlzU3VidGl0bGUnLFxyXG5cclxuICAvLyBEUElfQXhpc1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBeGlzVGl0bGUgPSAnYXhpc1RpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1RpY2tNYXJrT3JpZ2luRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaWNrTWFya09yaWdpbkRhdGFWYWx1ZSA9ICd0aWNrTWFya09yaWdpbkRhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9UaWNrTWFya09yaWdpbkRhdGFWYWx1ZU5vVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGlja01hcmtPcmlnaW5EYXRhVmFsdWVOb1RpbWUgPSAndGlja01hcmtPcmlnaW5EYXRhVmFsdWVOb1RpbWUnLFxyXG5cclxuICAvLyBEUElfVGlja01hcmtTcGFjaW5nRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaWNrTWFya1NwYWNpbmdEYXRhVmFsdWUgPSAndGlja01hcmtTcGFjaW5nRGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RBY3Rpb25Mb2NhbGl6ZWQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4dHJhY3RBY3Rpb25Mb2NhbGl6ZWQgPSAnZXh0cmFjdEFjdGlvbkxvY2FsaXplZCcsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0U291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeHRyYWN0U291cmNlID0gJ2V4dHJhY3RTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRmlsZUNvbnRlbnRzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWxlQ29udGVudHMgPSAnZmlsZUNvbnRlbnRzJyxcclxuXHJcbiAgLy8gRFBJX1NhdmVJbWFnZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNhdmVJbWFnZVBhdGggPSAnc2F2ZUltYWdlUGF0aCcsXHJcblxyXG4gIC8vIERQSV9XaWRnZXRVSUQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdpZGdldFVJRCA9ICd3aWRnZXRVbmlxdWVJZCcsXHJcblxyXG4gIC8vIERQSV9EYXRlUHJvcGVydGllc0Rpc3BsYXlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRlUHJvcGVydGllc0Rpc3BsYXlUZXh0ID0gJ2RhdGVQcm9wZXJ0aWVzRGlzcGxheVRleHQnLFxyXG5cclxuICAvLyBEUElfRGF0ZVByb3BlcnRpZXNIZWxwZXJUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRlUHJvcGVydGllc0hlbHBlclRleHQgPSAnZGF0ZVByb3BlcnRpZXNIZWxwZXJUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0V2ZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXZlbnROYW1lID0gJ2V2ZW50TmFtZScsXHJcblxyXG4gIC8vIERQSV9FeGNlcHRpb25UeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeGNlcHRpb25UeXBlID0gJ2V4Y2VwdGlvblR5cGUnLFxyXG5cclxuICAvLyBEUElfU2VhcmNoUGxhY2Vob2xkZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlYXJjaFBsYWNlaG9sZGVyID0gJ3NlYXJjaFBsYWNlaG9sZGVyJyxcclxuXHJcbiAgLy8gRFBJX1RhcmdldFZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhcmdldFZlcnNpb24gPSAndGFyZ2V0VmVyc2lvbicsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVEaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhVmFsdWVEaXNwbGF5U3RyaW5nID0gJ2RhdGFWYWx1ZURpc3BsYXlTdHJpbmcnLFxyXG5cclxuICAvLyBEUElfRG9tYWluU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEb21haW5TdHJpbmcgPSAnZG9tYWluU3RyaW5nJyxcclxuXHJcbiAgLy8gRFBJX1Jhd0RhdGFWYWx1ZVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmF3RGF0YVZhbHVlU3RyaW5nID0gJ3Jhd0RhdGFWYWx1ZVN0cmluZycsXHJcblxyXG4gIC8vIERQSV9SaWNoVGV4dERpYWxvZ1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSaWNoVGV4dERpYWxvZ1RpdGxlID0gJ3JpY2hUZXh0RGlhbG9nVGl0bGUnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRDb250ZW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSaWNoVGV4dENvbnRlbnQgPSAncmljaFRleHRDb250ZW50JyxcclxuXHJcbiAgLy8gRFBJX01hcmtTaXplQXNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcmtTaXplQXNTdHJpbmcgPSAnbWFya1NpemVBc1N0cmluZycsXHJcblxyXG4gIC8vIERQSV9Vbml0c0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVbml0c0xhYmVsID0gJ3VuaXRzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRW1haWxBZGRyZXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFbWFpbEFkZHJlc3MgPSAnZW1haWxBZGRyZXNzJyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlyc3ROYW1lID0gJ2ZpcnN0TmFtZScsXHJcblxyXG4gIC8vIERQSV9MYXN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTGFzdE5hbWUgPSAnbGFzdE5hbWUnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRBdmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXJkQXZnID0gJ3N1bW1hcnlDYXJkQXZnJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRDYXB0aW9uID0gJ3N1bW1hcnlDYXJkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZENvdW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdW1tYXJ5Q2FyZENvdW50ID0gJ3N1bW1hcnlDYXJkQ291bnQnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRLdXJ0b3NpcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRLdXJ0b3NpcyA9ICdzdW1tYXJ5Q2FyZEt1cnRvc2lzJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdW1tYXJ5Q2FyZE1heCA9ICdzdW1tYXJ5Q2FyZE1heCcsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZE1lZGlhbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRNZWRpYW4gPSAnc3VtbWFyeUNhcmRNZWRpYW4nLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRNaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXJkTWluID0gJ3N1bW1hcnlDYXJkTWluJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkUXVhcnQxLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTdW1tYXJ5Q2FyZFF1YXJ0MSA9ICdzdW1tYXJ5Q2FyZFF1YXJ0MScsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZFF1YXJ0MywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRRdWFydDMgPSAnc3VtbWFyeUNhcmRRdWFydDMnLFxyXG5cclxuICAvLyBEUElfU3VtbWFyeUNhcmRTa2V3bmVzcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRTa2V3bmVzcyA9ICdzdW1tYXJ5Q2FyZFNrZXduZXNzJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlDYXJkU3RkZXYsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN1bW1hcnlDYXJkU3RkZXYgPSAnc3VtbWFyeUNhcmRTdGRldicsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZFN1bSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeUNhcmRTdW0gPSAnc3VtbWFyeUNhcmRTdW0nLFxyXG5cclxuICAvLyBEUElfVmFsdWVDbGFzc0F0dHIsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhbHVlQ2xhc3NBdHRyID0gJ3ZhbHVlQ2xhc3NBdHRyJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZURpYWxvZ1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUcmVuZExpbmVEaWFsb2dUaXRsZSA9ICd0cmVuZExpbmVEaWFsb2dUaXRsZScsXHJcblxyXG4gIC8vIERQSV9MaW5lYXJGaXRUeXBlTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpbmVhckZpdFR5cGVMYWJlbCA9ICdsaW5lYXJGaXRUeXBlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfTG9nRml0VHlwZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMb2dGaXRUeXBlTGFiZWwgPSAnbG9nRml0VHlwZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0V4cEZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRXhwRml0VHlwZUxhYmVsID0gJ2V4cEZpdFR5cGVMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9Qb3dlckZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUG93ZXJGaXRUeXBlTGFiZWwgPSAncG93ZXJGaXRUeXBlTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUG9seW5vbWlhbEZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUG9seW5vbWlhbEZpdFR5cGVMYWJlbCA9ICdwb2x5bm9taWFsRml0VHlwZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVDb2xvckxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeGNsdWRlQ29sb3JMYWJlbCA9ICdleGNsdWRlQ29sb3JMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9FbmFibGVDb25maWRlbmNlQmFuZHNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRW5hYmxlQ29uZmlkZW5jZUJhbmRzTGFiZWwgPSAnZW5hYmxlQ29uZmlkZW5jZUJhbmRzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRm9yY2VJbnRlcmNlcHRaZXJvTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmNlSW50ZXJjZXB0WmVyb0xhYmVsID0gJ2ZvcmNlSW50ZXJjZXB0WmVybyBsYWJlbCcsXHJcblxyXG4gIC8vIERQSV9FbmFibGVJbnN0YW50QW5hbHl0aWNzTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVuYWJsZUluc3RhbnRBbmFseXRpY3NMYWJlbCA9ICdlbmFibGVJbnN0YW50QW5hbHl0aWNzTGFiZWwnLFxyXG5cclxuICAvLyBEUElfRW5hYmxlVG9vbHRpcHNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRW5hYmxlVG9vbHRpcHNMYWJlbCA9ICdlbmFibGVUb29sdGlwTGFiZWwnLFxyXG5cclxuICAvLyBEUElfQXV0aGVudGljYXRpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBdXRoZW50aWNhdGlvblN1bW1hcnkgPSAnYXV0aGVudGljYXRpb25TdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0J0bkNhbmNlbFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ0bkNhbmNlbFRleHQgPSAnYnRuQ2FuY2VsVGV4dCcsXHJcblxyXG4gIC8vIERQSV9CdG5Pa1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJ0bk9rVGV4dCA9ICdidG5Pa1RleHQnLFxyXG5cclxuICAvLyBEUElfQnV0dG9uVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uVGV4dCA9ICdidXR0b25UZXh0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1bGF0aW9uQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FsY3VsYXRpb25DYXB0aW9uID0gJ2NhbGN1bGF0aW9uQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGlvbkRlcGVuZGVuY2llcywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FsY3VsYXRpb25EZXBlbmRlbmNpZXMgPSAnY2FsY3VsYXRpb25EZXBlbmRlbmNpZXMnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRpb25Gb3JtdWxhLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYWxjdWxhdGlvbkZvcm11bGEgPSAnY2FsY3VsYXRpb25Gb3JtdWxhJyxcclxuXHJcbiAgLy8gRFBJX0NoZWNrUHVibGlzaE1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENoZWNrUHVibGlzaE1lc3NhZ2UgPSAnY2hlY2tQdWJsaXNoU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9DbHVzdGVyTW9kZWxUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbHVzdGVyTW9kZWxUZXh0ID0gJ2NsdXN0ZXJNb2RlbFRleHQnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclN1bW1hcnlTY2FsZWRUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbHVzdGVyU3VtbWFyeVNjYWxlZFRleHQgPSAnY2x1c3RlclN1bW1hcnlTY2FsZWRUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJTdW1tYXJ5VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2x1c3RlclN1bW1hcnlUZXh0ID0gJ2NsdXN0ZXJTdW1tYXJ5VGV4dCcsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2x1bW5DYXB0aW9uID0gJ2NvbHVtbkNhcHRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VDYXB0aW9uID0gJ2RhdGFzb3VyY2VDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEZWZhdWx0Q2FwdGlvbiA9ICdkZWZhdWx0Q2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEaXNwbGF5U3RyaW5nID0gJ2Rpc3BsYXlUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0RyYWdEZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRHJhZ0Rlc2NyaXB0aW9uID0gJ2RyYWdEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9FeGNlcHRpb25NZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBFeGNlcHRpb25NZXNzYWdlID0gJ2V4Y2VwdGlvbk1lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfRXhwbGFuYXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEV4cGxhbmF0aW9uID0gJ2V4cGxhbmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGRDYXB0aW9uID0gJ2ZpZWxkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9GaWVsZFN1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkU3VtbWFyeSA9ICdmaWVsZFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfRmllbGRTdW1tYXJ5TGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkU3VtbWFyeUxhYmVsID0gJ2ZpZWxkU3VtbWFyeUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJEZXNjcmlwdGlvbiA9ICdmaWx0ZXJEZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJOYW1lID0gJ2ZpbHRlck5hbWUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RNb2RlbFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmVjYXN0TW9kZWxUZXh0ID0gJ2ZvcmVjYXN0TW9kZWxUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0U3VtbWFyeVBjdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmVjYXN0U3VtbWFyeVBjdFRleHQgPSAnZm9yZWNhc3RTdW1tYXJ5UGN0VGV4dCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdFN1bW1hcnlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGb3JlY2FzdFN1bW1hcnlUZXh0ID0gJ2ZvcmVjYXN0U3VtbWFyeVRleHQnLFxyXG5cclxuICAvLyBEUElfSGFzQWN0aXZlRXh0cmFjdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhhc0FjdGl2ZUV4dHJhY3RUZXh0ID0gJ2hhc0FjdGl2ZUV4dHJhY3RUZXh0JyxcclxuXHJcbiAgLy8gRFBJX0h0bWxDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSHRtbENvbG9yID0gJ2h0bWxDb2xvcicsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlTG9jYWxGaWxlc0NoZWNrZWRXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbmNsdWRlTG9jYWxGaWxlc0NoZWNrZWRXYXJuaW5nID0gJ2luY2x1ZGVMb2NhbEZpbGVzQ2hlY2tlZFdhcm5pbmcnLFxyXG5cclxuICAvLyBEUElfSW5jbHVkZUxvY2FsRmlsZXNXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbmNsdWRlTG9jYWxGaWxlc1dhcm5pbmcgPSAnaW5jbHVkZUxvY2FsRmlsZXNXYXJuaW5nJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEludmFsaWRGaWVsZENhcHRpb24gPSAnaW52YWxpZEZpZWxkQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9MaW1pdFN1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExpbWl0U3VtbWFyeSA9ICdsaW1pdFN1bW1hcnknLFxyXG5cclxuICAvLyBEUElfTG9hZGVkRXhpc3RpbmdPYmplY3RXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMb2FkZWRFeGlzdGluZ09iamVjdFdhcm5pbmcgPSAnbG9hZGVkRXhpc3RpbmdPYmplY3RXYXJuaW5nJyxcclxuXHJcbiAgLy8gRFBJX01hbmFnZURhdGFzb3VyY2VzU3VtbWFyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFuYWdlRGF0YXNvdXJjZXNTdW1tYXJ5ID0gJ21hbmFnZURhdGFzb3VyY2VzU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9Nb2RhbERpYWxvZywgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTW9kYWxEaWFsb2cgPSAnbW9kYWxEaWFsb2cnLFxyXG5cclxuICAvLyBEUElfTmV3RGF0YXNvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5ld0RhdGFzb3VyY2VDYXB0aW9uID0gJ25ld0RhdGFzb3VyY2VDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Blcm1pc3Npb25zQnV0dG9uTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBlcm1pc3Npb25zQnV0dG9uTGFiZWwgPSAncGVybWlzc2lvbnNCdXR0b25MYWJlbCcsXHJcblxyXG4gIC8vIERQSV9QZXJtaXNzaW9uc0VkaXRvclJvbGVJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVybWlzc2lvbnNFZGl0b3JSb2xlSWQgPSAncGVybWlzc2lvbnNFZGl0b3JSb2xlSWQnLFxyXG5cclxuICAvLyBEUElfUGVybWlzc2lvbnNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVybWlzc2lvbnNMYWJlbCA9ICdwZXJtaXNzaW9uc0xhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1BlcnNwZWN0aXZlQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVyc3BlY3RpdmVDYXB0aW9uID0gJ3BlcnNwZWN0aXZlQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoQnV0dG9uTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFB1Ymxpc2hCdXR0b25MYWJlbCA9ICdwdWJsaXNoQnV0dG9uTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaENob2ljZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQdWJsaXNoQ2hvaWNlTGFiZWwgPSAncHVibGlzaENob2ljZUxhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hPYmplY3RWaWV3c1N1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFB1Ymxpc2hPYmplY3RWaWV3c1N1bW1hcnkgPSAncHVibGlzaE9iamVjdFZpZXdzU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9RdWFsaWZpZWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFF1YWxpZmllZEZpZWxkQ2FwdGlvbiA9ICdxdWFsaWZpZWRGaWVsZENhcHRpb24nLFxyXG5cclxuICAvLyBEUElfUmVsYXRpb25zaGlwVG9vbHRpcFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlbGF0aW9uc2hpcFRvb2x0aXBUZXh0ID0gJ3JlbGF0aW9uc2hpcFRvb2x0aXBUZXh0JyxcclxuXHJcbiAgLy8gRFBJX1Jlc2V0T2JqZWN0QXR0cmlidXRlc1dhcm5pbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlc2V0T2JqZWN0QXR0cmlidXRlc1dhcm5pbmcgPSAncmVzZXRPYmplY3RBdHRyaWJ1dGVzV2FybmluZycsXHJcblxyXG4gIC8vIERQSV9Sb3dDb3VudENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJvd0NvdW50Q2FwdGlvbiA9ICdyb3dDb3VudENhcHRpb24nLFxyXG5cclxuICAvLyBEUElfU2VydmVyQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2VydmVyQ2FwdGlvbiA9ICdzZXJ2ZXJDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NpemVNb2RlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2l6ZU1vZGVOYW1lID0gJ3NpemVNb2RlTmFtZScsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3VtbWFyeVRleHQgPSAnc3VtbWFyeVRleHQnLFxyXG5cclxuICAvLyBEUElfU3luY0NsaWVudFVzZUV4dHJhY3RMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3luY0NsaWVudFVzZUV4dHJhY3RMYWJlbCA9ICdzeW5jQ2xpZW50VXNlRXh0cmFjdExhYmVsJyxcclxuXHJcbiAgLy8gRFBJX1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRleHQgPSAndGV4dCcsXHJcblxyXG4gIC8vIERQSV9UZXh0RHJvcGRvd25Db250cm9sTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRleHREcm9wZG93bkNvbnRyb2xMYWJlbCA9ICdjb250cm9sTGFiZWwnLFxyXG5cclxuICAvLyBEUElfVGh1bWJuYWlsVXNlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRodW1ibmFpbFVzZXJOYW1lID0gJ3RodW1ibmFpbFVzZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1RpdGxlU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaXRsZVN0cmluZyA9ICd0aXRsZVN0cmluZycsXHJcblxyXG4gIC8vIERQSV9Ub29sdGlwVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVG9vbHRpcFRleHQgPSAndG9vbHRpcFRleHQnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlZENhbGNDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVcGRhdGVkQ2FsY0NhcHRpb24gPSAndXBkYXRlZENhbGN1bGF0aW9uQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVkQ2FsY0Zvcm11bGEsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVwZGF0ZWRDYWxjRm9ybXVsYSA9ICd1cGRhdGVkQ2FsY3VsYXRpb25Gb3JtdWxhJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVc2VyQ2FwdGlvbiA9ICd1c2VyQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9XYXJuaW5nVG9vbHRpcFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdhcm5pbmdUb29sdGlwVGV4dCA9ICd3YXJuaW5nVG9vbHRpcFRleHQnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUZpbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VGaWxlID0gJ2RhdGFzb3VyY2VGaWxlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbGUgPSAnZmlsZScsXHJcblxyXG4gIC8vIERQSV9GaWxlTmFtZUJhc2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbGVOYW1lQmFzZSA9ICdmaWxlbmFtZUJhc2UnLFxyXG5cclxuICAvLyBEUElfTmV3RmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmV3RmlsZSA9ICduZXdGaWxlJyxcclxuXHJcbiAgLy8gRFBJX09yaWdpbmFsRmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3JpZ2luYWxGaWxlID0gJ29yaWdpbmFsRmlsZScsXHJcblxyXG4gIC8vIERQSV9PdXRwdXRGaWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPdXRwdXRGaWxlID0gJ291dHB1dEZpbGUnLFxyXG5cclxuICAvLyBEUElfU2FtcGxlRmlsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNhbXBsZUZpbGVOYW1lID0gJ3NhbXBsZUZpbGVuYW1lJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rRmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV29ya2Jvb2tGaWxlID0gJ3dvcmtib29rRmlsZScsXHJcblxyXG4gIC8vIERQSV9JbWFnZUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSW1hZ2VLZXkgPSAnaW1hZ2VLZXknLFxyXG5cclxuICAvLyBEUElfT3ZlcmxheUltYWdlS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBPdmVybGF5SW1hZ2VLZXkgPSAnb3ZlcmxheUltYWdlS2V5JyxcclxuXHJcbiAgLy8gRFBJX1RlbXBGaWxlS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUZW1wRmlsZUtleSA9ICd0ZW1wZmlsZUtleScsXHJcblxyXG4gIC8vIERQSV9DYXB0dXJlZFNoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDYXB0dXJlZFNoZWV0ID0gJ2NhcHR1cmVkU2hlZXQnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudFNoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDdXJyZW50U2hlZXQgPSAnY3VycmVudFNoZWV0JyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcsXHJcblxyXG4gIC8vIERQSV9FbnN1cmVTaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRW5zdXJlU2hlZXQgPSAnZW5zdXJlU2hlZXROYW1lJyxcclxuXHJcbiAgLy8gRFBJX05ld1NoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXdTaGVldCA9ICduZXdTaGVldCcsXHJcblxyXG4gIC8vIERQSV9TaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU2hlZXQgPSAnc2hlZXQnLFxyXG5cclxuICAvLyBEUElfU2hlZXROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaGVldE5hbWUgPSAnc2hlZXROYW1lJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZURhc2hib2FyZCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU291cmNlRGFzaGJvYXJkID0gJ3NvdXJjZURhc2hib2FyZCcsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VTaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU291cmNlU2hlZXQgPSAnc291cmNlU2hlZXQnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0U2hlZXQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhcmdldFNoZWV0ID0gJ3RhcmdldFNoZWV0JyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgV29ya2Jvb2tOYW1lID0gJ3dvcmtib29rTmFtZScsXHJcblxyXG4gIC8vIERQSV9Xb3Jrc2hlZXQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG5cclxuICAvLyBEUElfQmFzZVZpZXdUaHVtYkxpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJhc2VWaWV3VGh1bWJMaW5rID0gJ2Jhc2VWaWV3VGh1bWJMaW5rJyxcclxuXHJcbiAgLy8gRFBJX0Jsb2dMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCbG9nTGluayA9ICdibG9nTGluaycsXHJcblxyXG4gIC8vIERQSV9DYWNoZVVybCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ2FjaGVVcmwgPSAnY2FjaGVVcmwnLFxyXG5cclxuICAvLyBEUElfRG93bmxvYWRMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEb3dubG9hZExpbmsgPSAnZG93bmxvYWRMaW5rJyxcclxuXHJcbiAgLy8gRFBJX1JlcG9zaXRvcnlVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlcG9zaXRvcnlVcmwgPSAncmVwb3NpdG9yeVVybCcsXHJcblxyXG4gIC8vIERQSV9TaGFyZUxpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNoYXJlTGluayA9ICdzaGFyZUxpbmsnLFxyXG5cclxuICAvLyBEUElfVVJMLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBVUkwgPSAndXJsJyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJNb2RlbEh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENsdXN0ZXJNb2RlbEh0bWwgPSAnY2x1c3Rlck1vZGVsSHRtbCcsXHJcblxyXG4gIC8vIERQSV9DbHVzdGVyU3VtbWFyeUh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENsdXN0ZXJTdW1tYXJ5SHRtbCA9ICdjbHVzdGVyU3VtbWFyeUh0bWwnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclN1bW1hcnlTY2FsZWRIdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDbHVzdGVyU3VtbWFyeVNjYWxlZEh0bWwgPSAnY2x1c3RlclN1bW1hcnlTY2FsZWRIdG1sJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkRGVzY3JpcHRpb24gPSAnZmllbGREZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdE1vZGVsSHRtbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9yZWNhc3RNb2RlbEh0bWwgPSAnZm9yZWNhc3RNb2RlbEh0bWwnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RTdW1tYXJ5SHRtbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9yZWNhc3RTdW1tYXJ5SHRtbCA9ICdmb3JlY2FzdFN1bW1hcnlIdG1sJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0U3VtbWFyeVBjdEh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcmVjYXN0U3VtbWFyeVBjdEh0bWwgPSAnZm9yZWNhc3RTdW1tYXJ5UGN0SHRtbCcsXHJcblxyXG4gIC8vIERQSV9IdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIdG1sID0gJ2h0bWwnLFxyXG5cclxuICAvLyBEUElfSHRtbFNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSHRtbFNlbGVjdGlvbiA9ICdodG1sU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0h0bWxUb29sdGlwLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIdG1sVG9vbHRpcCA9ICdodG1sVG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9IdG1sVG9vbHRpcE1vZGlmaWVkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIdG1sVG9vbHRpcE1vZGlmaWVkID0gJ2h0bWxUb29sdGlwTW9kaWZpZWQnLFxyXG5cclxuICAvLyBEUElfVGl0bGVIdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBUaXRsZUh0bWwgPSAndGl0bGVIdG1sJyxcclxuXHJcbiAgLy8gRFBJX0NhY2hlVXJsSW5mb0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENhY2hlVXJsSW5mb0pzb24gPSAnY2FjaGVVcmxJbmZvSnNvbicsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJTZWFyY2hKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWx0ZXJTZWFyY2hKc29uID0gJ2ZpbHRlclNlYXJjaEpzb24nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU2VhcmNoV2l0aEluZGV4SnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsdGVyU2VhcmNoV2l0aEluZGV4SnNvbiA9ICdmaWx0ZXJTZWFyY2hXaXRoSW5kZXhKc29uJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNob3dDaGlsZHJlbkpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpbHRlclNob3dDaGlsZHJlbkpzb24gPSAnZmlsdGVyU2hvd0NoaWxkcmVuSnNvbicsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJzSnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsdGVyc0pzb24gPSAnZmlsdGVyc0pzb24nLFxyXG5cclxuICAvLyBEUElfRnJhbWVKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGcmFtZUpzb24gPSAnZnJhbWVKc29uJyxcclxuXHJcbiAgLy8gRFBJX0dlb21ldHJ5SnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgR2VvbWV0cnlKc29uID0gJ2dlb21ldHJ5SnNvbicsXHJcblxyXG4gIC8vIERQSV9HZXRGaWx0ZXJJdGVtc0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdldEZpbHRlckl0ZW1zSnNvbiA9ICdnZXRGaWx0ZXJJdGVtc0pzb24nLFxyXG5cclxuICAvLyBEUElfS2VlcE9ubHlSZXNwb25zZUpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEtlZXBPbmx5UmVzcG9uc2VKc29uID0gJ2tlZXBPbmx5UmVzcG9uc2VKc29uJyxcclxuXHJcbiAgLy8gRFBJX01lbnVDb21tYW5kc0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1lbnVDb21tYW5kc0pzb24gPSAnbWVudUNvbW1hbmRzSnNvbicsXHJcblxyXG4gIC8vIERQSV9Nb2RpZmllZFNoZWV0c0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1vZGlmaWVkU2hlZXRzSnNvbiA9ICdtb2RpZmllZFNoZWV0c0pzb24nLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyQ3RybEpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlckN0cmxKc29uID0gJ3BhcmFtZXRlckN0cmxKc29uJyxcclxuXHJcbiAgLy8gRFBJX1ZpZXdKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWaWV3SnNvbiA9ICd2aWV3SnNvbicsXHJcblxyXG4gIC8vIERQSV9DdXN0b21pemVkVmlld1hNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ3VzdG9taXplZFZpZXdYTUwgPSAnY3VzdG9taXplZFZpZXdYbWwnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZURlbHRhWE1MLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBEYXRhc291cmNlRGVsdGFYTUwgPSAnZGF0YXNvdXJjZURlbHRhWG1sJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFzb3VyY2VYTUwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFzb3VyY2VYTUwgPSAnZGF0YXNvdXJjZVhtbCcsXHJcblxyXG4gIC8vIERQSV9LZXljaGFpblhNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgS2V5Y2hhaW5YTUwgPSAna2V5Y2hhaW5YbWwnLFxyXG5cclxuICAvLyBEUElfUGVybWlzc2lvbnNNb2RlbFhNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGVybWlzc2lvbnNNb2RlbFhNTCA9ICdwZXJtaXNzaW9uc01vZGVsWG1sJyxcclxuXHJcbiAgLy8gRFBJX1NoYXJlZFZpZXdzWE1MLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTaGFyZWRWaWV3c1hNTCA9ICdzaGFyZWRWaWV3c1htbCcsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRVUkwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhcmdldFVSTCA9ICd0YXJnZXRVcmwnLFxyXG5cclxuICAvLyBEUElfQW5jaG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBbmNob3IgPSAnYW5jaG9yJyxcclxuXHJcbiAgLy8gRFBJX0NlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDZW50ZXJWYWx1ZSA9ICdjZW50ZXJWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Db21wdXRlZEJpblNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIENvbXB1dGVkQmluU2l6ZSA9ICdjb21wdXRlZEJpblNpemUnLFxyXG5cclxuICAvLyBEUElfQ29uc3RhbnRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29uc3RhbnRWYWx1ZSA9ICdjb25zdGFudFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZENvbnN0YW50VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhaXJlZENvbnN0YW50VmFsdWUgPSAncGFpcmVkQ29uc3RhbnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Db3VudERpc3RpbmN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb3VudERpc3RpbmN0ID0gJ2NvdW50RGlzdGluY3QnLFxyXG5cclxuICAvLyBEUElfRGF0YU1heCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRGF0YU1heCA9ICdkYXRhTWF4JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFNaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFNaW4gPSAnZGF0YU1pbicsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERhdGFWYWx1ZVN0cmluZyA9ICdkYXRhVmFsdWVTdHInLFxyXG5cclxuICAvLyBEUElfRW5kVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEVuZFZhbHVlID0gJ2VuZFZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1JhbmdlTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBSYW5nZU1heCA9ICdyYW5nZU1heCcsXHJcblxyXG4gIC8vIERQSV9SYW5nZU1pbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmFuZ2VNaW4gPSAncmFuZ2VNaW4nLFxyXG5cclxuICAvLyBEUElfUmFuZ2VTdGVwU2l6ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmFuZ2VTdGVwU2l6ZSA9ICdyYW5nZVN0ZXBTaXplJyxcclxuXHJcbiAgLy8gRFBJX1N0YXJ0VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFN0YXJ0VmFsdWUgPSAnc3RhcnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVGFyZ2V0VmFsdWUgPSAndGFyZ2V0VmFsdWUnLFxyXG5cclxuICAvLyBEUElfVmFsdWVJbmMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFZhbHVlSW5jID0gJ3ZhbHVlSW5jJyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYWx1ZU1heCA9ICd2YWx1ZU1heCcsXHJcblxyXG4gIC8vIERQSV9WYWx1ZU1pbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVmFsdWVNaW4gPSAndmFsdWVNaW4nLFxyXG5cclxuICAvLyBEUElfUXVhbnRpbGVzVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFF1YW50aWxlc1ZhbHVlID0gJ3F1YW50aWxlc1ZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJJbnB1dEJpblNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFVzZXJJbnB1dEJpblNpemUgPSAndXNlckJpblNpemUnLFxyXG5cclxuICAvLyBEUElfQWRkZWREYXRhU291cmNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRlZERhdGFTb3VyY2VzID0gJ2FkZGVkRGF0YVNvdXJjZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0FkZHJlc3NpbmdDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRyZXNzaW5nQ2FwdGlvbnMgPSAnYWRkcmVzc2luZ0NhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0FnZ3JlZ2F0aW9uQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQWdncmVnYXRpb25DYXB0aW9ucyA9ICdhZ2dyZWdhdGlvbkNhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0F0VGhlTGV2ZWxDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdFRoZUxldmVsQ2FwdGlvbnMgPSAnYXRUaGVMZXZlbENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uU2V0dGluZ0xhYmVscywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdXRoZW50aWNhdGlvblNldHRpbmdMYWJlbHMgPSAnYXV0aGVudGljYXRpb25TZXR0aW5nTGFiZWxzJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9zYXZlRmlsZUlkc1ZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdXRvc2F2ZUZpbGVJZHNWZWN0b3IgPSAnYXV0b3NhdmVGaWxlSWRzVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0NoYW5nZWRUdXBsZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ2hhbmdlZFR1cGxlcyA9ICdjaGFuZ2VkVHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX0NoYXJzZXRzQXZhaWxhYmxlLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIENoYXJzZXRzQXZhaWxhYmxlID0gJ2NoYXJzZXRzQXZhaWxhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0NoYXJzZXREaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ2hhcnNldERpc3BsYXlOYW1lcyA9ICdjaGFyc2V0RGlzcGxheU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yRmFjdG9ycywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2xvckZhY3RvcnMgPSAnY29sb3JGYWN0b3JzJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkZ1bGxOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2x1bW5GdWxsTmFtZXMgPSAnY29sdW1uRnVsbE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25OYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uTmFtZXMgPSAnY29ubmVjdGlvbk5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25DYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb25uZWN0aW9uQ2FwdGlvbnMgPSAnY29ubmVjdGlvbkNhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25CaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIENvbm5lY3Rpb25CaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94ID0gJ2Nvbm5lY3Rpb25CaWdxdWVyeUxlZ2FjeVNxbENoZWNrYm94JyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbUZpZWxkT3JkZXIsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ3VzdG9tRmllbGRPcmRlciA9ICdjdXN0b21GaWVsZE9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VDbGFzc2VzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIERhdGFTb3VyY2VDbGFzc2VzID0gJ2RhdGFTb3VyY2VDbGFzc2VzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEYXRhU291cmNlTmFtZXMgPSAnZGF0YVNvdXJjZU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VOYW1lczIsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRGF0YVNvdXJjZU5hbWVzMiA9ICdkYXRhU291cmNlTmFtZXMyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VzV2l0aEVtcHR5UmVsYXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRGF0YVNvdXJjZXNXaXRoRW1wdHlSZWxhdGlvbiA9ICdkYXRhU291cmNlc1dpdGhFbXB0eVJlbGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VDcmVhdGlvbkVycm9ycywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEYXRhU291cmNlQ3JlYXRpb25FcnJvcnMgPSAnZGF0YVNvdXJjZUNyZWF0aW9uRXJyb3JzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVGb3JtYXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIERhdGVGb3JtYXRzID0gJ2RhdGVGb3JtYXRzJyxcclxuXHJcbiAgLy8gRFBJX0RheU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIERheU5hbWVzID0gJ2RheU5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0RyaWxsUGF0aFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEcmlsbFBhdGhWZWN0b3IgPSAnZHJpbGxwYXRoVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yRGV0YWlscywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBFcnJvckRldGFpbHMgPSAnZXJyb3JEZXRhaWxzJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2VwdGlvbk1lc3NhZ2VQYXJhbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRXhjZXB0aW9uTWVzc2FnZVBhcmFtcyA9ICdleGNlcHRpb25NZXNzYWdlUGFyYW1zJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2x1ZGVkU2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEV4Y2x1ZGVkU2hlZXRzID0gJ2V4Y2x1ZGVTaGVldHMnLFxyXG5cclxuICAvLyBEUElfRmllbGREaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGREaXNwbGF5TmFtZXMgPSAnZmllbGREaXNwbGF5TmFtZXMnLFxyXG5cclxuICAvLyBEUElfRmllbGRGb2xkZXJWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGRGb2xkZXJWZWN0b3IgPSAnZmllbGRGb2xkZXJWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmlsZUlkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGaWxlSWRzID0gJ2ZpbGVJZHMnLFxyXG5cclxuICAvLyBEUElfRmlsZVBhdGhzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbGVQYXRocyA9ICdmaWxlUGF0aHMnLFxyXG5cclxuICAvLyBEUElfRmlsZU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbGVOYW1lcyA9ICdmaWxlTmFtZXMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyQWRkLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbHRlckFkZCA9ICdmaWx0ZXJBZGQnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyQWxpYXNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGaWx0ZXJBbGlhc2VzID0gJ2ZpbHRlclZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJSZW1vdmUsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmlsdGVyUmVtb3ZlID0gJ2ZpbHRlclJlbW92ZScsXHJcblxyXG4gIC8vIERQSV9GaXhlZENhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpeGVkQ2FwdGlvbnMgPSAnZml4ZWRDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Gb250RmFtaWxpZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRm9udEZhbWlsaWVzID0gJ2ZvbnRGYW1pbGllcycsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRTdHJpbmdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZvcm1hdFN0cmluZ3MgPSAnZm9ybWF0U3RyaW5ncycsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXR0ZWRWYWx1ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRm9ybWF0dGVkVmFsdWVzID0gJ2Zvcm1hdHRlZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Gb3VuZFR1cGxlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBGb3VuZFR1cGxlcyA9ICdmb3VuZFR1cGxlcycsXHJcblxyXG4gIC8vIERQSV9GdWxsU2NoZWR1bGVzTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZ1bGxTY2hlZHVsZXNMYWJlbHMgPSAnZnVsbFNjaGVkdWxlc0xhYmVscycsXHJcblxyXG4gIC8vIERQSV9JbWFnZVJlc291cmNlTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBJbWFnZVJlc291cmNlTGlzdCA9ICdpbWFnZVJlc291cmNlcycsXHJcblxyXG4gIC8vIERQSV9JbmNsdWRlTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBJbmNsdWRlTGlzdCA9ICdpbmNsdWRlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9JbmNyU2NoZWR1bGVzTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEluY3JTY2hlZHVsZXNMYWJlbHMgPSAnaW5jclNjaGVkdWxlc0xhYmVscycsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkRGF0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgSW52YWxpZERhdGVzID0gJ2ludmFsaWREYXRlcycsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEludmFsaWRWYWx1ZXMgPSAnaW52YWxpZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9JdGVtVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEl0ZW1WYWx1ZXMgPSAnaXRlbVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Kb2luRWRpdGFibGVQcm9wcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBKb2luRWRpdGFibGVQcm9wcyA9ICdqb2luRWRpdGFibGVQcm9wcycsXHJcblxyXG4gIC8vIERQSV9Kb2luRmllbGRDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBKb2luRmllbGRDYXB0aW9ucyA9ICdqb2luRmllbGRDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Mb2NhbGVPcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIExvY2FsZU9wdGlvbnMgPSAnbG9jYWxlT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Mb2NhbGVEaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTG9jYWxlRGlzcGxheU5hbWVzID0gJ2xvY2FsZURpc3BsYXlOYW1lcycsXHJcblxyXG4gIC8vIERQSV9NYXBCb3hTdHlsZU1hcHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTWFwQm94U3R5bGVNYXBzID0gJ21hcGJveFN0eWxlTWFwcycsXHJcblxyXG4gIC8vIERQSV9NYXBDb25uZWN0aW9uRXJyb3JEZXRhaWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE1hcENvbm5lY3Rpb25FcnJvckRldGFpbHMgPSAnbWFwQ29ubmVjdGlvbkVycm9yRGV0YWlscycsXHJcblxyXG4gIC8vIERQSV9TaGVldE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNoZWV0TmFtZXMgPSAnc2hlZXROYW1lcycsXHJcblxyXG4gIC8vIERQSV9NYXBTb3VyY2VOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBNYXBTb3VyY2VOYW1lcyA9ICdtYXBTb3VyY2VOYW1lcycsXHJcblxyXG4gIC8vIERQSV9NYXJrR2VvbWV0cmllcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBNYXJrR2VvbWV0cmllcyA9ICdtYXJrR2VvbWV0cmllcycsXHJcblxyXG4gIC8vIERQSV9NZW51SXRlbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTWVudUl0ZW1zID0gJ21lbnVJdGVtcycsXHJcblxyXG4gIC8vIERQSV9Nb2RlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBNb2RlcyA9ICdtb2RlcycsXHJcblxyXG4gIC8vIERQSV9Nb250aE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE1vbnRoTmFtZXMgPSAnbW9udGhOYW1lcycsXHJcblxyXG4gIC8vIERQSV9OdW1iZXJGb3JtYXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE51bWJlckZvcm1hdHMgPSAnbnVtYmVyRm9ybWF0cycsXHJcblxyXG4gIC8vIERQSV9PYmplY3RUZXh0SURzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE9iamVjdFRleHRJRHMgPSAnb2JqZWN0VGV4dElkcycsXHJcblxyXG4gIC8vIERQSV9PbGRFeHRyYWN0cywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBPbGRFeHRyYWN0cyA9ICdvbGRFeHRyYWN0cycsXHJcblxyXG4gIC8vIERQSV9PcmRlcmluZ1R5cGVDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBPcmRlcmluZ1R5cGVDYXB0aW9ucyA9ICdvcmRlcmluZ1R5cGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9QYWdlTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUGFnZU5hbWVzID0gJ3BhZ2VOYW1lcycsXHJcblxyXG4gIC8vIERQSV9QYW5lRGVzY3JpcHRvcktleXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUGFuZURlc2NyaXB0b3JLZXlzID0gJ3BhbmVEZXNjcmlwdG9yS2V5cycsXHJcblxyXG4gIC8vIERQSV9QYXJhbUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFBhcmFtQ2FwdGlvbnMgPSAncGFyYW1DYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9QcmVjYW5uZWREYXRhVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFByZWNhbm5lZERhdGFWYWx1ZXMgPSAncHJlY2FubmVkRGF0YVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoQ2hvaWNlTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFB1Ymxpc2hDaG9pY2VMYWJlbHMgPSAncHVibGlzaENob2ljZUxhYmVscycsXHJcblxyXG4gIC8vIERQSV9SYW5rVHlwZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJhbmtUeXBlQ2FwdGlvbnMgPSAncmFua1R5cGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9SZWNlbnRUYWdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlY2VudFRhZ3MgPSAncmVjZW50VGFncycsXHJcblxyXG4gIC8vIERQSV9SZWxhdGl2ZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlbGF0aXZlQ2FwdGlvbnMgPSAncmVsYXRpdmVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVkRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVtb3ZlZERhdGFTb3VyY2VzID0gJ3JlbW92ZWREYXRhU291cmNlTmFtZXMnLFxyXG5cclxuICAvLyBEUElfUmVwcmVzZW50YXRpdmVUdXBsZSwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZXByZXNlbnRhdGl2ZVR1cGxlID0gJ3JlcHJlc2VudGF0aXZlVHVwbGUnLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5Q2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVzdGFydEV2ZXJ5Q2FwdGlvbnMgPSAncmVzdGFydEV2ZXJ5Q2FwdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hTWVtYmVyR2xvYmFsTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2NoZW1hTWVtYmVyR2xvYmFsTmFtZXMgPSAnc2NoZW1hTWVtYmVyR2xvYmFsTmFtZXMnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0VmFsdWVzTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBTZWxlY3RWYWx1ZXNMaXN0ID0gJ3NlbGVjdFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25WYWx1ZUxpc3QsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2VsZWN0aW9uVmFsdWVMaXN0ID0gJ3NlbGVjdGlvblZhbHVlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0QWdnQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU29ydEFnZ0NhcHRpb25zID0gJ3NvcnRBZ2dDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlyZWN0aW9uQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU29ydERpcmVjdGlvbkNhcHRpb25zID0gJ3NvcnREaXJlY3Rpb25DYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Tb3J0RmllbGRDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBTb3J0RmllbGRDYXB0aW9ucyA9ICdzb3J0RmllbGRDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9Tb3J0RmllbGROYW1lVmVjdG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNvcnRGaWVsZE5hbWVWZWN0b3IgPSAnc29ydEZpZWxkbmFtZVZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9TdXBwb3J0ZWRKb2luT3BlcmF0b3JzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN1cHBvcnRlZEpvaW5PcGVyYXRvcnMgPSAnc3VwcG9ydGVkSm9pbk9wZXJhdG9ycycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNUeXBlQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgVGFibGVDYWxjVHlwZUNhcHRpb25zID0gJ3RhYmxlQ2FsY1R5cGVDYXB0aW9ucycsXHJcblxyXG4gIC8vIERQSV9UYWdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRhZ3MgPSAndGFncycsXHJcblxyXG4gIC8vIERQSV9UZXJtVmVjLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRlcm1WZWMgPSAndGVybVZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25MaXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFVJQXV0b21hdGlvbkxpc3QgPSAndWlBdXRvbWF0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lVmFsaWRDdXN0b21MYWJlbFRhZ3MsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVmZXJlbmNlTGluZVZhbGlkQ3VzdG9tTGFiZWxUYWdzID0gJ3ZhbGlkUmVmZXJlbmNlTGluZUN1c3RvbUxhYmVsVGFncycsXHJcblxyXG4gIC8vIERQSV9Mb2NhbGl6ZWRLZXl3b3JkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBMb2NhbGl6ZWRLZXl3b3JkcyA9ICdsb2NhbGl6ZWRLZXl3b3JkcycsXHJcblxyXG4gIC8vIERQSV9BdmFpbGFibGVDYWxlbmRhcnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQXZhaWxhYmxlQ2FsZW5kYXJzID0gJ2F2YWlsYWJsZUNhbGVuZGFycycsXHJcblxyXG4gIC8vIERQSV9TaGVldHNUb0JlRGVsZXRlZE9ySGlkZGVuLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNoZWV0c1RvQmVEZWxldGVkT3JIaWRkZW4gPSAnc2hlZXRzVG9CZURlbGV0ZWRPckhpZGRlbicsXHJcblxyXG4gIC8vIERQSV9BZGRTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQWRkU2hlZXRzID0gJ2FkZFNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9OYW1lc09mU3Vic2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE5hbWVzT2ZTdWJzaGVldHMgPSAnbmFtZXNPZlN1YnNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVtb3ZlU2hlZXRzID0gJ3JlbW92ZVNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9TY3JvbGxPZmZzZXRTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2Nyb2xsT2Zmc2V0U2hlZXRzID0gJ3Njcm9sbE9mZnNldFNoZWV0cycsXHJcblxyXG4gIC8vIERQSV9TaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgU2hlZXRzID0gJ3NoZWV0cycsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VXb3Jrc2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNvdXJjZVdvcmtzaGVldHMgPSAnc291cmNlV29ya3NoZWV0cycsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRFeGNsdWRlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBUYXJnZXRFeGNsdWRlcyA9ICd0YXJnZXRFeGNsdWRlJyxcclxuXHJcbiAgLy8gRFBJX1RhcmdldFdvcmtzaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgVGFyZ2V0V29ya3NoZWV0cyA9ICd0YXJnZXRXb3Jrc2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX1RpbGVVUkxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFRpbGVVUkxzID0gJ3RpbGVVcmxzJyxcclxuXHJcbiAgLy8gRFBJX0RldGFpbHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRGV0YWlscyA9ICdkZXRhaWxzJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGRDYXB0aW9ucyA9ICdmaWVsZENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodENhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEhpZ2hsaWdodENhcHRpb25zID0gJ2hpZ2hsaWdodENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xldmVsQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTGV2ZWxDYXB0aW9ucyA9ICdsZXZlbENhcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xldmVsTGVhZlZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBMZXZlbExlYWZWYWx1ZXMgPSAnbGV2ZWxMZWFmVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX1N1YnN0aXR1dGlvblZhcmlhYmxlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBTdWJzdGl0dXRpb25WYXJpYWJsZXMgPSAnc3Vic3RpdHV0aW9uVmFyaWFibGVzJyxcclxuXHJcbiAgLy8gRFBJX1N1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFN1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzID0gJ3N1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX0h0bWxUb29sdGlwcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBIdG1sVG9vbHRpcHMgPSAnaHRtbFRvb2x0aXBzJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgSW52YWxpZEZpZWxkcyA9ICdpbnZhbGlkRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX05hbWVzT2ZDb2x1bW5zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIE5hbWVzT2ZDb2x1bW5zID0gJ25hbWVzT2ZDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX05hbWVzT2ZGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTmFtZXNPZkZpZWxkcyA9ICduYW1lc09mRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZWREYXRhc291cmNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZWZlcmVuY2VkRGF0YXNvdXJjZXMgPSAncmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NTU0F0dHJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBDU1NBdHRycyA9ICdjc3NBdHRycycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBEYXRhU291cmNlTWFwID0gJ2RhdGFTb3VyY2VNYXAnLFxyXG5cclxuICAvLyBEUElfRXZlbnRQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBFdmVudFBhcmFtZXRlcnMgPSAnZXZlbnRQYXJhbWV0ZXJzJyxcclxuXHJcbiAgLy8gRFBJX0V4Y2VwdGlvbkF0dHJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBFeGNlcHRpb25BdHRycyA9ICdleGNlcHRpb25BdHRycycsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkU2hlZXRNZXNzYWdlLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBJbnZhbGlkU2hlZXRNZXNzYWdlID0gJ2ludmFsaWRTaGVldE1lc3NhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX01hcEJveERlZmF1bHRTdHlsZSwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgTWFwQm94RGVmYXVsdFN0eWxlID0gJ21hcGJveERlZmF1bHRTdHlsZXMnLFxyXG5cclxuICAvLyBEUElfUGFuZUZvcm1hdHRpbmdzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBQYW5lRm9ybWF0dGluZ3MgPSAncGFuZUZvcm1hdHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZU5hbWVXaXRoQ2FwdGlvbiwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXHJcbiAgU291cmNlTmFtZVdpdGhDYXB0aW9uID0gJ3NvdXJjZU5hbWVXaXRoQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uQ29sb3JNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIENvbm5lY3Rpb25Db2xvck1hcCA9ICdjb25uZWN0aW9uQ29sb3JNYXAnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0TmFtZVdpdGhDYXB0aW9uLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBUYXJnZXROYW1lV2l0aENhcHRpb24gPSAndGFyZ2V0TmFtZVdpdGhDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1ZpZXdJZHMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIFZpZXdJZHMgPSAndmlld0lkcycsXHJcblxyXG4gIC8vIERQSV9BZGRJblNldHRpbmdzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBBZGRJblNldHRpbmdzID0gJ2FkZEluU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUljb25zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBEYXRhc291cmNlSWNvbnMgPSAnZGF0YXNvdXJjZUljb25zJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZvcm1hdHRlZFRleHQgPSAnZm9ybWF0dGVkVGV4dCcsXHJcblxyXG4gIC8vIERQSV9JY29uVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSWNvblRvb2x0aXAgPSAnaWNvblRvb2x0aXAnLFxyXG5cclxuICAvLyBEUElfVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRpdGxlID0gJ3RpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1Rvb2x0aXAsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRvb2x0aXAgPSAndG9vbHRpcCcsXHJcblxyXG4gIC8vIERQSV9ab25lVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgWm9uZVRleHQgPSAnem9uZVRleHQnLFxyXG5cclxuICAvLyBEUElfQWxpZ25tZW50RmxhZ3MsIGhhdmluZyB0eXBlIGludFxyXG4gIEFsaWdubWVudEZsYWdzID0gJ2FsaWdubWVudEZsYWdzJyxcclxuXHJcbiAgLy8gRFBJX0FscGhhTGV2ZWwsIGhhdmluZyB0eXBlIGludFxyXG4gIEFscGhhTGV2ZWwgPSAnYWxwaGFMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9Bbm92YURGLCBoYXZpbmcgdHlwZSBpbnRcclxuICBBbm92YURGID0gJ2Fub3ZhRGYnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBBdFRoZUxldmVsSW5kZXggPSAnYXRUaGVMZXZlbEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0F1dG9tYXRpY0RyaWxsSWR4SW5WZWN0b3IsIGhhdmluZyB0eXBlIGludFxyXG4gIEF1dG9tYXRpY0RyaWxsSWR4SW5WZWN0b3IgPSAnYXV0b21hdGljRHJpbGxJZHhWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQXV0b1NpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIEF1dG9TaXplID0gJ2F1dG9tYXRpY1NpemUnLFxyXG5cclxuICAvLyBEUElfQmFzZUNvb3JkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBCYXNlQ29vcmQgPSAnYmFzZUNvb3JkJyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFZGl0b3JDdXJzb3JQb3NQb3N0RHJvcCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ2FsY0VkaXRvckN1cnNvclBvc1Bvc3REcm9wID0gJ2NhbGNFZGl0b3JDdXJzb3JQb3NQb3N0RHJvcCcsXHJcblxyXG4gIC8vIERQSV9DYWxjRWRpdG9yRHJvcFBvcywgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ2FsY0VkaXRvckRyb3BQb3MgPSAnY2FsY0VkaXRvckRyb3BQb3MnLFxyXG5cclxuICAvLyBEUElfQ2FsY0VkaXRvclRleHRTZWxlY3Rpb25FbmRQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIENhbGNFZGl0b3JUZXh0U2VsZWN0aW9uRW5kUG9zID0gJ2NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uRW5kUG9zJyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uU3RhcnRQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIENhbGNFZGl0b3JUZXh0U2VsZWN0aW9uU3RhcnRQb3MgPSAnY2FsY0VkaXRvclRleHRTZWxlY3Rpb25TdGFydFBvcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbklkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDYXRlZ29yaWNhbEJpbklkID0gJ2NhdGVnb3JpY2FsQmluSWQnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaW5kQ29udHJvbGxlcklkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDYXRlZ29yaWNhbEZpbmRDb250cm9sbGVySWQgPSAnY2F0ZWdvcmljYWxGaW5kQ29udHJvbGxlcklkJyxcclxuXHJcbiAgLy8gRFBJX0NsYXVzZVRvTW9kaWZ5SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIENsYXVzZVRvTW9kaWZ5SW5kZXggPSAnY2xhdXNlVG9Nb2RpZnlJbmRleCcsXHJcblxyXG4gIC8vIERQSV9DbGllbnRSZW5kZXJQaXhlbExpbWl0LCBoYXZpbmcgdHlwZSBpbnRcclxuICBDbGllbnRSZW5kZXJQaXhlbExpbWl0ID0gJ2NsaWVudFJlbmRlclBpeGVsTGltaXQnLFxyXG5cclxuICAvLyBEUElfQ29sQ291bnQsIGhhdmluZyB0eXBlIGludFxyXG4gIENvbENvdW50ID0gJ2NvbENvdW50JyxcclxuXHJcbiAgLy8gRFBJX0NvbFdpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb2xXaWR0aCA9ICdjb2xXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5MZXZlbHMsIGhhdmluZyB0eXBlIGludFxyXG4gIENvbHVtbkxldmVscyA9ICdjb2x1bW5MZXZlbHMnLFxyXG5cclxuICAvLyBEUElfQ29sdW1uTnVtYmVyLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb2x1bW5OdW1iZXIgPSAnY29sdW1uTnVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbldpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb2x1bW5XaWR0aCA9ICdjb2x1bW5XaWR0aCcsXHJcblxyXG4gIC8vIERQSV9Db250ZW50SGVpZ2h0LCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb250ZW50SGVpZ2h0ID0gJ2NvbnRlbnRIJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRlbnRXaWR0aCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ29udGVudFdpZHRoID0gJ2NvbnRlbnRXJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRlbnRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDb250ZW50WCA9ICdjb250ZW50WCcsXHJcblxyXG4gIC8vIERQSV9Db250ZW50WSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ29udGVudFkgPSAnY29udGVudFknLFxyXG5cclxuICAvLyBEUElfQ29vcmRpbmF0ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ29vcmRpbmF0ZSA9ICdjb29yZCcsXHJcblxyXG4gIC8vIERQSV9DdXJEYXRlQWdnLCBoYXZpbmcgdHlwZSBpbnRcclxuICBDdXJEYXRlQWdnID0gJ2N1ckRhdGVBZ2cnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudEN1c3RWaWV3SWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEN1cnJlbnRDdXN0Vmlld0lkID0gJ2N1cnJlbnRDdXN0b21WaWV3SWQnLFxyXG5cclxuICAvLyBEUElfQ3VzdG9tU3BsaXRDaGFyYWN0ZXJDb3VudFNlcGFyYXRvciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgQ3VzdG9tU3BsaXRDaGFyYWN0ZXJDb3VudFNlcGFyYXRvciA9ICdjdXN0b21TcGxpdENoYXJhY3RlckNvdW50U2VwYXJhdG9yJyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbVNwbGl0RGVzaXJlZFNwbGl0Q291bnQsIGhhdmluZyB0eXBlIGludFxyXG4gIEN1c3RvbVNwbGl0RGVzaXJlZFNwbGl0Q291bnQgPSAnY3VzdG9tU3BsaXREZXNpcmVkU3BsaXRDb3VudCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRHcmlkU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRGFzaGJvYXJkR3JpZFNpemUgPSAnZGFzaGJvYXJkR3JpZFNpemUnLFxyXG5cclxuICAvLyBEUElfRGF0YUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBEYXRhSW5kZXggPSAnZGF0YUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0RlY2ltYWxQbGFjZXMsIGhhdmluZyB0eXBlIGludFxyXG4gIERlY2ltYWxQbGFjZXMgPSAnZGVjaW1hbFBsYWNlcycsXHJcblxyXG4gIC8vIERQSV9EZWx0YVRpbWUsIGhhdmluZyB0eXBlIGludFxyXG4gIERlbHRhVGltZSA9ICdkZWx0YVRpbWUnLFxyXG5cclxuICAvLyBEUElfRGVzdFBpeCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRGVzdFBpeCA9ICdkZXN0UGl4JyxcclxuXHJcbiAgLy8gRFBJX0RldmljZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBEZXZpY2VJbmRleCA9ICdkZXZpY2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9EdXJhdGlvbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRHVyYXRpb24gPSAnZHVyYXRpb24nLFxyXG5cclxuICAvLyBEUElfRW5kUHRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFbmRQdFggPSAnZW5kWCcsXHJcblxyXG4gIC8vIERQSV9FbmRQdFksIGhhdmluZyB0eXBlIGludFxyXG4gIEVuZFB0WSA9ICdlbmRZJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yTGVuLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFcnJvckxlbiA9ICdsZW5ndGhPZkNhbGNPZkVycm9yJyxcclxuXHJcbiAgLy8gRFBJX0Vycm9yUG9zLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFcnJvclBvcyA9ICdzdGFydFBvc2l0aW9uRm9yRXJyb3InLFxyXG5cclxuICAvLyBEUElfRXhjZXB0aW9uRXJyb3JNZXNzYWdlSWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEV4Y2VwdGlvbkVycm9yTWVzc2FnZUlkID0gJ2V4Y2VwdGlvbkVycm9yTWVzc2FnZUlkJyxcclxuXHJcbiAgLy8gRFBJX0V4dGVudHNILCBoYXZpbmcgdHlwZSBpbnRcclxuICBFeHRlbnRzSCA9ICdleHRlbnRzSGVpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX0V4dGVudHNXLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFeHRlbnRzVyA9ICdleHRlbnRzV2lkdGgnLFxyXG5cclxuICAvLyBEUElfRXh0ZW50c1gsIGhhdmluZyB0eXBlIGludFxyXG4gIEV4dGVudHNYID0gJ2V4dGVudHNYJyxcclxuXHJcbiAgLy8gRFBJX0V4dGVudHNZLCBoYXZpbmcgdHlwZSBpbnRcclxuICBFeHRlbnRzWSA9ICdleHRlbnRzWScsXHJcblxyXG4gIC8vIERQSV9GaWVsZEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaWVsZEluZGV4ID0gJ2ZpZWxkSW5kZXgnLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lSWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEZpZWxkTmFtZUlkID0gJ2ZpZWxkTmFtZUlkJyxcclxuXHJcbiAgLy8gRFBJX0ZpcnN0RGF5T2ZXZWVrLCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXJzdERheU9mV2VlayA9ICdmaXJzdERheU9mV2VlaycsXHJcblxyXG4gIC8vIERQSV9GaXJzdExpbmtlZExldmVsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXJzdExpbmtlZExldmVsID0gJ2ZpcnN0TGlua2VkTGV2ZWwnLFxyXG5cclxuICAvLyBEUElfRmlyc3RWYWx1ZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXJzdFZhbHVlSW5kZXggPSAnZmlyc3RWYWx1ZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0ZpeGVkU2l6ZVByZXNldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBGaXhlZFNpemVQcmVzZXRJbmRleCA9ICdmaXhlZFNpemVQcmVzZXRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9Gb2N1c0l0ZW1JbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgRm9jdXNJdGVtSW5kZXggPSAnZm9jdXNJdGVtSW5kZXgnLFxyXG5cclxuICAvLyBEUElfRm9udFNpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIEZvbnRTaXplID0gJ2ZvbnRTaXplJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0SW50UmFuZ2VFbmQsIGhhdmluZyB0eXBlIGludFxyXG4gIEZvcmVjYXN0SW50UmFuZ2VFbmQgPSAnZm9yZWNhc3RJbnRSYW5nZUVuZCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdEludFJhbmdlU3RhcnQsIGhhdmluZyB0eXBlIGludFxyXG4gIEZvcmVjYXN0SW50UmFuZ2VTdGFydCA9ICdmb3JlY2FzdEludFJhbmdlU3RhcnQnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25IZWxwSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIEZ1bmN0aW9uSGVscEluZGV4ID0gJ2Z1bmN0aW9uSGVscEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hNYXhSZXN1bHRzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBHZW9ncmFwaGljU2VhcmNoTWF4UmVzdWx0cyA9ICdnZW9ncmFwaGljU2VhcmNoTWF4UmVzdWx0cycsXHJcblxyXG4gIC8vIERQSV9IZWlnaHQsIGhhdmluZyB0eXBlIGludFxyXG4gIEhlaWdodCA9ICdoJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUxldmVsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBIaWVyYXJjaHlMZXZlbCA9ICdoaWVyYXJjaHlMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlMZXZlbExvYWRlZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSGllcmFyY2h5TGV2ZWxMb2FkZWQgPSAnaGllcmFyY2h5TGV2ZWxMb2FkZWQnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5TGV2ZWxNaW5pbXVtLCBoYXZpbmcgdHlwZSBpbnRcclxuICBIaWVyYXJjaHlMZXZlbE1pbmltdW0gPSAnaGllcmFyY2h5TGV2ZWxNaW5pbXVtJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUxvYWRMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSGllcmFyY2h5TG9hZExpbWl0ID0gJ2hpZXJhcmNoeUxvYWRMaW1pdCcsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlTZWxlY3RDb250cm9sbGVySWQsIGhhdmluZyB0eXBlIGludFxyXG4gIEhpZXJhcmNoeVNlbGVjdENvbnRyb2xsZXJJZCA9ICdoaWVyYXJjaHlTZWxlY3RDb250cm9sbGVySWQnLFxyXG5cclxuICAvLyBEUElfSG9yelRleHRDZWxsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBIb3J6VGV4dENlbGwgPSAnaG9yelRleHRDZWxsJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIEltYWdlSW5kZXggPSAnaW1hZ2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9JbWFnZVNpemVMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW1hZ2VTaXplTGltaXQgPSAnaW1hZ2VTaXplTGltaXQnLFxyXG5cclxuICAvLyBEUElfVHJhbnNwYXJlbnRMaW5lTWFya3NMaW1pdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVHJhbnNwYXJlbnRMaW5lTWFya3NMaW1pdCA9ICd0cmFuc3BhcmVudExpbmVNYXJrc0xpbWl0JyxcclxuXHJcbiAgLy8gRFBJX0luZGVudCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZW50ID0gJ2luZGVudCcsXHJcblxyXG4gIC8vIERQSV9JbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXggPSAnaWR4JyxcclxuXHJcbiAgLy8gRFBJX0luZGV4RnJvbSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhGcm9tID0gJ2luZGV4RnJvbScsXHJcblxyXG4gIC8vIERQSV9JbmRleE9mZnNldCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhPZmZzZXQgPSAnaW5kZXhPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfSW5kZXhSZWxhdGl2ZURhdGVGaWVsZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhSZWxhdGl2ZURhdGVGaWVsZCA9ICdpbmRpZXhSZWxhdGl2ZURhdGVGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9JbmRleFNlbGVjdGVkSXRlbSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhTZWxlY3RlZEl0ZW0gPSAnaW5kZXhTZWxlY3RlZEl0ZW0nLFxyXG5cclxuICAvLyBEUElfSW5kZXhUbywgaGF2aW5nIHR5cGUgaW50XHJcbiAgSW5kZXhUbyA9ICdpbmRleFRvJyxcclxuXHJcbiAgLy8gRFBJX0lubGluZUNvbm5lY3Rpb25SZW5hbWVSb3csIGhhdmluZyB0eXBlIGludFxyXG4gIElubGluZUNvbm5lY3Rpb25SZW5hbWVSb3cgPSAnaW5saW5lQ29ubmVjdGlvblJlbmFtZVJvdycsXHJcblxyXG4gIC8vIERQSV9JbnNlcnRQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIEluc2VydFBvcyA9ICdpbnNlcnRQb3MnLFxyXG5cclxuICAvLyBEUElfSXNIYXNEYXRhU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBJc0hhc0RhdGFTdXBwb3J0ZWQgPSAnaXNIYXNEYXRhU3VwcG9ydGVkJyxcclxuXHJcbiAgLy8gRFBJX0xlZnRNYXJnaW4sIGhhdmluZyB0eXBlIGludFxyXG4gIExlZnRNYXJnaW4gPSAnbGVmdE1hcmdpbicsXHJcblxyXG4gIC8vIERQSV9MZWZ0UmlnaHRCb3JkZXJXaWR0aCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTGVmdFJpZ2h0Qm9yZGVyV2lkdGggPSAnbGVmdFJpZ2h0Qm9yZGVyV2lkdGgnLFxyXG5cclxuICAvLyBEUElfTGV2ZWxOdW1iZXIsIGhhdmluZyB0eXBlIGludFxyXG4gIExldmVsTnVtYmVyID0gJ2xldmVsTnVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0xvd2VyQm91bmQsIGhhdmluZyB0eXBlIGludFxyXG4gIExvd2VyQm91bmQgPSAnbG93ZXJCb3VuZCcsXHJcblxyXG4gIC8vIERQSV9NYXBSZXF1ZXN0UGl4ZWxzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXBSZXF1ZXN0UGl4ZWxzID0gJ21hcFJlcXVlc3RQaXhlbHMnLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVGb250U2l6ZVBpeGVscywgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFwU2NhbGVGb250U2l6ZVBpeGVscyA9ICdtYXBTY2FsZUZvbnRTaXplUGl4ZWxzJyxcclxuXHJcbiAgLy8gRFBJX01hcFNjYWxlUmVhZG91dE51bWJlciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFwU2NhbGVSZWFkb3V0TnVtYmVyID0gJ21hcFNjYWxlUmVhZG91dE51bWJlcicsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZVdpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXBTY2FsZVdpZHRoID0gJ21hcFNjYWxlV2lkdGgnLFxyXG5cclxuICAvLyBEUElfTWFwVGlsZVNpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIE1hcFRpbGVTaXplID0gJ21hcFRpbGVTaXplJyxcclxuXHJcbiAgLy8gRFBJX01hcmdpbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFyZ2luID0gJ21hcmdpbicsXHJcblxyXG4gIC8vIERQSV9NYXJnaW5Cb3R0b20sIGhhdmluZyB0eXBlIGludFxyXG4gIE1hcmdpbkJvdHRvbSA9ICdtYXJnaW5Cb3R0b20nLFxyXG5cclxuICAvLyBEUElfTWFyZ2luTGVmdCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWFyZ2luTGVmdCA9ICdtYXJnaW5MZWZ0JyxcclxuXHJcbiAgLy8gRFBJX01hcmdpblJpZ2h0LCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXJnaW5SaWdodCA9ICdtYXJnaW5SaWdodCcsXHJcblxyXG4gIC8vIERQSV9NYXJnaW5Ub3AsIGhhdmluZyB0eXBlIGludFxyXG4gIE1hcmdpblRvcCA9ICdtYXJnaW5Ub3AnLFxyXG5cclxuICAvLyBEUElfTWF4Q2VsbCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWF4Q2VsbCA9ICdtYXhDZWxsJyxcclxuXHJcbiAgLy8gRFBJX01heEl0ZW1TcGFuLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXhJdGVtU3BhbiA9ICdtYXhJdGVtU3BhbicsXHJcblxyXG4gIC8vIERQSV9NYXhQb2x5bm9taWFsRGVncmVlLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNYXhQb2x5bm9taWFsRGVncmVlID0gJ21heERlZ3JlZScsXHJcblxyXG4gIC8vIERQSV9NYXhQb3NpdGlvbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWF4UG9zaXRpb24gPSAnbWF4UG9zaXRpb24nLFxyXG5cclxuICAvLyBEUElfTWF4U2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWF4U2l6ZSA9ICdtYXhTaXplJyxcclxuXHJcbiAgLy8gRFBJX01pbkNlbGwsIGhhdmluZyB0eXBlIGludFxyXG4gIE1pbkNlbGwgPSAnbWluQ2VsbCcsXHJcblxyXG4gIC8vIERQSV9NaW5Qb2x5bm9taWFsRGVncmVlLCBoYXZpbmcgdHlwZSBpbnRcclxuICBNaW5Qb2x5bm9taWFsRGVncmVlID0gJ21pbkRlZ3JlZScsXHJcblxyXG4gIC8vIERQSV9NaW5Qb3NpdGlvbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWluUG9zaXRpb24gPSAnbWluUG9zaXRpb24nLFxyXG5cclxuICAvLyBEUElfTWluU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTWluU2l6ZSA9ICdtaW5TaXplJyxcclxuXHJcbiAgLy8gRFBJX01vZGVsREYsIGhhdmluZyB0eXBlIGludFxyXG4gIE1vZGVsREYgPSAnbW9kZWxEZicsXHJcblxyXG4gIC8vIERQSV9OZXdJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTmV3SW5kZXggPSAnbmV3SW5kZXgnLFxyXG5cclxuICAvLyBEUElfTnVtRGF0YVNvdXJjZXNVc2luZ1NlcnZlciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgTnVtRGF0YVNvdXJjZXNVc2luZ1NlcnZlciA9ICdudW1EYXRhU291cmNlc1VzaW5nU2VydmVyJyxcclxuXHJcbiAgLy8gRFBJX051bUZpbHRlcmVkT2JzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1GaWx0ZXJlZE9icyA9ICdmaWx0ZXJlZE9ic2VydmF0aW9ucycsXHJcblxyXG4gIC8vIERQSV9OdW1Nb2RlbGVkT2JzLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1Nb2RlbGVkT2JzID0gJ21vZGVsZWRPYnNlcnZhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfTnVtTm90Q2x1c3RlcmVkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1Ob3RDbHVzdGVyZWQgPSAnbnVtTm90Q2x1c3RlcmVkJyxcclxuXHJcbiAgLy8gRFBJX051bU51bWVyaWNGaWVsZHMsIGhhdmluZyB0eXBlIGludFxyXG4gIE51bU51bWVyaWNGaWVsZHMgPSAnbnVtTnVtZXJpY0ZpZWxkcycsXHJcblxyXG4gIC8vIERQSV9OdW1PdXRsaWVycywgaGF2aW5nIHR5cGUgaW50XHJcbiAgTnVtT3V0bGllcnMgPSAnbnVtT3V0bGllcnMnLFxyXG5cclxuICAvLyBEUElfTnVtUm93cywgaGF2aW5nIHR5cGUgaW50XHJcbiAgTnVtUm93cyA9ICdudW1Sb3dzJyxcclxuXHJcbiAgLy8gRFBJX051bVNlbGVjdGVkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBOdW1TZWxlY3RlZCA9ICdudW1TZWxlY3RlZCcsXHJcblxyXG4gIC8vIERQSV9PZmZzZXRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBPZmZzZXRYID0gJ29mZnNldFgnLFxyXG5cclxuICAvLyBEUElfT2Zmc2V0WSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgT2Zmc2V0WSA9ICdvZmZzZXRZJyxcclxuXHJcbiAgLy8gRFBJX1BhZGRpbmcsIGhhdmluZyB0eXBlIGludFxyXG4gIFBhZGRpbmcgPSAncGFkZGluZycsXHJcblxyXG4gIC8vIERQSV9QYWRkaW5nQm90dG9tLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYWRkaW5nQm90dG9tID0gJ3BhZGRpbmdCb3R0b20nLFxyXG5cclxuICAvLyBEUElfUGFkZGluZ0xlZnQsIGhhdmluZyB0eXBlIGludFxyXG4gIFBhZGRpbmdMZWZ0ID0gJ3BhZGRpbmdMZWZ0JyxcclxuXHJcbiAgLy8gRFBJX1BhZGRpbmdSaWdodCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFkZGluZ1JpZ2h0ID0gJ3BhZGRpbmdSaWdodCcsXHJcblxyXG4gIC8vIERQSV9QYWRkaW5nVG9wLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYWRkaW5nVG9wID0gJ3BhZGRpbmdUb3AnLFxyXG5cclxuICAvLyBEUElfUGFnZUxvYWRQZXJjZW50YWdlLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYWdlTG9hZFBlcmNlbnRhZ2UgPSAncGFnZUxvYWRQZXJjZW50YWdlJyxcclxuXHJcbiAgLy8gRFBJX1BhbGV0dGVJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFsZXR0ZUluZGV4ID0gJ3BhbGV0dGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9QYW5lU3BlY2lmaWNhdGlvbklkLCBoYXZpbmcgdHlwZSBpbnRcclxuICBQYW5lU3BlY2lmaWNhdGlvbklkID0gJ3BhbmVTcGVjJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckN0cmxJbmNyZW1lbnRzUGVyVGljaywgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFyYW1ldGVyQ3RybEluY3JlbWVudHNQZXJUaWNrID0gJ3BhcmFtZXRlckNvbnRyb2xJbmNyZW1lbnRNdWx0aXBsaWVyJyxcclxuXHJcbiAgLy8gRFBJX1BvbHlub21pYWxEZWdyZWUsIGhhdmluZyB0eXBlIGludFxyXG4gIFBvbHlub21pYWxEZWdyZWUgPSAnZGVncmVlJyxcclxuXHJcbiAgLy8gRFBJX1BvcnQsIGhhdmluZyB0eXBlIGludFxyXG4gIFBvcnQgPSAnZGF0YXNvdXJjZVBvcnQnLFxyXG5cclxuICAvLyBEUElfUG9zaXRpb24sIGhhdmluZyB0eXBlIGludFxyXG4gIFBvc2l0aW9uID0gJ3Bvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1BhcmVudFByb2plY3RJZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUGFyZW50UHJvamVjdElkID0gJ3BhcmVudFByb2plY3RJZCcsXHJcblxyXG4gIC8vIERQSV9SYWRpdXMsIGhhdmluZyB0eXBlIGludFxyXG4gIFJhZGl1cyA9ICdyYWRpdXMnLFxyXG5cclxuICAvLyBEUElfUmVhZG91dE9mZnNldCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVhZG91dE9mZnNldCA9ICdyZWFkb3V0T2Zmc2V0JyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBSZWZlcmVuY2VJbmRleCA9ICdyZWZlcmVuY2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9SZWdpb25IZWlnaHQsIGhhdmluZyB0eXBlIGludFxyXG4gIFJlZ2lvbkhlaWdodCA9ICdyZWdpb25IZWlnaHQnLFxyXG5cclxuICAvLyBEUElfUmVnaW9uV2lkdGgsIGhhdmluZyB0eXBlIGludFxyXG4gIFJlZ2lvbldpZHRoID0gJ3JlZ2lvbldpZHRoJyxcclxuXHJcbiAgLy8gRFBJX1JlbW92ZWREYXRhc291cmNlQ291bnQsIGhhdmluZyB0eXBlIGludFxyXG4gIFJlbW92ZWREYXRhc291cmNlQ291bnQgPSAncmVtb3ZlZERhdGFzb3VyY2VDb3VudCcsXHJcblxyXG4gIC8vIERQSV9SZW1vdmVkU2hlZXRDb3VudCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVtb3ZlZFNoZWV0Q291bnQgPSAncmVtb3ZlZFNoZWV0Q291bnQnLFxyXG5cclxuICAvLyBEUElfUmVzaWR1YWxERiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVzaWR1YWxERiA9ICdyZXNpZHVhbERmJyxcclxuXHJcbiAgLy8gRFBJX1Jlc2l6ZUNvbHVtbiwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVzaXplQ29sdW1uID0gJ3Jlc2l6ZUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9SZXN0YXJ0RXZlcnlJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgUmVzdGFydEV2ZXJ5SW5kZXggPSAncmVzdGFydEV2ZXJ5SW5kZXgnLFxyXG5cclxuICAvLyBEUElfUmlnaHRNYXJnaW4sIGhhdmluZyB0eXBlIGludFxyXG4gIFJpZ2h0TWFyZ2luID0gJ3JpZ2h0TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX1Jvd0NvdW50LCBoYXZpbmcgdHlwZSBpbnRcclxuICBSb3dDb3VudCA9ICdyb3dDb3VudCcsXHJcblxyXG4gIC8vIERQSV9Sb3dIZWlnaHQsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd0hlaWdodCA9ICdyb3dIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfUm93SW5uZXJMZXZlbHMsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd0lubmVyTGV2ZWxzID0gJ3Jvd0lubmVyTGV2ZWxzJyxcclxuXHJcbiAgLy8gRFBJX1Jvd0xldmVscywgaGF2aW5nIHR5cGUgaW50XHJcbiAgUm93TGV2ZWxzID0gJ3Jvd0xldmVscycsXHJcblxyXG4gIC8vIERQSV9Sb3dOdW1iZXIsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd051bWJlciA9ICdyb3dOdW1iZXInLFxyXG5cclxuICAvLyBEUElfUm93V2lkdGgsIGhhdmluZyB0eXBlIGludFxyXG4gIFJvd1dpZHRoID0gJ3Jvd1dpZHRoJyxcclxuXHJcbiAgLy8gRFBJX1NlY29uZExpbmtlZExldmVsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWNvbmRMaW5rZWRMZXZlbCA9ICdzZWNvbmRMaW5rZWRMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9TZWNvbmRWYWx1ZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcclxuICBTZWNvbmRWYWx1ZUluZGV4ID0gJ3NlY29uZFZhbHVlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kc0FnbywgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2Vjb25kc0FnbyA9ICdzZWNvbmRzQWdvJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGlvbkVuZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2VsZWN0aW9uRW5kID0gJ3NlbGVjdGlvbkVuZCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25TdGFydCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2VsZWN0aW9uU3RhcnQgPSAnc2VsZWN0aW9uU3RhcnQnLFxyXG5cclxuICAvLyBEUElfU2hhcGVQYWxldHRlSUQsIGhhdmluZyB0eXBlIGludFxyXG4gIFNoYXBlUGFsZXR0ZUlEID0gJ3NoYXBlUGFsZXR0ZUlkJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNoZWV0SW5kZXggPSAnc2hlZXRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TaGVsZlBvc2l0aW9uSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFNoZWxmUG9zaXRpb25JbmRleCA9ICdzaGVsZlBvc0luZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIFNpemUgPSAnc2l6ZScsXHJcblxyXG4gIC8vIERQSV9TaXplRGlmZmVyZW5jZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU2l6ZURpZmZlcmVuY2UgPSAnc2l6ZURlbHRhJyxcclxuXHJcbiAgLy8gRFBJX1NuYXBEaXN0YW5jZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU25hcERpc3RhbmNlID0gJ3NuYXBEaXN0YW5jZScsXHJcblxyXG4gIC8vIERQSV9TbmFwTG9jYXRpb24sIGhhdmluZyB0eXBlIGludFxyXG4gIFNuYXBMb2NhdGlvbiA9ICdzbmFwTG9jYXRpb24nLFxyXG5cclxuICAvLyBEUElfU29sdmVPcmRlciwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU29sdmVPcmRlciA9ICdzb2x2ZU9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX1NwYWNlQmV0d2VlblBvaW50cywgaGF2aW5nIHR5cGUgaW50XHJcbiAgU3BhY2VCZXR3ZWVuUG9pbnRzID0gJ3NwYWNlQmV0d2VlblBvaW50cycsXHJcblxyXG4gIC8vIERQSV9TdGVwU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU3RlcFNpemUgPSAnc3RlcFNpemUnLFxyXG5cclxuICAvLyBEUElfU3RlcHMsIGhhdmluZyB0eXBlIGludFxyXG4gIFN0ZXBzID0gJ3N0ZXBzJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5UG9pbnRJbmRleCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgU3RvcnlQb2ludEluZGV4ID0gJ2N1cnJlbnRTdG9yeXBvaW50SW5kZXgnLFxyXG5cclxuICAvLyBEUElfU3R5bGVMZW4sIGhhdmluZyB0eXBlIGludFxyXG4gIFN0eWxlTGVuID0gJ3Rva2VuTGVuZ3RoRm9yU3R5bGUnLFxyXG5cclxuICAvLyBEUElfU3R5bGVQb3MsIGhhdmluZyB0eXBlIGludFxyXG4gIFN0eWxlUG9zID0gJ3Rva2VuUG9zaXRpb25Gb3JTdHlsZScsXHJcblxyXG4gIC8vIERQSV9Td2F0Y2hBcmVhV2lkdGgsIGhhdmluZyB0eXBlIGludFxyXG4gIFN3YXRjaEFyZWFXaWR0aCA9ICdzd2F0Y2hXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRCaW5JZCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVGFyZ2V0QmluSWQgPSAndGFyZ2V0QmluSWQnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0UHRYLCBoYXZpbmcgdHlwZSBpbnRcclxuICBUYXJnZXRQdFggPSAndGFyZ2V0WCcsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRQdFksIGhhdmluZyB0eXBlIGludFxyXG4gIFRhcmdldFB0WSA9ICd0YXJnZXRZJyxcclxuXHJcbiAgLy8gRFBJX1RpbGVGYWN0b3IsIGhhdmluZyB0eXBlIGludFxyXG4gIFRpbGVGYWN0b3IgPSAndGlsZUZhY3RvcicsXHJcblxyXG4gIC8vIERQSV9UaXRsZUhlaWdodCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVGl0bGVIZWlnaHQgPSAndGl0bGVIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfVGl0bGVXaWR0aCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVGl0bGVXaWR0aCA9ICd0aXRsZVdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX1RvcEJvdHRvbUJvcmRlcldpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBUb3BCb3R0b21Cb3JkZXJXaWR0aCA9ICd0b3BCb3R0b21Cb3JkZXJXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25MaW5lU2l6ZSwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVUlBdXRvbWF0aW9uTGluZVNpemUgPSAndWlBdXRvbWF0aW9uTGluZVNpemUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uUGFnZVNpemUsIGhhdmluZyB0eXBlIGludFxyXG4gIFVJQXV0b21hdGlvblBhZ2VTaXplID0gJ3VpQXV0b21hdGlvblBhZ2VTaXplJyxcclxuXHJcbiAgLy8gRFBJX1VJRCwgaGF2aW5nIHR5cGUgaW50XHJcbiAgVUlEID0gJ3VpZCcsXHJcblxyXG4gIC8vIERQSV9VcHBlckJvdW5kLCBoYXZpbmcgdHlwZSBpbnRcclxuICBVcHBlckJvdW5kID0gJ3VwcGVyQm91bmQnLFxyXG5cclxuICAvLyBEUElfVmVydFRleHRDZWxsLCBoYXZpbmcgdHlwZSBpbnRcclxuICBWZXJ0VGV4dENlbGwgPSAndmVydFRleHRDZWxsJyxcclxuXHJcbiAgLy8gRFBJX1dpZHRoLCBoYXZpbmcgdHlwZSBpbnRcclxuICBXaWR0aCA9ICd3JyxcclxuXHJcbiAgLy8gRFBJX1gsIGhhdmluZyB0eXBlIGludFxyXG4gIFggPSAneCcsXHJcblxyXG4gIC8vIERQSV9ZLCBoYXZpbmcgdHlwZSBpbnRcclxuICBZID0gJ3knLFxyXG5cclxuICAvLyBEUElfWk9yZGVyLCBoYXZpbmcgdHlwZSBpbnRcclxuICBaT3JkZXIgPSAnek9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVJY29uSW5kZXgsIGhhdmluZyB0eXBlIGludFxyXG4gIFpvbmVJY29uSW5kZXggPSAnem9uZUljb25JbmRleCcsXHJcblxyXG4gIC8vIERQSV9BbGlhc0luZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgQWxpYXNJbmRpY2VzID0gJ2FsaWFzSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9Bbm92YURGVmVjLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEFub3ZhREZWZWMgPSAnYW5vdmFEZlZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9Db2x1bW5JbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIENvbHVtbkluZGljZXMgPSAnY29sdW1uSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9EcmlsbEZpZWxkSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBEcmlsbEZpZWxkSW5kaWNlcyA9ICdkcmlsbEZpZWxkSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJNYXhJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEZpbHRlck1heEluZGljZXMgPSAnZmlsdGVyTWF4SW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJNaW5JbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEZpbHRlck1pbkluZGljZXMgPSAnZmlsdGVyTWluSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJWYWx1ZXNJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIEZpbHRlclZhbHVlc0luZGljZXMgPSAnZmlsdGVyVmFsdWVJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdFN0cmluZ0luZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgRm9ybWF0U3RyaW5nSW5kaWNlcyA9ICdmb3JtYXRzdHJJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdHRlZFZhbEluZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgRm9ybWF0dGVkVmFsSW5kaWNlcyA9ICdmb3JtYXRWYWxJZHhzJyxcclxuXHJcbiAgLy8gRFBJX1BhbGV0dGVJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFBhbGV0dGVJbmRpY2VzID0gJ3BhbGV0dGVzSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9QYW5lSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBQYW5lSW5kaWNlcyA9ICdwYW5lSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9Qb2ludHMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgUG9pbnRzID0gJ3BvaW50cycsXHJcblxyXG4gIC8vIERQSV9RdWlja0ZpbHRlclNldHRpbmdzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFF1aWNrRmlsdGVyU2V0dGluZ3MgPSAncXVpY2tGaWx0ZXJTZXR0aW5ncycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEluZGljZXMsIGhhdmluZyB0eXBlIGludFtdXHJcbiAgU2VsZWN0ZWRJbmRpY2VzID0gJ3NlbGVjdGVkSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9TaGVsZlBvc2l0aW9uSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBTaGVsZlBvc2l0aW9uSW5kaWNlcyA9ICdzaGVsZlBvc0luZGljZXMnLFxyXG5cclxuICAvLyBEUElfVGlsZUJveCwgaGF2aW5nIHR5cGUgaW50W11cclxuICBUaWxlQm94ID0gJ3RpbGVCb3gnLFxyXG5cclxuICAvLyBEUElfVHJhaWxPdmVycmlkZSwgaGF2aW5nIHR5cGUgaW50W11cclxuICBUcmFpbE92ZXJyaWRlID0gJ3RyYWlsT3ZlcnJpZGUnLFxyXG5cclxuICAvLyBEUElfVUlEcywgaGF2aW5nIHR5cGUgaW50W11cclxuICBVSURzID0gJ3VpZHMnLFxyXG5cclxuICAvLyBEUElfVmFsdWVJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFZhbHVlSW5kaWNlcyA9ICd2YWx1ZUluZGljZXMnLFxyXG5cclxuICAvLyBEUElfWENlbGxPZmZzZXRzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFhDZWxsT2Zmc2V0cyA9ICd4Q2VsbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfWFBpeGVsT2Zmc2V0cywgaGF2aW5nIHR5cGUgaW50W11cclxuICBYUGl4ZWxPZmZzZXRzID0gJ3hQaXhlbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfWUNlbGxPZmZzZXRzLCBoYXZpbmcgdHlwZSBpbnRbXVxyXG4gIFlDZWxsT2Zmc2V0cyA9ICd5Q2VsbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfWVBpeGVsT2Zmc2V0cywgaGF2aW5nIHR5cGUgaW50W11cclxuICBZUGl4ZWxPZmZzZXRzID0gJ3lQaXhlbE9mZnNldHMnLFxyXG5cclxuICAvLyBEUElfSW50TWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIGludClcclxuICBJbnRNYXAgPSAnaW50TWFwJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkQXV0aFNldHRpbmdJbmRpY2VzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIGludClcclxuICBTZWxlY3RlZEF1dGhTZXR0aW5nSW5kaWNlcyA9ICdzZWxlY3RlZEF1dGhTZXR0aW5nSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9BY3RpdmVTdG9yeVBvaW50SUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBY3RpdmVTdG9yeVBvaW50SUQgPSAnYWN0aXZlU3RvcnlQb2ludElkJyxcclxuXHJcbiAgLy8gRFBJX0FjdGl2ZVpvbmVJRCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEFjdGl2ZVpvbmVJRCA9ICdhY3RpdmVab25lSWQnLFxyXG5cclxuICAvLyBEUElfQWN0dWFsU2l6ZSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEFjdHVhbFNpemUgPSAnYWN0dWFsU2l6ZScsXHJcblxyXG4gIC8vIERQSV9BZGRJbkRlYnVnUG9ydCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEFkZEluRGVidWdQb3J0ID0gJ2FkZEluRGVidWdQb3J0JyxcclxuXHJcbiAgLy8gRFBJX0FnZ3JlZ2F0aW9uSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBZ2dyZWdhdGlvbkluZGV4ID0gJ2FnZ3JlZ2F0aW9uSW5kZXgnLFxyXG5cclxuICAvLyBEUElfQW5ub3RhdGlvbklELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQW5ub3RhdGlvbklEID0gJ2Fubm90YXRpb25JZCcsXHJcblxyXG4gIC8vIERQSV9Bc3NpZ25lZEFsaWFzQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBBc3NpZ25lZEFsaWFzQ291bnQgPSAnYXNzaWduZWRBbGlhc0NvdW50JyxcclxuXHJcbiAgLy8gRFBJX0NhcGFiaWxpdHlJZCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIENhcGFiaWxpdHlJZCA9ICdjYXBhYmlsaXR5SWQnLFxyXG5cclxuICAvLyBEUElfQ2FyZXRJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIENhcmV0SW5kZXggPSAnY2FyZXRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9DZWxsSUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBDZWxsSUQgPSAnY2VsbElkJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ29sdW1uSW5kZXggPSAnY29sdW1uSW5kZXgnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ29tbWFuZElEID0gJ2lkJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmRJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIENvbW1hbmRJbmRleCA9ICdpbmRleCcsXHJcblxyXG4gIC8vIERQSV9Db250cm9sbGVySWQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBDb250cm9sbGVySWQgPSAnY29udHJvbGxlcklkJyxcclxuXHJcbiAgLy8gRFBJX0NvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ291bnQgPSAnY291bnQnLFxyXG5cclxuICAvLyBEUElfVVJvd0NvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVVJvd0NvdW50ID0gJ3VSb3dDb3VudCcsXHJcblxyXG4gIC8vIERQSV9VQ29sdW1uQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBVQ29sdW1uQ291bnQgPSAndUNvbHVtbkNvdW50JyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRQYWdlLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ3VycmVudFBhZ2UgPSAnY3VycmVudFBhZ2UnLFxyXG5cclxuICAvLyBEUElfRGF0ZVBlcmlvZHNDb3VudCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIERhdGVQZXJpb2RzQ291bnQgPSAnZGF0ZVBlcmlvZHNDb3VudCcsXHJcblxyXG4gIC8vIERQSV9EZWNpbWFscywgaGF2aW5nIHR5cGUgdWludFxyXG4gIERlY2ltYWxzID0gJ2RlY2ltYWxzJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRIZWlnaHQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZWZhdWx0SGVpZ2h0ID0gJ2RlZmF1bHRIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdEl0ZW0sIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZWZhdWx0SXRlbSA9ICdkZWZhdWx0SXRlbScsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0V2lkdGgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZWZhdWx0V2lkdGggPSAnZGVmYXVsdFdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX0RlcHRoLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRGVwdGggPSAnZGVwdGgnLFxyXG5cclxuICAvLyBEUElfRGV0YWlsSUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBEZXRhaWxJRCA9ICdkZXRhaWxJZCcsXHJcblxyXG4gIC8vIERQSV9EcmlsbExldmVsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRHJpbGxMZXZlbCA9ICdkcmlsbExldmVsJyxcclxuXHJcbiAgLy8gRFBJX0R1cGxpY2F0ZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRHVwbGljYXRlSW5kZXggPSAnZHVwbGljYXRlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfRW5kSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBFbmRJbmRleCA9ICdlbmRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZEljb25JZHgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGaWVsZEljb25JZHggPSAnZmllbGRJY29uSWR4JyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckxldmVsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRmlsdGVyTGV2ZWwgPSAnZmlsdGVyTGV2ZWwnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyVGlsZVNpemUsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGaWx0ZXJUaWxlU2l6ZSA9ICdmaWx0ZXJUaWxlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9GaXNjYWxZZWFyU3RhcnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGaXNjYWxZZWFyU3RhcnQgPSAnZmlzY2FsWWVhclN0YXJ0JyxcclxuXHJcbiAgLy8gRFBJX0ZpdFBhZ2VzQWNyb3NzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRml0UGFnZXNBY3Jvc3MgPSAncGFnZUZpdEhvcml6b250YWwnLFxyXG5cclxuICAvLyBEUElfRml0UGFnZXNEb3duLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRml0UGFnZXNEb3duID0gJ3BhZ2VGaXRWZXJ0aWNhbCcsXHJcblxyXG4gIC8vIERQSV9GaXhlZEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRml4ZWRJbmRleCA9ICdmaXhlZEluZGV4JyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZFpvbmVJRCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEZsaXBib2FyZFpvbmVJRCA9ICdmbGlwYm9hcmRab25lSWQnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RBdXRvUmFuZ2VTaXplLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRm9yZWNhc3RBdXRvUmFuZ2VTaXplID0gJ2ZvcmVjYXN0QXV0b1JhbmdlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdEVuZE9mUmFuZ2UsIGhhdmluZyB0eXBlIHVpbnRcclxuICBGb3JlY2FzdEVuZE9mUmFuZ2UgPSAnZm9yZWNhc3RFbmRPZlJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0SWdub3JlTGFzdCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEZvcmVjYXN0SWdub3JlTGFzdCA9ICdmb3JlY2FzdElnbm9yZUxhc3QnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3ROZXh0UmFuZ2VTaXplLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgRm9yZWNhc3ROZXh0UmFuZ2VTaXplID0gJ2ZvcmVjYXN0TmV4dFJhbmdlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9Hcm91cEZsYWdzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgR3JvdXBGbGFncyA9ICdncm91cEZsYWcnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5TGV2ZWxzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgSGllcmFyY2h5TGV2ZWxzID0gJ2hpZXJhcmNoeUxldmVscycsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlNZW1iZXJJZCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEhpZXJhcmNoeU1lbWJlcklkID0gJ2hpZXJhcmNoeU1lbWJlcklkJyxcclxuXHJcbiAgLy8gRFBJX0hpdFRlc3RGbGFncywgaGF2aW5nIHR5cGUgdWludFxyXG4gIEhpdFRlc3RGbGFncyA9ICdoaXRUZXN0RmxhZ3MnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VIZWlnaHQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBJbWFnZUhlaWdodCA9ICdpbWFnZUhlaWdodCcsXHJcblxyXG4gIC8vIERQSV9JbWFnZVdpZHRoLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgSW1hZ2VXaWR0aCA9ICdpbWFnZVdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1JbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEl0ZW1JbmRleCA9ICdpdGVtSW5kZXgnLFxyXG5cclxuICAvLyBEUElfSXRlbUluZGV4MSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIEl0ZW1JbmRleDEgPSAnaXRlbUluZGV4MScsXHJcblxyXG4gIC8vIERQSV9MaW5lSGVpZ2h0LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTGluZUhlaWdodCA9ICdsaW5lSGVpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX01hcEludGVybWVkaWF0ZUxldmVscywgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1hcEludGVybWVkaWF0ZUxldmVscyA9ICdtYXBJbnRlcm1lZGlhdGVMZXZlbHMnLFxyXG5cclxuICAvLyBEUElfTWFwV29ybGRSZXBlYXRzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWFwV29ybGRSZXBlYXRzID0gJ21hcFdvcmxkUmVwZWF0cycsXHJcblxyXG4gIC8vIERQSV9NYXhBbHBoYSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1heEFscGhhID0gJ21heEFscGhhJyxcclxuXHJcbiAgLy8gRFBJX01heEhlaWdodCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1heEhlaWdodCA9ICdtYXhIZWlnaHQnLFxyXG5cclxuICAvLyBEUElfTWF4TnVtYmVyV2ViTGlzdEl0ZW1zLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWF4TnVtYmVyV2ViTGlzdEl0ZW1zID0gJ21heE51bWJlcldlYkxpc3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9NYXhQcmV2T3JOZXh0VmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWF4UHJldk9yTmV4dFZhbHVlcyA9ICdtYXhQcmV2T3JOZXh0VmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX01heFJvd3MsIGhhdmluZyB0eXBlIHVpbnRcclxuICBNYXhSb3dzID0gJ21heFJvd3MnLFxyXG5cclxuICAvLyBEUElfTWF4VHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWF4VHJhbnNwYXJlbmN5ID0gJ2NvbG9yTWF4VHJhbnNwYXJlbmN5VmFsdWUnLFxyXG5cclxuICAvLyBEUElfTWF4V2lkdGgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBNYXhXaWR0aCA9ICdtYXhXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9NaW5Db2x1bW5zLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTWluQ29sdW1ucyA9ICdtaW5Db2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX01pbkhlaWdodCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1pbkhlaWdodCA9ICdtaW5IZWlnaHQnLFxyXG5cclxuICAvLyBEUElfTWluUHJldk9yTmV4dFZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1pblByZXZPck5leHRWYWx1ZXMgPSAnbWluUHJldk9yTmV4dFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9NaW5UcmFuc3BhcmVuY3ksIGhhdmluZyB0eXBlIHVpbnRcclxuICBNaW5UcmFuc3BhcmVuY3kgPSAnY29sb3JNaW5UcmFuc3BhcmVuY3lWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9NaW5XaWR0aCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIE1pbldpZHRoID0gJ21pbldpZHRoJyxcclxuXHJcbiAgLy8gRFBJX05lc3RlZENhbGNzSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBOZXN0ZWRDYWxjc0luZGV4ID0gJ25lc3RlZENhbGNzSW5kZXgnLFxyXG5cclxuICAvLyBEUElfTmV4dFZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxyXG4gIE5leHRWYWx1ZXMgPSAnbmV4dFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9Ob2RlTGV2ZWwsIGhhdmluZyB0eXBlIHVpbnRcclxuICBOb2RlTGV2ZWwgPSAnbm9kZUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX051bUhpZ2hsaWdodGVkLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTnVtSGlnaGxpZ2h0ZWQgPSAnbnVtSGlnaGxpZ2h0ZWQnLFxyXG5cclxuICAvLyBEUElfTnVtYmVyT2ZOZXh0VmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTnVtYmVyT2ZOZXh0VmFsdWVzID0gJ251bWJlck9mTmV4dFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9OdW1iZXJPZlByZXZWYWx1ZXMsIGhhdmluZyB0eXBlIHVpbnRcclxuICBOdW1iZXJPZlByZXZWYWx1ZXMgPSAnbnVtYmVyT2ZQcmV2VmFsdWVzJyxcclxuXHJcbiAgLy8gRFBJX09iamVjdElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgT2JqZWN0SUQgPSAnb2JqZWN0SWQnLFxyXG5cclxuICAvLyBEUElfT3JkZXJpbmdUeXBlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBPcmRlcmluZ1R5cGVJbmRleCA9ICdvcmRlcmluZ1R5cGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9QYWdlQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYWdlQ291bnQgPSAncGFnZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VGYWRlRW5kLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZUZhZGVFbmQgPSAnZmFkZUVuZCcsXHJcblxyXG4gIC8vIERQSV9QYWdlRmFkZVN0YXJ0LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZUZhZGVTdGFydCA9ICdmYWRlU3RhcnQnLFxyXG5cclxuICAvLyBEUElfUGFnZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZUluZGV4ID0gJ3BhZ2VJbmRleCcsXHJcblxyXG4gIC8vIERQSV9QYWdlTnVtYmVyLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZU51bWJlciA9ICdwYWdlTnVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VTY2FsZVBlcmNlbnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYWdlU2NhbGVQZXJjZW50ID0gJ3BhZ2VTY2FsZVBlcmNlbnQnLFxyXG5cclxuICAvLyBEUElfUGFnZVRyYWlsTGVuZ3RoLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFnZVRyYWlsTGVuZ3RoID0gJ2hpc3RvcnlMZW5ndGgnLFxyXG5cclxuICAvLyBEUElfUGFsZXR0ZUZsYWdzVmFsLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUGFsZXR0ZUZsYWdzVmFsID0gJ3BhbGV0dGVGbGFnc1ZhbCcsXHJcblxyXG4gIC8vIERQSV9QYW5lSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYW5lSW5kZXggPSAncGFuZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtQ3RybERpc3BsYXlGbGFncywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFBhcmFtQ3RybERpc3BsYXlGbGFncyA9ICdwYXJhbURpc3BsYXlGbGFncycsXHJcblxyXG4gIC8vIERQSV9QYXJlbnRab25lSUQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQYXJlbnRab25lSUQgPSAncGFyZW50Wm9uZUlkJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVQYXJhbSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFBlcmNlbnRpbGVQYXJhbSA9ICdwZXJjZW50aWxlUGFyYW0nLFxyXG5cclxuICAvLyBEUElfUHJldlZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFByZXZWYWx1ZXMgPSAncHJldlZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoUmVzdWx0U3RyaW5nSWQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBQdWJsaXNoUmVzdWx0U3RyaW5nSWQgPSAncHVibGlzaFJlc3VsdFN0cmluZ0lkJyxcclxuXHJcbiAgLy8gRFBJX1FSR0JDb2xvciwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFFSR0JDb2xvciA9ICdxcmdiQ29sb3InLFxyXG5cclxuICAvLyBEUElfUmFuZ2VOLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUmFuZ2VOID0gJ3JhbmdlTicsXHJcblxyXG4gIC8vIERQSV9SYW5rVHlwZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgUmFua1R5cGVJbmRleCA9ICdyYW5rVHlwZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1JlbmRlckNvbXBsZXhpdHksIGhhdmluZyB0eXBlIHVpbnRcclxuICBSZW5kZXJDb21wbGV4aXR5ID0gJ3JlbmRlckNvbXBsZXhpdHlMaW1pdCcsXHJcblxyXG4gIC8vIERQSV9Sb3dJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFJvd0luZGV4ID0gJ3Jvd0luZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkQXV0aFNldHRpbmdJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNlbGVjdGVkQXV0aFNldHRpbmdJbmRleCA9ICdzZWxlY3RlZEF1dGhTZXR0aW5nSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRGdWxsU2NoZWR1bGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNlbGVjdGVkRnVsbFNjaGVkdWxlSW5kZXggPSAnc2VsZWN0ZWRGdWxsU2NoZWR1bGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZEluY3JTY2hlZHVsZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2VsZWN0ZWRJbmNyU2NoZWR1bGVJbmRleCA9ICdzZWxlY3RlZEluY3JTY2hlZHVsZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGVkUHVibGlzaENob2ljZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2VsZWN0ZWRQdWJsaXNoQ2hvaWNlSW5kZXggPSAnc2VsZWN0ZWRQdWJsaXNoQ2hvaWNlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRNZW1iZXJDb3VudCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNlbGVjdGVkTWVtYmVyQ291bnQgPSAnc2VsZWN0ZWRNZW1iZXJDb3VudCcsXHJcblxyXG4gIC8vIERQSV9TaGFwZUlELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2hhcGVJRCA9ICdzaGFwZUlkJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0VXNlQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTaGVldFVzZUNvdW50ID0gJ3VzZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmSXRlbUlELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU2hlbGZJdGVtSUQgPSAnc2hlbGZJdGVtSWQnLFxyXG5cclxuICAvLyBEUElfU2lnRmlncywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFNpZ0ZpZ3MgPSAnc2lnRmlncycsXHJcblxyXG4gIC8vIERQSV9Tb3J0QWdnSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTb3J0QWdnSW5kZXggPSAnc29ydEFnZ0luZHZWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfU29ydENvbHVtbkluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU29ydENvbHVtbkluZGV4ID0gJ3NvcnRDb2x1bW5JbmRleCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlyZWN0aW9uSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTb3J0RGlyZWN0aW9uSW5kZXggPSAnc29ydERpcmVjdGlvbkluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1NvcnRGaWVsZEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU29ydEZpZWxkSW5kZXggPSAnc29ydEZpZWxkSW5kZXgnLFxyXG5cclxuICAvLyBEUElfU3RhcnRJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFN0YXJ0SW5kZXggPSAnc3RhcnRJbmRleCcsXHJcblxyXG4gIC8vIERQSV9TdGFydE9mV2VlaywgaGF2aW5nIHR5cGUgdWludFxyXG4gIFN0YXJ0T2ZXZWVrID0gJ3N0YXJ0T2ZXZWVrJyxcclxuXHJcbiAgLy8gRFBJX1N0b3JlSWQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBTdG9yZUlkID0gJ3N0b3JlSWQnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb2ludElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgU3RvcnlQb2ludElEID0gJ3N0b3J5UG9pbnRJZCcsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNUeXBlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBUYWJsZUNhbGNUeXBlSW5kZXggPSAndGFibGVDYWxjVHlwZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlQ2FsY1R5cGVzVXNlZCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRhYmxlQ2FsY1R5cGVzVXNlZCA9ICd0YWJsZUNhbGNUeXBlc1VzZWQnLFxyXG5cclxuICAvLyBEUElfVGVtcGxhdGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRlbXBsYXRlSW5kZXggPSAndGVtcGxhdGVJbmRleCcsXHJcblxyXG4gIC8vIERQSV9UaWxlQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBUaWxlQ291bnQgPSAndGlsZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX1RpbWVvdXRTZWNvbmRzLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVGltZW91dFNlY29uZHMgPSAndGltZW91dFNlY29uZHMnLFxyXG5cclxuICAvLyBEUElfVG9wTiwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRvcE4gPSAndG9wTicsXHJcblxyXG4gIC8vIERQSV9Ub3RhbE51bWJlck9mSXRlbXNJblNldCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFRvdGFsTnVtYmVyT2ZJdGVtc0luU2V0ID0gJ3RvdGFsTnVtYmVyT2ZJdGVtc0luU2V0JyxcclxuXHJcbiAgLy8gRFBJX1RvdGFsTWVtYmVyQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBUb3RhbE1lbWJlckNvdW50ID0gJ3RvdGFsTWVtYmVyQ291bnQnLFxyXG5cclxuICAvLyBEUElfVHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVHJhbnNwYXJlbmN5ID0gJ2NvbG9yVHJhbnNwYXJlbmN5VmFsdWUnLFxyXG5cclxuICAvLyBEUElfVHVwbGVJRCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFR1cGxlSUQgPSAndHVwbGVJZCcsXHJcblxyXG4gIC8vIERQSV9VSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBVSW5kZXggPSAndWluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1VuZG9Qb3NpdGlvbiwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuZG9Qb3NpdGlvbiA9ICd1bmRvUG9zaXRpb24nLFxyXG5cclxuICAvLyBEUElfVW5zaWduZWRXaWR0aCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGggPSAndXcnLFxyXG5cclxuICAvLyBEUElfVW5zaWduZWRXaWR0aEJvdHRvbSwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGhCb3R0b20gPSAndXdiJyxcclxuXHJcbiAgLy8gRFBJX1Vuc2lnbmVkV2lkdGhMZWZ0LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgVW5zaWduZWRXaWR0aExlZnQgPSAndXdsJyxcclxuXHJcbiAgLy8gRFBJX1Vuc2lnbmVkV2lkdGhSaWdodCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGhSaWdodCA9ICd1d3InLFxyXG5cclxuICAvLyBEUElfVW5zaWduZWRXaWR0aFRvcCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFVuc2lnbmVkV2lkdGhUb3AgPSAndXd0JyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBWYWx1ZUluZGV4ID0gJ3ZhbHVlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfVmFsdWVJbnQsIGhhdmluZyB0eXBlIHVpbnRcclxuICBWYWx1ZUludCA9ICd2YWx1ZUludCcsXHJcblxyXG4gIC8vIERQSV9Xb3JsZE9mZnNldCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFdvcmxkT2Zmc2V0ID0gJ3dvcmxkT2Zmc2V0JyxcclxuXHJcbiAgLy8gRFBJX1hEdXBsaWNhdGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFhEdXBsaWNhdGVJbmRleCA9ICd4RHVwbGljYXRlSW5kZXgnLFxyXG5cclxuICAvLyBEUElfWEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgWEluZGV4ID0gJ3hJbmRleCcsXHJcblxyXG4gIC8vIERQSV9ZRHVwbGljYXRlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcclxuICBZRHVwbGljYXRlSW5kZXggPSAneUR1cGxpY2F0ZUluZGV4JyxcclxuXHJcbiAgLy8gRFBJX1lJbmRleCwgaGF2aW5nIHR5cGUgdWludFxyXG4gIFlJbmRleCA9ICd5SW5kZXgnLFxyXG5cclxuICAvLyBEUElfWm9uZUlELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgWm9uZUlEID0gJ3pvbmVJZCcsXHJcblxyXG4gIC8vIERQSV9ab25lWk9yZGVyLCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgWm9uZVpPcmRlciA9ICd6b25lWk9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX0NvbXBvbmVudElELCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgQ29tcG9uZW50SUQgPSAnY29tcG9uZW50SWQnLFxyXG5cclxuICAvLyBEUElfTm9uVGhyZWFkUG9vbFVzZUNvdW50LCBoYXZpbmcgdHlwZSB1aW50XHJcbiAgTm9uVGhyZWFkUG9vbFVzZUNvdW50ID0gJ25vblRocmVhZFBvb2xVc2VDb3VudCcsXHJcblxyXG4gIC8vIERQSV9BZGRyZXNzaW5nSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgQWRkcmVzc2luZ0luZGljZXMgPSAnYWRkcmVzc2luZ0luZGljZXMnLFxyXG5cclxuICAvLyBEUElfQWRkcmVzc2luZ0ludmFsaWRJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBBZGRyZXNzaW5nSW52YWxpZEluZGljZXMgPSAnYWRkcmVzc2luZ0ludmFsaWRJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0NoaWxkWm9uZUlkcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgQ2hpbGRab25lSWRzID0gJ2NoaWxkWm9uZUlkcycsXHJcblxyXG4gIC8vIERQSV9Db2xvckxpc3QsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIENvbG9yTGlzdCA9ICdjb2xvckxpc3QnLFxyXG5cclxuICAvLyBEUElfRHVwbGljYXRlSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgRHVwbGljYXRlSW5kaWNlcyA9ICdkdXBsaWNhdGVJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckFkZEluZGljZXMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEZpbHRlckFkZEluZGljZXMgPSAnZmlsdGVyQWRkSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBGaWx0ZXJJbmRpY2VzID0gJ2ZpbHRlckluZGljZXMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyTGV2ZWxBZGQsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEZpbHRlckxldmVsQWRkID0gJ2ZpbHRlckxldmVsQWRkJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckxldmVsUmVtb3ZlLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBGaWx0ZXJMZXZlbFJlbW92ZSA9ICdmaWx0ZXJMZXZlbFJlbW92ZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMZXZlbHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEZpbHRlckxldmVscyA9ICdmaWx0ZXJMZXZlbHMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyUmVtb3ZlSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgRmlsdGVyUmVtb3ZlSW5kaWNlcyA9ICdmaWx0ZXJSZW1vdmVJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0ZpeGVkVmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBGaXhlZFZhbHVlcyA9ICdmaXhlZFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9IaWVyYXJjaHlNZW1iZXJJZExpc3QsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEhpZXJhcmNoeU1lbWJlcklkTGlzdCA9ICdoaWVyYXJjaHlNZW1iZXJJZExpc3QnLFxyXG5cclxuICAvLyBEUElfSW52YWxpZEluZGljZXMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIEludmFsaWRJbmRpY2VzID0gJ2ludmFsaWRJbmRpY2VzJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1JbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBJdGVtSW5kaWNlcyA9ICdpdGVtSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9MaW5lVHVwbGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIExpbmVUdXBsZUlEcyA9ICdsaW5lVHVwbGVJZHMnLFxyXG5cclxuICAvLyBEUElfT2JqZWN0SURzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBPYmplY3RJRHMgPSAnb2JqZWN0SWRzJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBQYWdlSW5kaWNlcyA9ICdwYWdlSW5kaWNlcycsXHJcblxyXG4gIC8vIERQSV9RUkdCLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBRUkdCID0gJ3FyZ2JMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1FSR0JDb2xvcnMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFFSR0JDb2xvcnMgPSAncXJnYkNvbG9ycycsXHJcblxyXG4gIC8vIERQSV9SZWZMaW5lSUQsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFJlZkxpbmVJRCA9ICdyZWZsaW5lSWQnLFxyXG5cclxuICAvLyBEUElfU2hhcGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFNoYXBlSURzID0gJ3NoYXBlSWRzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBTaGVsZlNlbGVjdGlvbiA9ICdzaGVsZlNlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50SURzLCBoYXZpbmcgdHlwZSB1aW50W11cclxuICBTdG9yeVBvaW50SURzID0gJ3N0b3J5UG9pbnRJZHMnLFxyXG5cclxuICAvLyBEUElfVHVwbGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxyXG4gIFR1cGxlSURzID0gJ3R1cGxlSWRzJyxcclxuXHJcbiAgLy8gRFBJX1dpZHRocywgaGF2aW5nIHR5cGUgdWludFtdXHJcbiAgV2lkdGhzID0gJ3dpZHRocycsXHJcblxyXG4gIC8vIERQSV9VaW50TWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHVpbnQzMl90KVxyXG4gIFVpbnRNYXAgPSAndWludE1hcCcsXHJcblxyXG4gIC8vIERQSV9BbHBoYSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBBbHBoYSA9ICdhbHBoYScsXHJcblxyXG4gIC8vIERQSV9BbmdsZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBBbmdsZSA9ICdhbmdsZScsXHJcblxyXG4gIC8vIERQSV9CcmVha1BvaW50VmFsdWUsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgQnJlYWtQb2ludFZhbHVlID0gJ2JyZWFrUG9pbnRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VQaXhlbFJhdGlvLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIERldmljZVBpeGVsUmF0aW8gPSAnZGV2aWNlUGl4ZWxSYXRpbycsXHJcblxyXG4gIC8vIERQSV9EaXN0YW5jZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBEaXN0YW5jZSA9ICdkaXN0YW5jZScsXHJcblxyXG4gIC8vIERQSV9GbG9hdFgsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRmxvYXRYID0gJ2Zsb2F0WCcsXHJcblxyXG4gIC8vIERQSV9GbG9hdFksIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRmxvYXRZID0gJ2Zsb2F0WScsXHJcblxyXG4gIC8vIERQSV9Gb2dEZXNhdHVyYXRpb24sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRm9nRGVzYXR1cmF0aW9uID0gJ2ZvZ0Rlc2F0dXJhdGlvbicsXHJcblxyXG4gIC8vIERQSV9NYXJrU2NhbGUsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFya1NjYWxlID0gJ21hcmtTY2FsZScsXHJcblxyXG4gIC8vIERQSV9NYXJrU2l6ZUluUGl4ZWxVbml0cywgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXJrU2l6ZUluUGl4ZWxVbml0cyA9ICdtYXJrU2l6ZUluUGl4ZWxVbml0cycsXHJcblxyXG4gIC8vIERQSV9Qb2ludFNpemUsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgUG9pbnRTaXplID0gJ3BvaW50U2l6ZScsXHJcblxyXG4gIC8vIERQSV9TdHJva2VXaWR0aCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBTdHJva2VXaWR0aCA9ICdzdHJva2VXaWR0aCcsXHJcblxyXG4gIC8vIERQSV9UZXh0UmVnaW9uT3JpZW50YXRpb24sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgVGV4dFJlZ2lvbk9yaWVudGF0aW9uID0gJ29yaWVudGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zZm9ybUFuZ2xlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFRyYW5zZm9ybUFuZ2xlID0gJ3RyYW5zZm9ybUFuZ2xlJyxcclxuXHJcbiAgLy8gRFBJX1pvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBab29tTGV2ZWwgPSAnem9vbUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX09sZFpvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBPbGRab29tTGV2ZWwgPSAnb2xkWm9vbUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX05ld1pvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBOZXdab29tTGV2ZWwgPSAnbmV3Wm9vbUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX0FzcGVjdFJhdGlvLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEFzcGVjdFJhdGlvID0gJ2FzcGVjdFJhdGlvJyxcclxuXHJcbiAgLy8gRFBJX0JvdHRvbVByaW50TWFyZ2luLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEJvdHRvbVByaW50TWFyZ2luID0gJ2JvdHRvbVByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX0VhcnRoUmFkaXVzLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEVhcnRoUmFkaXVzID0gJ2VhcnRoUmFkaXVzJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0SGVpZ2h0LCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEZsb2F0SGVpZ2h0ID0gJ2Zsb2F0SGVpZ2h0JyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0TGVmdCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBGbG9hdExlZnQgPSAnZmxvYXRMZWZ0JyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0UmFkaXVzLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEZsb2F0UmFkaXVzID0gJ2Zsb2F0UmFkaXVzJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0VG9wLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIEZsb2F0VG9wID0gJ2Zsb2F0VG9wJyxcclxuXHJcbiAgLy8gRFBJX0Zsb2F0V2lkdGgsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgRmxvYXRXaWR0aCA9ICdmbG9hdFdpZHRoJyxcclxuXHJcbiAgLy8gRFBJX0xlZnRQcmludE1hcmdpbiwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBMZWZ0UHJpbnRNYXJnaW4gPSAnbGVmdFByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX01hcENlbnRlckxhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1hcENlbnRlckxhdGl0dWRlID0gJ21hcENlbnRlckxhdGl0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01hcENlbnRlckxvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXBDZW50ZXJMb25naXR1ZGUgPSAnbWFwQ2VudGVyTG9uZ2l0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01hcERpc3BsYXlTY2FsZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXBEaXNwbGF5U2NhbGUgPSAnbWFwRGlzcGxheVNjYWxlJyxcclxuXHJcbiAgLy8gRFBJX01hcE1heFN0cmV0Y2gsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwTWF4U3RyZXRjaCA9ICdtYXBNYXhTdHJldGNoJyxcclxuXHJcbiAgLy8gRFBJX01hcE1heFpvb20sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwTWF4Wm9vbSA9ICdtYXBNYXhab29tJyxcclxuXHJcbiAgLy8gRFBJX01hcE1pblNocmluaywgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXBNaW5TaHJpbmsgPSAnbWFwTWluU2hyaW5rJyxcclxuXHJcbiAgLy8gRFBJX01hcE1pblpvb20sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwTWluWm9vbSA9ICdtYXBNaW5ab29tJyxcclxuXHJcbiAgLy8gRFBJX01hcFJlcXVlc3Rab29tLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1hcFJlcXVlc3Rab29tID0gJ21hcFJlcXVlc3Rab29tJyxcclxuXHJcbiAgLy8gRFBJX01hcFdhc2hvdXQsIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgTWFwV2FzaG91dCA9ICdtYXBXYXNob3V0JyxcclxuXHJcbiAgLy8gRFBJX01heExhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1heExhdGl0dWRlID0gJ21heExhdGl0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01heExvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNYXhMb25naXR1ZGUgPSAnbWF4TG9uZ2l0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01pbkxhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIE1pbkxhdGl0dWRlID0gJ21pbkxhdGl0dWRlJyxcclxuXHJcbiAgLy8gRFBJX01pbkxvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBNaW5Mb25naXR1ZGUgPSAnbWluTG9uZ2l0dWRlJyxcclxuXHJcbiAgLy8gRFBJX1JpZ2h0UHJpbnRNYXJnaW4sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgUmlnaHRQcmludE1hcmdpbiA9ICdyaWdodFByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX1RvcFByaW50TWFyZ2luLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFRvcFByaW50TWFyZ2luID0gJ3RvcFByaW50TWFyZ2luJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk1heGltdW0sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgVUlBdXRvbWF0aW9uTWF4aW11bSA9ICd1aUF1dG9tYXRpb25NYXhpbXVtJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk1pbmltdW0sIGhhdmluZyB0eXBlIGZsb2F0XHJcbiAgVUlBdXRvbWF0aW9uTWluaW11bSA9ICd1aUF1dG9tYXRpb25NaW5pbXVtJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbk9mZnNldCwgaGF2aW5nIHR5cGUgZmxvYXRcclxuICBVSUF1dG9tYXRpb25PZmZzZXQgPSAndWlBdXRvbWF0aW9uT2Zmc2V0JyxcclxuXHJcbiAgLy8gRFBJX1VuaXREaXZpc29yLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFVuaXREaXZpc29yID0gJ3VuaXREaXZpc29yJyxcclxuXHJcbiAgLy8gRFBJX1VuaXRUcmFuc2l0aW9uLCBoYXZpbmcgdHlwZSBmbG9hdFxyXG4gIFVuaXRUcmFuc2l0aW9uID0gJ3VuaXRUcmFuc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9tYXRpY0RyaWxsSWR4LCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgQXV0b21hdGljRHJpbGxJZHggPSAnYXV0b21hdGljRHJpbGxJZHgnLFxyXG5cclxuICAvLyBEUElfRGVzdGluYXRpb25Cb3gsIGhhdmluZyB0eXBlIGZsb2F0W11cclxuICBEZXN0aW5hdGlvbkJveCA9ICdkZXN0Qm94JyxcclxuXHJcbiAgLy8gRFBJX0xvd2VyRW5kLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgTG93ZXJFbmQgPSAnbG93ZXJFbmQnLFxyXG5cclxuICAvLyBEUElfT3Bwb3NpdGVBeGlzLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgT3Bwb3NpdGVBeGlzID0gJ29wcG9zaXRlQXhpcycsXHJcblxyXG4gIC8vIERQSV9Qb2ludHNGLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgUG9pbnRzRiA9ICdwb2ludHNGJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZUJveCwgaGF2aW5nIHR5cGUgZmxvYXRbXVxyXG4gIFNvdXJjZUJveCA9ICdzb3VyY2VCb3gnLFxyXG5cclxuICAvLyBEUElfVHJhbnNmb3JtT2Zmc2V0LCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgVHJhbnNmb3JtT2Zmc2V0ID0gJ3RyYW5zZm9ybU9mZnNldCcsXHJcblxyXG4gIC8vIERQSV9UcmFuc2Zvcm1TY2FsZSwgaGF2aW5nIHR5cGUgZmxvYXRbXVxyXG4gIFRyYW5zZm9ybVNjYWxlID0gJ3RyYW5zZm9ybVNjYWxlJyxcclxuXHJcbiAgLy8gRFBJX1VwcGVyRW5kLCBoYXZpbmcgdHlwZSBmbG9hdFtdXHJcbiAgVXBwZXJFbmQgPSAndXBwZXJFbmQnLFxyXG5cclxuICAvLyBEUElfRmxvYXRNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgZmxvYXQpXHJcbiAgRmxvYXRNYXAgPSAnZmxvYXRNYXAnLFxyXG5cclxuICAvLyBEUElfQkdTUywgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgQkdTUyA9ICdiZXR3ZWVuR3JvdXBTdW1PZlNxdWFyZXMnLFxyXG5cclxuICAvLyBEUElfQ29uZmlkZW5jZUxldmVsLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBDb25maWRlbmNlTGV2ZWwgPSAnY29uZmlkZW5jZUxldmVsJyxcclxuXHJcbiAgLy8gRFBJX0NvbmZpZGVuY2VQZXJjZW50YWdlLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBDb25maWRlbmNlUGVyY2VudGFnZSA9ICdjb25maWRlbmNlUGVyY2VudGFnZScsXHJcblxyXG4gIC8vIERQSV9Eb3VibGVMZWZ0LCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVMZWZ0ID0gJ2RvdWJsZUxlZnQnLFxyXG5cclxuICAvLyBEUElfRG91YmxlVG9wLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVUb3AgPSAnZG91YmxlVG9wJyxcclxuXHJcbiAgLy8gRFBJX0RvdWJsZVZhbHVlLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVWYWx1ZSA9ICdkb3VibGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Eb3VibGVYLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBEb3VibGVYID0gJ2RvdWJsZVgnLFxyXG5cclxuICAvLyBEUElfRG91YmxlWSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgRG91YmxlWSA9ICdkb3VibGVZJyxcclxuXHJcbiAgLy8gRFBJX0ZTdGF0aXN0aWMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIEZTdGF0aXN0aWMgPSAnZlN0YXRpc3RpYycsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJSYW5nZU1heCwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgRmlsdGVyUmFuZ2VNYXggPSAnZmlsdGVyUmFuZ2VNYXgnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyUmFuZ2VNaW4sIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIEZpbHRlclJhbmdlTWluID0gJ2ZpbHRlclJhbmdlTWluJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVTY29yZSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVNjb3JlID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVTY29yZScsXHJcblxyXG4gIC8vIERQSV9IZWlnaHRELCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBIZWlnaHREID0gJ2hlaWdodCcsXHJcblxyXG4gIC8vIERQSV9JbmZsZWN0aW9uRnJhY3Rpb24sIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIEluZmxlY3Rpb25GcmFjdGlvbiA9ICdpbmZsZWN0aW9uRnJhY3Rpb24nLFxyXG5cclxuICAvLyBEUElfSW5mbGVjdGlvblZhbHVlLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBJbmZsZWN0aW9uVmFsdWUgPSAnaW5mbGVjdGlvblZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX01TRSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgTVNFID0gJ21lYW5TcXVhcmVkRXJyb3InLFxyXG5cclxuICAvLyBEUElfTVNNLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBNU00gPSAnbWVhblNxdWFyZWRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZU1hcmdpbk9mRXJyb3IsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIE1hcFNjYWxlTWFyZ2luT2ZFcnJvciA9ICdtYXBTY2FsZU1hcmdpbk9mRXJyb3InLFxyXG5cclxuICAvLyBEUElfTWFya1NpemUsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIE1hcmtTaXplID0gJ21hcmtTaXplJyxcclxuXHJcbiAgLy8gRFBJX01heE1hcmtTaXplLCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBNYXhNYXJrU2l6ZSA9ICdtYXhNYXJrU2l6ZScsXHJcblxyXG4gIC8vIERQSV9NaW5NYXJrU2l6ZSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgTWluTWFya1NpemUgPSAnbWluTWFya1NpemUnLFxyXG5cclxuICAvLyBEUElfTm90Y2hQb3NpdGlvbiwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgTm90Y2hQb3NpdGlvbiA9ICdub3RjaFBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX05vdGNoVmFsdWUsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIE5vdGNoVmFsdWUgPSAnbm90Y2hWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9QVmFsdWUsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBWYWx1ZSA9ICdwVmFsdWUnLFxyXG5cclxuICAvLyBEUElfUGVyY2VudERpbWVuc2lvbnMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBlcmNlbnREaW1lbnNpb25zID0gJ3BlcmNlbnREaW1lbnNpb25zJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRHcm91cHMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBlcmNlbnRHcm91cHMgPSAncGVyY2VudEdyb3VwcycsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50TWVhc3VyZXMsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFBlcmNlbnRNZWFzdXJlcyA9ICdwZXJjZW50TWVhc3VyZXMnLFxyXG5cclxuICAvLyBEUElfUlNxdWFyZWQsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFJTcXVhcmVkID0gJ3JTcXVhcmVkJyxcclxuXHJcbiAgLy8gRFBJX1NTRSwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgU1NFID0gJ3N1bVNxdWFyZWRFcnJvcicsXHJcblxyXG4gIC8vIERQSV9TU00sIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFNTTSA9ICdzdW1TcXVhcmVkTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU3RhbmRhcmRFcnJvciwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgU3RhbmRhcmRFcnJvciA9ICdzdGFuZGFyZEVycm9yJyxcclxuXHJcbiAgLy8gRFBJX1RTUywgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgVFNTID0gJ3RvdGFsU3VtT2ZTcXVhcmVzJyxcclxuXHJcbiAgLy8gRFBJX1dHU1MsIGhhdmluZyB0eXBlIGRvdWJsZVxyXG4gIFdHU1MgPSAnd2l0aGluR3JvdXBTdW1PZlNxdWFyZXMnLFxyXG5cclxuICAvLyBEUElfV2lkdGhELCBoYXZpbmcgdHlwZSBkb3VibGVcclxuICBXaWR0aEQgPSAnd2lkdGgnLFxyXG5cclxuICAvLyBEUElfWm9vbUZhY3RvciwgaGF2aW5nIHR5cGUgZG91YmxlXHJcbiAgWm9vbUZhY3RvciA9ICd6b29tRmFjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0NvZWZmaWNpZW50UFZhbHVlVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIENvZWZmaWNpZW50UFZhbHVlVmVjID0gJ2NvZWZmaWNpZW50UFZhbHVlVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX0NvZWZmaWNpZW50U3RkRXJyVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIENvZWZmaWNpZW50U3RkRXJyVmVjID0gJ2NvZWZmaWNpZW50U3RkRXJyb3JWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQ29lZmZpY2llbnRUVmFsdWVWZWMsIGhhdmluZyB0eXBlIGRvdWJsZVtdXHJcbiAgQ29lZmZpY2llbnRUVmFsdWVWZWMgPSAnY29lZmZpY2llbnRUVmFsdWVWZWN0b3InLFxyXG5cclxuICAvLyBEUElfQ29lZmZpY2llbnRWZWMsIGhhdmluZyB0eXBlIGRvdWJsZVtdXHJcbiAgQ29lZmZpY2llbnRWZWMgPSAnY29lZmZpY2llbnRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRlN0YXRpc3RpY1ZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBGU3RhdGlzdGljVmVjID0gJ3RyZW5kTGluZUZTdGF0aXN0aWNWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmFjdG9ycywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBGYWN0b3JzID0gJ2ZhY3RvcnMnLFxyXG5cclxuICAvLyBEUElfTVNFVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIE1TRVZlYyA9ICdtZWFuU3F1YXJlZEVycm9yVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX01lYW5zLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIE1lYW5zID0gJ21lYW5zJyxcclxuXHJcbiAgLy8gRFBJX1BWYWx1ZVZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBQVmFsdWVWZWMgPSAncFZhbHVlVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRhZ2VzLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIFBlcmNlbnRhZ2VzID0gJ3BlcmNlbnRhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVzLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxyXG4gIFBlcmNlbnRpbGVzID0gJ3BlcmNlbnRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX1NTRVZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBTU0VWZWMgPSAnc3VtU3F1YXJlZEVycm9yVmVjdG9yJyxcclxuXHJcbiAgLy8gRFBJX1N0RGV2cywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBTdERldnMgPSAnc3RkZXYnLFxyXG5cclxuICAvLyBEUElfVW5zY2FsZWRNZWFucywgaGF2aW5nIHR5cGUgZG91YmxlW11cclxuICBVbnNjYWxlZE1lYW5zID0gJ3Vuc2NhbGVkTWVhbnMnLFxyXG5cclxuICAvLyBEUElfRGVsdGFUaW1lTXMsIGhhdmluZyB0eXBlIGxvbmdcclxuICBEZWx0YVRpbWVNcyA9ICdkZWx0YVRpbWVNcycsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0SGlzdG9yeVJvd0NvdW50LCBoYXZpbmcgdHlwZSBsb25nXHJcbiAgRXh0cmFjdEhpc3RvcnlSb3dDb3VudCA9ICdleHRyYWN0Um93Q291bnQnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlSb3dzUmVtb3ZlZCwgaGF2aW5nIHR5cGUgbG9uZ1xyXG4gIEV4dHJhY3RIaXN0b3J5Um93c1JlbW92ZWQgPSAnZXh0cmFjdFJvd3NSZW1vdmVkJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RzU2l6ZSwgaGF2aW5nIHR5cGUgbG9uZ1xyXG4gIEV4dHJhY3RzU2l6ZSA9ICdleHRyYWN0c1NpemUnLFxyXG5cclxuICAvLyBEUElfT2xkRXh0cmFjdFNpemUsIGhhdmluZyB0eXBlIGxvbmdcclxuICBPbGRFeHRyYWN0U2l6ZSA9ICdvbGRFeHRyYWN0U2l6ZScsXHJcblxyXG4gIC8vIERQSV9Sb3dzSW5zZXJ0ZWQsIGhhdmluZyB0eXBlIGxvbmdcclxuICBSb3dzSW5zZXJ0ZWQgPSAncm93c0luc2VydGVkJyxcclxuXHJcbiAgLy8gRFBJX1NhbXBsZVNpemUsIGhhdmluZyB0eXBlIGxvbmdcclxuICBTYW1wbGVTaXplID0gJ3NhbXBsZVNpemUnLFxyXG5cclxuICAvLyBEUElfU2FtcGxlU3BhY2UsIGhhdmluZyB0eXBlIGxvbmdcclxuICBTYW1wbGVTcGFjZSA9ICdzYW1wbGVTcGFjZScsXHJcblxyXG4gIC8vIERQSV9UaHJlYWRQb29sVXNlQ291bnQsIGhhdmluZyB0eXBlIGxvbmdcclxuICBUaHJlYWRQb29sVXNlQ291bnQgPSAndGhyZWFkUG9vbFVzZUNvdW50JyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvbklkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBY3Rpb25JZCA9ICdhY3Rpb25JZCcsXHJcblxyXG4gIC8vIERQSV9BeGlzQ29sdW1uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBeGlzQ29sdW1uID0gJ2F4aXNDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfQmFzZUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJhc2VDb2x1bW5OYW1lID0gJ2Jhc2VDb2x1bW5OYW1lJyxcclxuXHJcbiAgLy8gRFBJX0JyZWFrUG9pbnRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJyZWFrUG9pbnRGaWVsZE5hbWUgPSAnYnJlYWtQb2ludEZpZWxkTmFtZScsXHJcblxyXG4gIC8vIERQSV9QYWlyZWRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhaXJlZEZpZWxkTmFtZSA9ICdwYWlyZWRGbicsXHJcblxyXG4gIC8vIERQSV9GaWVsZE5hbWVBbGxvd0VtcHR5LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZE5hbWVBbGxvd0VtcHR5ID0gJ2ZpZWxkTmFtZUFsbG93RW1wdHknLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lRGlzQWdnLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZE5hbWVEaXNBZ2cgPSAnZm5EaXNhZ2cnLFxyXG5cclxuICAvLyBEUElfRmllbGROYW1lTG9jYWwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZUxvY2FsID0gJ2ZpZWxkTmFtZUxvY2FsJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVByZXYsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZVByZXYgPSAnZm5QcmV2JyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGROYW1lU291cmNlID0gJ2ZuU291cmNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVRhcmdldCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmllbGROYW1lVGFyZ2V0ID0gJ2ZuVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVgsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZVggPSAnZm5YJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkTmFtZVksIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEZpZWxkTmFtZVkgPSAnZm5ZJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkVG9Tb3J0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBGaWVsZFRvU29ydCA9ICdmaWVsZFRvU29ydCcsXHJcblxyXG4gIC8vIERQSV9HbG9iYWxGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEdsb2JhbEZpZWxkTmFtZSA9ICdnbG9iYWxGaWVsZE5hbWUnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSGllcmFyY2h5TmFtZSA9ICdoaWVyYXJjaHlOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0ludmFsaWRBZ2dGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEludmFsaWRBZ2dGaWVsZE5hbWUgPSAnaW52YWxpZEFnZ0ZpZWxkTmFtZScsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkRmllbGROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBJbnZhbGlkRmllbGROYW1lID0gJ2ludmFsaWRGaWVsZE5hbWUnLFxyXG5cclxuICAvLyBEUElfTGltaXRQYXJhbWV0ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBMaW1pdFBhcmFtZXRlck5hbWUgPSAnbGltaXRQYXJhbWV0ZXJOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0xvY2FsQmFzZUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIExvY2FsQmFzZUNvbHVtbk5hbWUgPSAnbG9jYWxCYXNlQ29sdW1uTmFtZScsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWVhc3VyZU5hbWUgPSAnbWVhc3VyZU5hbWUnLFxyXG5cclxuICAvLyBEUElfTmVzdGVkQ2FsY0ZpZWxkLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOZXN0ZWRDYWxjRmllbGQgPSAnbmVzdGVkQ2FsY0ZuJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBhcmFtZXRlck5hbWUgPSAncGFyYW1ldGVyTmFtZScsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VQYXJhbSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUmVmZXJlbmNlUGFyYW0gPSAncmVmZXJlbmNlUGFyYW0nLFxyXG5cclxuICAvLyBEUElfUmVwbGFjZW1lbnRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlcGxhY2VtZW50RmllbGROYW1lID0gJ3JlcGxhY2VtZW50RmllbGROYW1lJyxcclxuXHJcbiAgLy8gRFBJX1JIU1RhYmxlQWxpYXMsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJIU1RhYmxlQWxpYXMgPSAncmhzVGFibGVBbGlhcycsXHJcblxyXG4gIC8vIERQSV9Tb3J0TWVhc3VyZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNvcnRNZWFzdXJlTmFtZSA9ICdzb3J0TWVhc3VyZU5hbWUnLFxyXG5cclxuICAvLyBEUElfVW5pcXVlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgVW5pcXVlTmFtZSA9ICd1bmlxdWVOYW1lJyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlQ29sdW1uLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBWYWx1ZUNvbHVtbiA9ICd2YWx1ZUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9QYWlyZWRWYWx1ZUNvbHVtbiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFpcmVkVmFsdWVDb2x1bW4gPSAncGFpcmVkVmFsdWVDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uSWRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEFjdGlvbklkcyA9ICdhY3Rpb25JZHMnLFxyXG5cclxuICAvLyBEUElfQWRkcmVzc2luZ1ZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBZGRyZXNzaW5nVmFsdWVzID0gJ2FkZHJlc3NpbmdWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfQWxsQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBbGxDb2x1bW5zID0gJ2FsbENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbFZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBBdFRoZUxldmVsVmFsdWVzID0gJ2F0VGhlTGV2ZWxWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfQXV0b21hdGljRHJpbGxGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQXV0b21hdGljRHJpbGxGaWVsZE5hbWUgPSAnYXV0b21hdGljRHJpbGxGaWVsZE5hbWUnLFxyXG5cclxuICAvLyBEUElfQmxlbmRpbmdGaWVsZENhbmRpZGF0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQmxlbmRpbmdGaWVsZENhbmRpZGF0ZXMgPSAnYmxlbmRpbmdGaWVsZENhbmRpZGF0ZXMnLFxyXG5cclxuICAvLyBEUElfQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2x1bW5zID0gJ2NvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfQ3VycmVudEJsZW5kaW5nRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEN1cnJlbnRCbGVuZGluZ0ZpZWxkcyA9ICdjdXJyZW50QmxlbmRpbmdGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfRGltZW5zaW9uc1RvU29ydCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEaW1lbnNpb25zVG9Tb3J0ID0gJ2RpbWVuc2lvbnNUb1NvcnQnLFxyXG5cclxuICAvLyBEUElfRHJpbGxGaWVsZFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBEcmlsbEZpZWxkVmVjdG9yID0gJ2RyaWxsRmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRW5jb2RpbmdGaWVsZFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBFbmNvZGluZ0ZpZWxkVmVjdG9yID0gJ2VuY29kaW5nRmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmllbGRWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgRmllbGRWZWN0b3IgPSAnZmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRmlsdGVyRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEZpbHRlckZpZWxkcyA9ICdmaWx0ZXJGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfTE9ERmllbGRWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTE9ERmllbGRWZWN0b3IgPSAnbG9kRmllbGRWZWN0b3InLFxyXG5cclxuICAvLyBEUElfTGVnZW5kQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBMZWdlbmRDb2x1bW5zID0gJ2xlZ2VuZENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfTGVnZW5kTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTGVnZW5kTmFtZXMgPSAnbGVnZW5kTmFtZXMnLFxyXG5cclxuICAvLyBEUElfTm9kZUNvbHVtbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgTm9kZUNvbHVtbnMgPSAnbm9kZUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUGFnZUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBQYWdlRmllbGRzID0gJ3BhZ2VGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfUGFyYW1WYWx1ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUGFyYW1WYWx1ZXMgPSAncGFyYW1WYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfUmVmTGluZUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZWZMaW5lRmllbGRzID0gJ3JlZmxpbmVGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlZENvbHVtbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVmZXJlbmNlZENvbHVtbnMgPSAncmVmZXJlbmNlZENvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUmVsYXRlZEZpZWxkTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVsYXRlZEZpZWxkTmFtZXMgPSAncmVsYXRlZEZpZWxkTmFtZXMnLFxyXG5cclxuICAvLyBEUElfUmVtb3ZlQWN0aW9uUmVzdWx0cywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBSZW1vdmVBY3Rpb25SZXN1bHRzID0gJ3JlbW92ZUFjdGlvblJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfUmVzcG9uc2VWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgUmVzcG9uc2VWZWN0b3IgPSAncmVzcG9uc2VWZWN0b3InLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5VmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlc3RhcnRFdmVyeVZhbHVlcyA9ICdyZXN0YXJ0RXZlcnlWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfUmVzdWx0RmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFJlc3VsdEZpZWxkcyA9ICdyZXN1bHRGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfU29ydEZpZWxkVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIFNvcnRGaWVsZFZhbHVlcyA9ICdzb3J0RmllbGRWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfWEZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBYRmllbGRzID0gJ3hGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfWUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBZRmllbGRzID0gJ3lGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkZ1bGxOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb25uZWN0aW9uRnVsbE5hbWUgPSAnY29ubmVjdGlvbkZ1bGxOYW1lJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25GdWxsTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQ29ubmVjdGlvbkZ1bGxOYW1lcyA9ICdjb25uZWN0aW9uRnVsbE5hbWVzJyxcclxuXHJcbiAgLy8gRFBJX0JvdW5kRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBCb3VuZERhdGFWYWx1ZSA9ICdib3VuZERhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhdGFWYWx1ZSA9ICdkYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfRGF0YVZhbHVlSW5jcmVtZW50LCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBEYXRhVmFsdWVJbmNyZW1lbnQgPSAnZGF0YVZhbHVlSW5jcmVtZW50JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZUxvd2VyWCwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgRGF0YVZhbHVlTG93ZXJYID0gJ2RhdGFWYWx1ZUxvd2VyWCcsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVMb3dlclksIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhdGFWYWx1ZUxvd2VyWSA9ICdkYXRhVmFsdWVMb3dlclknLFxyXG5cclxuICAvLyBEUElfRGF0YVZhbHVlVXBwZXJYLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBEYXRhVmFsdWVVcHBlclggPSAnZGF0YVZhbHVlVXBwZXJYJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZVVwcGVyWSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgRGF0YVZhbHVlVXBwZXJZID0gJ2RhdGFWYWx1ZVVwcGVyWScsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBEZWZhdWx0RGF0YVZhbHVlID0gJ2RlZmF1bHREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfTWF4RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBNYXhEYXRhVmFsdWUgPSAnbWF4RGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX01pbkRhdGFWYWx1ZSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTWluRGF0YVZhbHVlID0gJ21pbkRhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9WYWxpZGF0ZWREYXRhVmFsdWUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFZhbGlkYXRlZERhdGFWYWx1ZSA9ICd2YWxpZGF0ZWREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfQmluU2l6ZSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgQmluU2l6ZSA9ICdiaW5TaXplJyxcclxuXHJcbiAgLy8gRFBJX0xpbWl0Q291bnQsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIExpbWl0Q291bnQgPSAnbGltaXRDb3VudCcsXHJcblxyXG4gIC8vIERQSV9EYXRhVmFsdWVMaXN0LCBoYXZpbmcgdHlwZSBvYmplY3RbXVxyXG4gIERhdGFWYWx1ZUxpc3QgPSAnZGF0YVZhbHVlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZERpc3BsYXlJdGVtLCBoYXZpbmcgdHlwZSBGaWVsZERpc3BsYXlJdGVtUHJlc01vZGVsXHJcbiAgRmllbGREaXNwbGF5SXRlbSA9ICdmaWVsZERpc3BsYXlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRGlzcGxheUxpc3QsIGhhdmluZyB0eXBlIEZpZWxkRGlzcGxheUl0ZW1QcmVzTW9kZWxbXVxyXG4gIEZpZWxkRGlzcGxheUxpc3QgPSAnZmllbGREaXNwbGF5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZENhcHRpb25QYWlyLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyUHJlc01vZGVsXHJcbiAgRmllbGRDYXB0aW9uUGFpciA9ICdmaWVsZENhcHRpb25QYWlyJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvblBhaXJzLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyUHJlc01vZGVsW11cclxuICBGaWVsZENhcHRpb25QYWlycyA9ICdmaWVsZENhcHRpb25QYWlycycsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJDYXB0aW9uUGFpcnMsIGhhdmluZyB0eXBlIEZpZWxkQ2FwdGlvblBhaXJQcmVzTW9kZWxbXVxyXG4gIFBhcmFtZXRlckNhcHRpb25QYWlycyA9ICdwYXJhbWV0ZXJDYXB0aW9uUGFpcnMnLFxyXG5cclxuICAvLyBEUElfVmFyeWluZ0F0dHJpYnV0ZURpbWVuc2lvbnMsIGhhdmluZyB0eXBlIEZpZWxkQ2FwdGlvblBhaXJQcmVzTW9kZWxbXVxyXG4gIFZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb25zID0gJ3ZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb25zJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ2FwdGlvblBhaXJTdGF0ZSwgaGF2aW5nIHR5cGUgRmllbGRDYXB0aW9uUGFpclN0YXRlUHJlc01vZGVsXHJcbiAgRmllbGRDYXB0aW9uUGFpclN0YXRlID0gJ2ZpZWxkQ2FwdGlvblBhaXJTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9GaWVsZENhcHRpb25QYWlyU3RhdGVzLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyU3RhdGVQcmVzTW9kZWxbXVxyXG4gIEZpZWxkQ2FwdGlvblBhaXJTdGF0ZXMgPSAnZmllbGRDYXB0aW9uUGFpclN0YXRlcycsXHJcblxyXG4gIC8vIERQSV9EYXRhc291cmNlQ2FwdGlvblBhaXIsIGhhdmluZyB0eXBlIERhdGFzb3VyY2VDYXB0aW9uUGFpclByZXNNb2RlbFxyXG4gIERhdGFzb3VyY2VDYXB0aW9uUGFpciA9ICdkYXRhc291cmNlQ2FwdGlvblBhaXInLFxyXG5cclxuICAvLyBEUElfRGF0YXNvdXJjZUNhcHRpb25QYWlycywgaGF2aW5nIHR5cGUgRGF0YXNvdXJjZUNhcHRpb25QYWlyUHJlc01vZGVsW11cclxuICBEYXRhc291cmNlQ2FwdGlvblBhaXJzID0gJ2RhdGFzb3VyY2VDYXB0aW9uUGFpcnMnLFxyXG5cclxuICAvLyBEUElfU2hlZXROYW1lSW5mb1BhaXIsIGhhdmluZyB0eXBlIFNoZWV0TmFtZUluZm9QYWlyUHJlc01vZGVsXHJcbiAgU2hlZXROYW1lSW5mb1BhaXIgPSAnc2hlZXROYW1lSW5mb1BhaXInLFxyXG5cclxuICAvLyBEUElfU2hlZXROYW1lSW5mb1BhaXJzLCBoYXZpbmcgdHlwZSBTaGVldE5hbWVJbmZvUGFpclByZXNNb2RlbFtdXHJcbiAgU2hlZXROYW1lSW5mb1BhaXJzID0gJ3NoZWV0TmFtZUluZm9QYWlycycsXHJcblxyXG4gIC8vIERQSV9CR0FjdGl2ZUNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCR0FjdGl2ZUNvbG9yID0gJ2JnQWN0aXZlQ29sb3InLFxyXG5cclxuICAvLyBEUElfQkdDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQkdDb2xvciA9ICdiZ0NvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0JHUmVzdENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCR1Jlc3RDb2xvciA9ICdiZ1Jlc3RDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Cb3JkZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQm9yZGVyQ29sb3IgPSAnYm9yZGVyQ29sb3InLFxyXG5cclxuICAvLyBEUElfQm9yZGVyQ29sb3JCb3R0b20sIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJvcmRlckNvbG9yQm90dG9tID0gJ2JvcmRlckNvbG9yQm90dG9tJyxcclxuXHJcbiAgLy8gRFBJX0JvcmRlckNvbG9yTGVmdCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQm9yZGVyQ29sb3JMZWZ0ID0gJ2JvcmRlckNvbG9yTGVmdCcsXHJcblxyXG4gIC8vIERQSV9Cb3JkZXJDb2xvclJpZ2h0LCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBCb3JkZXJDb2xvclJpZ2h0ID0gJ2JvcmRlckNvbG9yUmlnaHQnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyQ29sb3JUb3AsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEJvcmRlckNvbG9yVG9wID0gJ2JvcmRlckNvbG9yVG9wJyxcclxuXHJcbiAgLy8gRFBJX0J1dHRvbk9iamVjdEJhY2tncm91bmRDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQnV0dG9uT2JqZWN0QmFja2dyb3VuZENvbG9yID0gJ2J1dHRvbk9iamVjdEJhY2tncm91bmRDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Db2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29sb3IgPSAnY29sb3InLFxyXG5cclxuICAvLyBEUElfQ29sb3IxLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBDb2xvcjEgPSAnY29sb3IxJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yMiwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgQ29sb3IyID0gJ2NvbG9yMicsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERlZmF1bHRDb2xvciA9ICdkZWZhdWx0Q29sb3InLFxyXG5cclxuICAvLyBEUElfRGlzdGFuY2VGb250Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIERpc3RhbmNlRm9udENvbG9yID0gJ2Rpc3RhbmNlRm9udENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0ZpbGxDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRmlsbENvbG9yID0gJ2ZpbGxDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Gb2dDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRm9nQ29sb3IgPSAnZm9nQ29sb3InLFxyXG5cclxuICAvLyBEUElfSGVhZGVyQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhlYWRlckNvbG9yID0gJ2hlYWRlckNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodEJHQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhpZ2hsaWdodEJHQ29sb3IgPSAnaGlnaGxpZ2h0QmdDb2xvcicsXHJcblxyXG4gIC8vIERQSV9IaWdobGlnaHRUZXh0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEhpZ2hsaWdodFRleHRDb2xvciA9ICdoaWdobGlnaHRUZXh0Q29sb3InLFxyXG5cclxuICAvLyBEUElfSG92ZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgSG92ZXJDb2xvciA9ICdob3ZlckNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0h5cGVybGlua0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBIeXBlcmxpbmtDb2xvciA9ICdoeXBlcmxpbmtDb2xvcicsXHJcblxyXG4gIC8vIERQSV9NYXBBdHRyaWJ1dGlvbkZpbGwsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEF0dHJpYnV0aW9uRmlsbCA9ICdtYXBBdHRyaWJ1dGlvbkZpbGwnLFxyXG5cclxuICAvLyBEUElfTWFwQXR0cmlidXRpb25UZXh0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcEF0dHJpYnV0aW9uVGV4dENvbG9yID0gJ21hcEF0dHJpYnV0aW9uVGV4dENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX01hcFBhbmVCYWNrZ3JvdW5kRmlsbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwUGFuZUJhY2tncm91bmRGaWxsID0gJ21hcFBhbmVCYWNrZ3JvdW5kRmlsbCcsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZUJvcmRlckNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBNYXBTY2FsZUJvcmRlckNvbG9yID0gJ21hcFNjYWxlQm9yZGVyQ29sb3InLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwU2NhbGVDb2xvciA9ICdtYXBTY2FsZUNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX01hcFdhaXRUaWxlRmlsbCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTWFwV2FpdFRpbGVGaWxsID0gJ21hcFdhaXRUaWxlRmlsbCcsXHJcblxyXG4gIC8vIERQSV9NYXJrQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE1hcmtDb2xvciA9ICdtYXJrQ29sb3InLFxyXG5cclxuICAvLyBEUElfTmF2QXJyb3dEaXNhYmxlZENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBOYXZBcnJvd0Rpc2FibGVkQ29sb3IgPSAnbmF2QXJyb3dEaXNhYmxlZENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX05hdkFycm93SG92ZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmF2QXJyb3dIb3ZlckNvbG9yID0gJ25hdkFycm93SG92ZXJDb2xvcicsXHJcblxyXG4gIC8vIERQSV9OYXZBcnJvd0lkbGVDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgTmF2QXJyb3dJZGxlQ29sb3IgPSAnbmF2QXJyb3dJZGxlQ29sb3InLFxyXG5cclxuICAvLyBEUElfTmF2QXJyb3dQcmVzc2VkQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIE5hdkFycm93UHJlc3NlZENvbG9yID0gJ25hdkFycm93UHJlc3NlZENvbG9yJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgUGFuZUNvbG9yID0gJ3BhbmVDb2xvcicsXHJcblxyXG4gIC8vIERQSV9QcmVzc0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBQcmVzc0NvbG9yID0gJ3ByZXNzQ29sb3InLFxyXG5cclxuICAvLyBEUElfUmVzaXplQm9yZGVyQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFJlc2l6ZUJvcmRlckNvbG9yID0gJ3Jlc2l6ZUJvcmRlckNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdEJHQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlbGVjdEJHQ29sb3IgPSAnc2VsZWN0QmdDb2xvcicsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25UZXh0Q29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFNlbGVjdGlvblRleHRDb2xvciA9ICdzZWxlY3Rpb25UZXh0Q29sb3InLFxyXG5cclxuICAvLyBEUElfU3dhdGNoQmFja2dyb3VuZENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBTd2F0Y2hCYWNrZ3JvdW5kQ29sb3IgPSAnc3dhdGNoQmdDb2xvcicsXHJcblxyXG4gIC8vIERQSV9Td2F0Y2hCb3JkZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgU3dhdGNoQm9yZGVyQ29sb3IgPSAnc3dhdGNoQm9yZGVyQ29sb3InLFxyXG5cclxuICAvLyBEUElfVGFiQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFRhYkNvbG9yID0gJ3RhYkNvbG9yJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9ycywgaGF2aW5nIHR5cGUgc3RyaW5nW11cclxuICBDb2xvcnMgPSAnY29sb3JzJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcclxuICBDb2xvck1hcCA9ICdjb2xvck1hcCcsXHJcblxyXG4gIC8vIERQSV9QaXhtYXAsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIFBpeG1hcCA9ICdwaXhtYXAnLFxyXG5cclxuICAvLyBEUElfSW1hZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEltYWdlID0gJ2ltYWdlJyxcclxuXHJcbiAgLy8gRFBJX092ZXJsYXlJbWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgT3ZlcmxheUltYWdlID0gJ292ZXJsYXlJbWFnZScsXHJcblxyXG4gIC8vIERQSV9JY29uSW1hZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xyXG4gIEljb25JbWFnZSA9ICdpY29uSW1hZ2UnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VMaXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxyXG4gIEltYWdlTGlzdCA9ICdpbWFnZUxpc3QnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxyXG4gIEltYWdlTWFwID0gJ2ltYWdlTWFwJyxcclxuXHJcbiAgLy8gRFBJX1VVSUQsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFVVSUQgPSAndXVpZCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRPYmplY3RIYW5kbGUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhc2hib2FyZE9iamVjdEhhbmRsZSA9ICdkYXNoYm9hcmRPYmplY3RIYW5kbGUnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkT2JqZWN0TmV3U3RhdGVIYW5kbGUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhc2hib2FyZE9iamVjdE5ld1N0YXRlSGFuZGxlID0gJ2Rhc2hib2FyZE9iamVjdE5ld1N0YXRlSGFuZGxlJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZE9iamVjdEN1cnJlbnRTdGF0ZUhhbmRsZSwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgRGFzaGJvYXJkT2JqZWN0Q3VycmVudFN0YXRlSGFuZGxlID0gJ2Rhc2hib2FyZE9iamVjdEN1cnJlbnRTdGF0ZUhhbmRsZScsXHJcblxyXG4gIC8vIERQSV9OYW5vc2Vjb25kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTmFub3NlY29uZHMgPSAnbmFub3NlY29uZHMnLFxyXG5cclxuICAvLyBEUElfTWljcm9zZWNvbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBNaWNyb3NlY29uZHMgPSAnbWljcm9zZWNvbmRzJyxcclxuXHJcbiAgLy8gRFBJX01pbGxpc2Vjb25kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTWlsbGlzZWNvbmRzID0gJ21pbGxpc2Vjb25kcycsXHJcblxyXG4gIC8vIERQSV9UaW1lb3V0UywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgVGltZW91dFMgPSAndGltZW91dFMnLFxyXG5cclxuICAvLyBEUElfTWludXRlcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTWludXRlcyA9ICdtaW51dGVzJyxcclxuXHJcbiAgLy8gRFBJX0hvdXJzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBIb3VycyA9ICdob3VycycsXHJcblxyXG4gIC8vIERQSV9DYXJkVHlwZSwgaGF2aW5nIHR5cGUgQ2FyZFR5cGVcclxuICBDYXJkVHlwZSA9ICdjYXJkVHlwZScsXHJcblxyXG4gIC8vIERQSV9Eb2NQYXJhbWV0ZXJJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXHJcbiAgRG9jUGFyYW1ldGVySUQgPSAndHlwZScsXHJcblxyXG4gIC8vIERQSV9Bcmd1bWVudFBhcmFtLCBoYXZpbmcgdHlwZSBzdHJpbmdcclxuICBBcmd1bWVudFBhcmFtID0gJ2FyZ3VtZW50UGFyYW0nLFxyXG5cclxuICAvLyBEUElfQXJndW1lbnRQYXJhbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXHJcbiAgQXJndW1lbnRQYXJhbXMgPSAnYXJndW1lbnRQYXJhbXMnLFxyXG5cclxuICAvLyBEUElfQWN0aW9uVHlwZSwgaGF2aW5nIHR5cGUgQWN0aW9uVHlwZVxyXG4gIEFjdGlvblR5cGUgPSAnYWN0aW9uVHlwZScsXHJcblxyXG4gIC8vIERQSV9Bbm5vdGF0ZUVudW0sIGhhdmluZyB0eXBlIEFubm90YXRlRW51bVxyXG4gIEFubm90YXRlRW51bSA9ICdhbm5vdGF0ZUVudW0nLFxyXG5cclxuICAvLyBEUElfSm9pblR5cGUsIGhhdmluZyB0eXBlIFNRTEpvaW5UeXBlXHJcbiAgSm9pblR5cGUgPSAnam9pblR5cGUnLFxyXG5cclxuICAvLyBEUElfU3VwcG9ydGVkSm9pblR5cGVzLCBoYXZpbmcgdHlwZSBTUUxKb2luVHlwZVtdXHJcbiAgU3VwcG9ydGVkSm9pblR5cGVzID0gJ3N1cHBvcnRlZEpvaW5UeXBlcycsXHJcblxyXG4gIC8vIERQSV9Sb3VuZGluZywgaGF2aW5nIHR5cGUgUm91bmRpbmdcclxuICBSb3VuZGluZyA9ICdyb3VuZGluZ0VudW0nLFxyXG5cclxuICAvLyBEUElfQm9keVR5cGUsIGhhdmluZyB0eXBlIEJvZHlUeXBlXHJcbiAgQm9keVR5cGUgPSAnYm9keVR5cGUnLFxyXG5cclxuICAvLyBEUElfTGluZUVuZCwgaGF2aW5nIHR5cGUgTGluZUVuZFxyXG4gIExpbmVFbmQgPSAnbGluZUVuZEVudW0nLFxyXG5cclxuICAvLyBEUElfTGluZUVuZFNpemUsIGhhdmluZyB0eXBlIExpbmVFbmRTaXplXHJcbiAgTGluZUVuZFNpemUgPSAnbGluZUVuZFNpemVFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0JydXNoU3BlY2lhbEZpZWxkcywgaGF2aW5nIHR5cGUgQnJ1c2hTcGVjaWFsRmllbGRzXHJcbiAgQnJ1c2hTcGVjaWFsRmllbGRzID0gJ3NwZWNpYWxGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfQ2VsbFNpemVDaGFuZ2UsIGhhdmluZyB0eXBlIENlbGxTaXplQ2hhbmdlXHJcbiAgQ2VsbFNpemVDaGFuZ2UgPSAnY2VsbFNpemVDaGFuZ2UnLFxyXG5cclxuICAvLyBEUElfQ2VsbFR5cGUsIGhhdmluZyB0eXBlIENlbGxUeXBlXHJcbiAgQ2VsbFR5cGUgPSAnY2VsbFR5cGUnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25BdHRlbXB0UmVzdWx0XHJcbiAgQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQgPSAnY29ubmVjdGlvbkF0dGVtcHRSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkVycm9yU3RhZ2UsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25FcnJvclN0YWdlXHJcbiAgQ29ubmVjdGlvbkVycm9yU3RhZ2UgPSAnY29ubmVjdGlvbkVycm9yU3RhZ2UnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkVycm9yVHlwZSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkVycm9yVHlwZVxyXG4gIENvbm5lY3Rpb25FcnJvclR5cGUgPSAnY29ubmVjdGlvbkVycm9yVHlwZScsXHJcblxyXG4gIC8vIERQSV9EYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdCwgaGF2aW5nIHR5cGUgRGF0YVNlcnZlckNvbm5lY3Rpb25SZXN1bHRcclxuICBEYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdCA9ICdkc0Nvbm5lY3Rpb25SZXN1bHQnLFxyXG5cclxuICAvLyBEUElfRHJvcFdoZW4sIGhhdmluZyB0eXBlIERyb3BXaGVuXHJcbiAgRHJvcFdoZW4gPSAnZHJvcFdoZW4nLFxyXG5cclxuICAvLyBEUElfRHJvcFR5cGUsIGhhdmluZyB0eXBlIERyb3BGaWVsZFJlc3VsdFxyXG4gIERyb3BUeXBlID0gJ2Ryb3BUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0VuY29kaW5nVHlwZSwgaGF2aW5nIHR5cGUgRW5jb2RpbmdUeXBlXHJcbiAgRW5jb2RpbmdUeXBlID0gJ2VuY29kaW5nVHlwZScsXHJcblxyXG4gIC8vIERQSV9Ecm9wZG93bkVuY29kaW5nVHlwZSwgaGF2aW5nIHR5cGUgRW5jb2RpbmdUeXBlXHJcbiAgRHJvcGRvd25FbmNvZGluZ1R5cGUgPSAnZHJvcGRvd25FbmNvZGluZ1R5cGUnLFxyXG5cclxuICAvLyBEUElfRW5jb2RpbmdUeXBlcywgaGF2aW5nIHR5cGUgRW5jb2RpbmdUeXBlW11cclxuICBFbmNvZGluZ1R5cGVzID0gJ2VuY29kaW5nVHlwZXMnLFxyXG5cclxuICAvLyBEUElfRmllbGRPcmRlclR5cGUsIGhhdmluZyB0eXBlIEZpZWxkT3JkZXJUeXBlXHJcbiAgRmllbGRPcmRlclR5cGUgPSAnZmllbGRPcmRlclR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVySWNvblR5cGUsIGhhdmluZyB0eXBlIEZpbHRlckljb25UeXBlXHJcbiAgRmlsdGVySWNvblR5cGUgPSAnZmlsdGVySWNvblR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVySWNvblR5cGVzLCBoYXZpbmcgdHlwZSBGaWx0ZXJJY29uVHlwZVtdXHJcbiAgRmlsdGVySWNvblR5cGVzID0gJ2ZpbHRlckljb25UeXBlcycsXHJcblxyXG4gIC8vIERQSV9GbG9hdGluZ1Rvb2xiYXJWaXMsIGhhdmluZyB0eXBlIEZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHlcclxuICBGbG9hdGluZ1Rvb2xiYXJWaXMgPSAndG9vbGJhclZpc2liaWxpdHknLFxyXG5cclxuICAvLyBEUElfRm9sZGVyUm9sZSwgaGF2aW5nIHR5cGUgRm9sZGVyUm9sZVxyXG4gIEZvbGRlclJvbGUgPSAnZm9sZGVyUm9sZScsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRUeXBlLCBoYXZpbmcgdHlwZSBFbnVtXHJcbiAgTGVnZW5kVHlwZSA9ICdsZWdlbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0TW9kZWxUeXBlLCBoYXZpbmcgdHlwZSBGb3JlY2FzdE1vZGVsVHlwZVxyXG4gIEZvcmVjYXN0TW9kZWxUeXBlID0gJ2ZvcmVjYXN0TW9kZWxUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZvcmVjYXN0VHJlbmRUeXBlLCBoYXZpbmcgdHlwZSBGb3JlY2FzdENvbXBvbmVudFR5cGVcclxuICBGb3JlY2FzdFRyZW5kVHlwZSA9ICdmb3JlY2FzdFRyZW5kVHlwZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdFNlYXNvblR5cGUsIGhhdmluZyB0eXBlIEZvcmVjYXN0Q29tcG9uZW50VHlwZVxyXG4gIEZvcmVjYXN0U2Vhc29uVHlwZSA9ICdmb3JlY2FzdFNlYXNvblR5cGUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RSYW5nZVR5cGUsIGhhdmluZyB0eXBlIEZvcmVjYXN0UmFuZ2VUeXBlXHJcbiAgRm9yZWNhc3RSYW5nZVR5cGUgPSAnZm9yZWNhc3RSYW5nZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RTdGF0dXMsIGhhdmluZyB0eXBlIEZvcmVjYXN0U3RhdHVzXHJcbiAgRm9yZWNhc3RTdGF0dXMgPSAnZm9yZWNhc3RTdGF0dXMnLFxyXG5cclxuICAvLyBEUElfU2hlZXRGb3JlY2FzdFN0YXR1cywgaGF2aW5nIHR5cGUgRm9yZWNhc3RTdGF0dXNcclxuICBTaGVldEZvcmVjYXN0U3RhdHVzID0gJ3NoZWV0Rm9yZWNhc3RTdGF0dXMnLFxyXG5cclxuICAvLyBEUElfUERGb3JlY2FzdFN0YXR1c0xpc3QsIGhhdmluZyB0eXBlIEZvcmVjYXN0U3RhdHVzW11cclxuICBQREZvcmVjYXN0U3RhdHVzTGlzdCA9ICdwYW5lRGVzY3JpcHRvckZvcmVjYXN0U3RhdHVzTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdENvbHVtblR5cGUsIGhhdmluZyB0eXBlIEZvcmVjYXN0Q29sdW1uVHlwZVxyXG4gIEZvcmVjYXN0Q29sdW1uVHlwZSA9ICdmb3JlY2FzdENvbHVtblR5cGUnLFxyXG5cclxuICAvLyBEUElfRGF0YVNjYWxpbmcsIGhhdmluZyB0eXBlIERhdGFTY2FsaW5nXHJcbiAgRGF0YVNjYWxpbmcgPSAnZGF0YVNjYWxpbmcnLFxyXG5cclxuICAvLyBEUElfR2V0RmlsdGVySXRlbXNKc29uUmVzcG9uc2UsIGhhdmluZyB0eXBlIEdldEpzb25SZXNwb25zZUVudW1cclxuICBHZXRGaWx0ZXJJdGVtc0pzb25SZXNwb25zZSA9ICdnZXRGaWx0ZXJJdGVtc0pzb25SZXNwb25zZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJTZWFyY2hKc29uUmVzcG9uc2UsIGhhdmluZyB0eXBlIEdldEpzb25SZXNwb25zZUVudW1cclxuICBGaWx0ZXJTZWFyY2hKc29uUmVzcG9uc2UgPSAnZmlsdGVyU2VhcmNoSnNvblJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFdpdGhJbmRleEpzb25SZXNwb25zZSwgaGF2aW5nIHR5cGUgR2V0SnNvblJlc3BvbnNlRW51bVxyXG4gIEZpbHRlclNlYXJjaFdpdGhJbmRleEpzb25SZXNwb25zZSA9ICdmaWx0ZXJTZWFyY2hXaXRoSW5kZXhKc29uUmVzcG9uc2UnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU2hvd0NoaWxkcmVuSnNvblJlc3BvbnNlLCBoYXZpbmcgdHlwZSBHZXRKc29uUmVzcG9uc2VFbnVtXHJcbiAgRmlsdGVyU2hvd0NoaWxkcmVuSnNvblJlc3BvbnNlID0gJ2ZpbHRlclNob3dDaGlsZHJlbkpzb25SZXNwb25zZScsXHJcblxyXG4gIC8vIERQSV9IQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBMYWJlbEhBbGlnbm1lbnRcclxuICBIQWxpZ25tZW50ID0gJ2hvcml6b250YWxMYWJlbEFsaWdubWVudCcsXHJcblxyXG4gIC8vIERQSV9Kb2luVmFsaWRhdGlvbkVycm9yLCBoYXZpbmcgdHlwZSBKb2luVmFsaWRhdGlvbkVycm9yXHJcbiAgSm9pblZhbGlkYXRpb25FcnJvciA9ICdqb2luVmFsaWRhdGlvbkVycm9yJyxcclxuXHJcbiAgLy8gRFBJX05hbWVDb25mbGljdFJlc29sdXRpb24sIGhhdmluZyB0eXBlIE5hbWVDb25mbGljdFJlc29sdXRpb25cclxuICBOYW1lQ29uZmxpY3RSZXNvbHV0aW9uID0gJ25hbWVDb25mbGljdFJlc29sdXRpb24nLFxyXG5cclxuICAvLyBEUElfTGFiZWxEaXIsIGhhdmluZyB0eXBlIFRleHRPcmllbnRcclxuICBMYWJlbERpciA9ICdsYWJlbERpcmVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9MYWJlbEFsaWduLCBoYXZpbmcgdHlwZSBUZXh0QWxpZ25cclxuICBMYWJlbEFsaWduID0gJ2xhYmVsQWxpZ25tZW50JyxcclxuXHJcbiAgLy8gRFBJX0xhYmVsV3JhcCwgaGF2aW5nIHR5cGUgVGV4dFdyYXBNb2RlXHJcbiAgTGFiZWxXcmFwID0gJ2xhYmVsV3JhcCcsXHJcblxyXG4gIC8vIERQSV9XcmFwTW9kZSwgaGF2aW5nIHR5cGUgVGV4dFdyYXBNb2RlXHJcbiAgV3JhcE1vZGUgPSAnd3JhcE1vZGUnLFxyXG5cclxuICAvLyBEUElfTWFya0VudW0sIGhhdmluZyB0eXBlIE1hcmtFbnVtXHJcbiAgTWFya0VudW0gPSAnbWFya0VudW0nLFxyXG5cclxuICAvLyBEUElfUGVyY2VudE1vZGUsIGhhdmluZyB0eXBlIFBlcmNlbnRNb2RlXHJcbiAgUGVyY2VudE1vZGUgPSAncGVyY2VudGFnZU1vZGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlT3B0aW9uc1NldCwgaGF2aW5nIHR5cGUgUmVmZXJlbmNlT3B0aW9uc1NldFxyXG4gIFJlZmVyZW5jZU9wdGlvbnNTZXQgPSAncmVmZXJlbmNlT3B0aW9uc1NldCcsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VPcHRpb25zU2V0cywgaGF2aW5nIHR5cGUgUmVmZXJlbmNlT3B0aW9uc1NldFtdXHJcbiAgUmVmZXJlbmNlT3B0aW9uc1NldHMgPSAncmVmZXJlbmNlT3B0aW9uc1NldHMnLFxyXG5cclxuICAvLyBEUElfUmFua1R5cGUsIGhhdmluZyB0eXBlIFJhbmtUeXBlXHJcbiAgUmFua1R5cGUgPSAncmFua1R5cGUnLFxyXG5cclxuICAvLyBEUElfUmFua1R5cGVWYWx1ZXMsIGhhdmluZyB0eXBlIFJhbmtUeXBlW11cclxuICBSYW5rVHlwZVZhbHVlcyA9ICdyYW5rVHlwZVZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9TcGVjaWFsVmFsdWVzTW9kZSwgaGF2aW5nIHR5cGUgU3BlY2lhbFZhbHVlc01vZGVcclxuICBTcGVjaWFsVmFsdWVzTW9kZSA9ICdzcGVjaWFsVmFsdWVzTW9kZScsXHJcblxyXG4gIC8vIERQSV9WQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBMYWJlbFZBbGlnbm1lbnRcclxuICBWQWxpZ25tZW50ID0gJ3ZlcnRpY2FsTGFiZWxBbGlnbm1lbnQnLFxyXG5cclxuICAvLyBEUElfQ29sb3JNb2RlLCBoYXZpbmcgdHlwZSBDb2xvck1vZGVcclxuICBDb2xvck1vZGUgPSAnY29sb3JNb2RlJyxcclxuXHJcbiAgLy8gRFBJX01hcmtMYWJlbHNNb2RlLCBoYXZpbmcgdHlwZSBNYXJrTGFiZWxzTW9kZVxyXG4gIE1hcmtMYWJlbHNNb2RlID0gJ21hcmtMYWJlbHNNb2RlJyxcclxuXHJcbiAgLy8gRFBJX01hcmtMYWJlbHNTY29wZSwgaGF2aW5nIHR5cGUgTWFya0xhYmVsc1Njb3BlXHJcbiAgTWFya0xhYmVsc1Njb3BlID0gJ21hcmtMYWJlbHNTY29wZScsXHJcblxyXG4gIC8vIERQSV9NYXJrTGFiZWxzVmlzaWJpbGl0eSwgaGF2aW5nIHR5cGUgTWFya0xhYmVsc1Zpc2liaWxpdHlcclxuICBNYXJrTGFiZWxzVmlzaWJpbGl0eSA9ICdtYXJrTGFiZWxzVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9QcmltaXRpdmVUeXBlLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVUeXBlXHJcbiAgUHJpbWl0aXZlVHlwZSA9ICdwcmltaXRpdmVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0FjdHVhbFByaW1pdGl2ZVR5cGUsIGhhdmluZyB0eXBlIFByaW1pdGl2ZVR5cGVcclxuICBBY3R1YWxQcmltaXRpdmVUeXBlID0gJ2FjdHVhbFByaW1pdGl2ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfUHJpbWl0aXZlVHlwZXMsIGhhdmluZyB0eXBlIFByaW1pdGl2ZVR5cGVbXVxyXG4gIFByaW1pdGl2ZVR5cGVzID0gJ3ByaW1pdGl2ZVR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlVHlwZSwgaGF2aW5nIHR5cGUgU2hhcGVUeXBlXHJcbiAgU2hhcGVUeXBlID0gJ3NoYXBlVHlwZScsXHJcblxyXG4gIC8vIERQSV9Tb3J0VHlwZSwgaGF2aW5nIHR5cGUgU29ydFR5cGVcclxuICBTb3J0VHlwZSA9ICdzb3J0QnknLFxyXG5cclxuICAvLyBEUElfU29ydEVuZCwgaGF2aW5nIHR5cGUgU29ydEVuZFxyXG4gIFNvcnRFbmQgPSAnc29ydEVuZCcsXHJcblxyXG4gIC8vIERQSV9TdGFja2luZ01vZGUsIGhhdmluZyB0eXBlIFN0YWNraW5nTW9kZVxyXG4gIFN0YWNraW5nTW9kZSA9ICdzdGFja2luZ01vZGUnLFxyXG5cclxuICAvLyBEUElfU3R5bGVUaGVtZSwgaGF2aW5nIHR5cGUgU3R5bGVUaGVtZVxyXG4gIFN0eWxlVGhlbWUgPSAnc3R5bGVUaGVtZScsXHJcblxyXG4gIC8vIERQSV9UcmVuZExpbmVGaXRUeXBlLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVGaXRUeXBlXHJcbiAgVHJlbmRMaW5lRml0VHlwZSA9ICdmaXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1VwZGF0ZVNjb3BlLCBoYXZpbmcgdHlwZSBVcGRhdGVTY29wZVxyXG4gIFVwZGF0ZVNjb3BlID0gJ3VwZGF0ZVNjb3BlJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckN0cmxEaXNwbGF5TW9kZSwgaGF2aW5nIHR5cGUgRGlzcGxheU1vZGVcclxuICBQYXJhbWV0ZXJDdHJsRGlzcGxheU1vZGUgPSAncGFyYW1EaXNwbGF5TW9kZScsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJDdHJsRGlzcGxheUZsYWcsIGhhdmluZyB0eXBlIFBhcmFtZXRlckN0cmxEaXNwbGF5RmxhZ1xyXG4gIFBhcmFtZXRlckN0cmxEaXNwbGF5RmxhZyA9ICdwYXJhbURpc3BsYXlGbGFnJyxcclxuXHJcbiAgLy8gRFBJX0luY2x1ZGVkLCBoYXZpbmcgdHlwZSBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1xyXG4gIEluY2x1ZGVkID0gJ2luY2x1ZGVkJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmRzVHlwZSwgaGF2aW5nIHR5cGUgQ29tbWFuZHNUeXBlXHJcbiAgQ29tbWFuZHNUeXBlID0gJ2NvbW1hbmRzVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJEb21haW5UeXBlLCBoYXZpbmcgdHlwZSBEb21haW5UeXBlXHJcbiAgUGFyYW1ldGVyRG9tYWluVHlwZSA9ICdwYXJhbWV0ZXJEb21haW5UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckRvbWFpblR5cGUsIGhhdmluZyB0eXBlIERvbWFpblR5cGVcclxuICBGaWx0ZXJEb21haW5UeXBlID0gJ2ZpbHRlckRvbWFpblR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyRG9tYWlucywgaGF2aW5nIHR5cGUgRG9tYWluVHlwZVtdXHJcbiAgRmlsdGVyRG9tYWlucyA9ICdmaWx0ZXJEb21haW5zJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyVHlwZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJUeXBlXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJUeXBlID0gJ2NhdGVnb3JpY2FsRmlsdGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJQYXR0ZXJuVHlwZSwgaGF2aW5nIHR5cGUgUGF0dGVyblR5cGVcclxuICBGaWx0ZXJQYXR0ZXJuVHlwZSA9ICdmaWx0ZXJQYXR0ZXJuVHlwZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJDb25kaXRpb25UeXBlLCBoYXZpbmcgdHlwZSBDb25kaXRpb25UeXBlXHJcbiAgRmlsdGVyQ29uZGl0aW9uVHlwZSA9ICdmaWx0ZXJDb25kaXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlcnNQcmVzZXRUeXBlLCBoYXZpbmcgdHlwZSBQcmVzZXRUeXBlXHJcbiAgRmlsdGVyc1ByZXNldFR5cGUgPSAnZmlsdGVyc1ByZXNldFR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyc1JhbmdlVHlwZSwgaGF2aW5nIHR5cGUgUmFuZ2VUeXBlXHJcbiAgRmlsdGVyc1JhbmdlVHlwZSA9ICdmaWx0ZXJzUmFuZ2VUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVSYW5nZVR5cGUsIGhhdmluZyB0eXBlIFJlbGF0aXZlRGF0ZVJhbmdlVHlwZVxyXG4gIERhdGVSYW5nZVR5cGUgPSAnZGF0ZVJhbmdlVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYWdlRmxhZywgaGF2aW5nIHR5cGUgUGFnZU5hdkZsYWdzXHJcbiAgUGFnZUZsYWcgPSAncGFnZUZsYWcnLFxyXG5cclxuICAvLyBEUElfTWFya3NUb1RyYWlsLCBoYXZpbmcgdHlwZSBNYXJrc1RvVHJhaWxcclxuICBNYXJrc1RvVHJhaWwgPSAnbWFya3NUb1RyYWlsJyxcclxuXHJcbiAgLy8gRFBJX1RyYWlsVHlwZSwgaGF2aW5nIHR5cGUgVHJhaWxUeXBlXHJcbiAgVHJhaWxUeXBlID0gJ3RyYWlsVHlwZScsXHJcblxyXG4gIC8vIERQSV9DaGFuZ2VQYWdlRGlyZWN0aW9uLCBoYXZpbmcgdHlwZSBDaGFuZ2VQYWdlVHlwZVxyXG4gIENoYW5nZVBhZ2VEaXJlY3Rpb24gPSAnY2hhbmdlVG8nLFxyXG5cclxuICAvLyBEUElfQW5pbWF0aW9uQ29udHJvbCwgaGF2aW5nIHR5cGUgUGFnZUFuaW1hdGlvbkNvbnRyb2xcclxuICBBbmltYXRpb25Db250cm9sID0gJ2FuaW1hdGlvbkNvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfTGluZVBhdHRlcm4sIGhhdmluZyB0eXBlIExpbmVQYXR0ZXJuXHJcbiAgTGluZVBhdHRlcm4gPSAnbGluZVBhdHRlcm4nLFxyXG5cclxuICAvLyBEUElfTGluZUNhcCwgaGF2aW5nIHR5cGUgTGluZUNhcFxyXG4gIExpbmVDYXAgPSAnbGluZUNhcCcsXHJcblxyXG4gIC8vIERQSV9MaW5lSm9pbiwgaGF2aW5nIHR5cGUgTGluZUpvaW5cclxuICBMaW5lSm9pbiA9ICdsaW5lSm9pbicsXHJcblxyXG4gIC8vIERQSV9MaW5lQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBMaW5lQWxpZ25tZW50XHJcbiAgTGluZUFsaWdubWVudCA9ICdsaW5lQWxpZ25tZW50JyxcclxuXHJcbiAgLy8gRFBJX0ZpbGxNb2RlLCBoYXZpbmcgdHlwZSBGaWxsTW9kZVxyXG4gIEZpbGxNb2RlID0gJ2ZpbGxNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0N1cnNvclNoYXBlLCBoYXZpbmcgdHlwZSBDdXJzb3JTaGFwZVxyXG4gIEN1cnNvclNoYXBlID0gJ2N1cnNvclNoYXBlJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dNZUNvbW1hbmRUeXBlLCBoYXZpbmcgdHlwZSBTaG93TWVDb21tYW5kVHlwZVxyXG4gIFNob3dNZUNvbW1hbmRUeXBlID0gJ3Nob3dNZUNvbW1hbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmSWNvblR5cGUsIGhhdmluZyB0eXBlIFNoZWxmSWNvblR5cGVcclxuICBTaGVsZkljb25UeXBlID0gJ3NoZWxmSWNvblR5cGUnLFxyXG5cclxuICAvLyBEUElfU2hlbGZJY29uVHlwZXMsIGhhdmluZyB0eXBlIFNoZWxmSWNvblR5cGVbXVxyXG4gIFNoZWxmSWNvblR5cGVzID0gJ3NoZWxmSWNvblR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1EcmF3U3R5bGUsIGhhdmluZyB0eXBlIEl0ZW1EcmF3U3R5bGVcclxuICBJdGVtRHJhd1N0eWxlID0gJ2l0ZW1EcmF3U3R5bGUnLFxyXG5cclxuICAvLyBEUElfU2NhbGVNb2RlLCBoYXZpbmcgdHlwZSBTY2FsZU1vZGVcclxuICBTY2FsZU1vZGUgPSAncGFnZVNjYWxlTW9kZScsXHJcblxyXG4gIC8vIERQSV9QYWdlT3JpZW50YXRpb25PcHRpb24sIGhhdmluZyB0eXBlIFBhZ2VPcmllbnRhdGlvblxyXG4gIFBhZ2VPcmllbnRhdGlvbk9wdGlvbiA9ICdwYWdlT3JpZW50YXRpb25PcHRpb24nLFxyXG5cclxuICAvLyBEUElfUGFnZVNpemVPcHRpb24sIGhhdmluZyB0eXBlIFBhZ2VTaXplT3B0aW9uXHJcbiAgUGFnZVNpemVPcHRpb24gPSAncGFnZVNpemVPcHRpb24nLFxyXG5cclxuICAvLyBEUElfU29ydFJlZ2lvblR5cGUsIGhhdmluZyB0eXBlIFNvcnRSZWdpb25UeXBlXHJcbiAgU29ydFJlZ2lvblR5cGUgPSAnc29ydFJlZ2lvbicsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRJdGVtTGF5b3V0LCBoYXZpbmcgdHlwZSBMZWdlbmRJdGVtTGF5b3V0XHJcbiAgTGVnZW5kSXRlbUxheW91dCA9ICdsZWdlbmRMYXlvdXQnLFxyXG5cclxuICAvLyBEUElfTGVnZW5kSXRlbU9yZGVyLCBoYXZpbmcgdHlwZSBMZWdlbmRJdGVtT3JkZXJcclxuICBMZWdlbmRJdGVtT3JkZXIgPSAnbGVnZW5kT3JkZXInLFxyXG5cclxuICAvLyBEUElfVml6SW1hZ2VSZWdpb24sIGhhdmluZyB0eXBlIFZpekltYWdlUmVnaW9uXHJcbiAgVml6SW1hZ2VSZWdpb24gPSAncicsXHJcblxyXG4gIC8vIERQSV9MZWdhY3lNZW51TmFtZSwgaGF2aW5nIHR5cGUgTGVnYWN5TWVudU5hbWVcclxuICBMZWdhY3lNZW51TmFtZSA9ICdsZWdhY3lNZW51TmFtZScsXHJcblxyXG4gIC8vIERQSV9MZWdhY3lNZW51U3RhdGUsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVTdGF0ZVxyXG4gIExlZ2FjeU1lbnVTdGF0ZSA9ICdsZWdhY3lNZW51U3RhdGUnLFxyXG5cclxuICAvLyBEUElfTGVnYWN5TWVudVN0YXRlTGlzdCwgaGF2aW5nIHR5cGUgTGVnYWN5TWVudVN0YXRlW11cclxuICBMZWdhY3lNZW51U3RhdGVMaXN0ID0gJ2xlZ2FjeU1lbnVTdGF0ZXMnLFxyXG5cclxuICAvLyBEUElfRGltZW5zaW9uVHlwZSwgaGF2aW5nIHR5cGUgRGltZW5zaW9uVHlwZVxyXG4gIERpbWVuc2lvblR5cGUgPSAnZGltZW5zaW9uVHlwZScsXHJcblxyXG4gIC8vIERQSV9MYXlvdXRUeXBlLCBoYXZpbmcgdHlwZSBMYXlvdXRUeXBlXHJcbiAgTGF5b3V0VHlwZSA9ICdsYXlvdXRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmVHlwZSwgaGF2aW5nIHR5cGUgU2hlbGZUeXBlXHJcbiAgU2hlbGZUeXBlID0gJ3NoZWxmVHlwZScsXHJcblxyXG4gIC8vIERQSV9MYXN0U2VsZWN0aW9uU2hlbGYsIGhhdmluZyB0eXBlIFNoZWxmVHlwZVxyXG4gIExhc3RTZWxlY3Rpb25TaGVsZiA9ICdsYXN0U2hlbGYnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGUsIGhhdmluZyB0eXBlIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlXHJcbiAgU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGUgPSAnc2NoZW1hRGF0YXNvdXJjZVR5cGUnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hSXRlbVR5cGUsIGhhdmluZyB0eXBlIFNjaGVtYUl0ZW1UeXBlXHJcbiAgU2NoZW1hSXRlbVR5cGUgPSAnc2NoZW1hSXRlbVR5cGUnLFxyXG5cclxuICAvLyBEUElfSFNNU2VsZWN0aW9uTW9kZSwgaGF2aW5nIHR5cGUgU2VsZWN0aW9uTW9kZVxyXG4gIEhTTVNlbGVjdGlvbk1vZGUgPSAnaHNtU2VsZWN0aW9uTW9kZScsXHJcblxyXG4gIC8vIERQSV9IU01EZWZhdWx0TWVtYmVyVHlwZSwgaGF2aW5nIHR5cGUgRGVmYXVsdE1lbWJlclR5cGVcclxuICBIU01EZWZhdWx0TWVtYmVyVHlwZSA9ICdoc21EZWZhdWx0TWVtYmVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9IU01Ob3RpZmljYXRpb25UeXBlLCBoYXZpbmcgdHlwZSBOb3RpZmljYXRpb25UeXBlXHJcbiAgSFNNTm90aWZpY2F0aW9uVHlwZSA9ICdoc21Ob3RpZmljYXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX0hTTVNlbGVjdGlvblJlcXVlc3RUeXBlLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25SZXF1ZXN0VHlwZVxyXG4gIEhTTVNlbGVjdGlvblJlcXVlc3RUeXBlID0gJ2hzbVNlbGVjdGlvblJlcXVlc3RUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0hTTU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlLCBoYXZpbmcgdHlwZSBNZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZVxyXG4gIEhTTU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlID0gJ2hzbU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1Bpdm90U3RyYXRlZ3ksIGhhdmluZyB0eXBlIEZpZWxkUGl2b3RTdHJhdGVneVxyXG4gIFBpdm90U3RyYXRlZ3kgPSAncGl2b3RTdHJhdGVneScsXHJcblxyXG4gIC8vIERQSV9BbGlhc1R5cGUsIGhhdmluZyB0eXBlIEFsaWFzVHlwZVxyXG4gIEFsaWFzVHlwZSA9ICdhbGlhc1R5cGUnLFxyXG5cclxuICAvLyBEUElfRFNPRGltZW5zaW9uU29ydE9yZGVyLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlT3JkZXJcclxuICBEU09EaW1lbnNpb25Tb3J0T3JkZXIgPSAnZHNvRGltZW5zaW9uU29ydE9yZGVyJyxcclxuXHJcbiAgLy8gRFBJX0RTT01lYXN1cmVTb3J0T3JkZXIsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VPcmRlclxyXG4gIERTT01lYXN1cmVTb3J0T3JkZXIgPSAnZHNvTWVhc3VyZVNvcnRPcmRlcicsXHJcblxyXG4gIC8vIERQSV9EU09Tb3J0T3JkZXIsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VPcmRlclxyXG4gIERTT1NvcnRPcmRlciA9ICdkc29Tb3J0T3JkZXInLFxyXG5cclxuICAvLyBEUElfVlRBZ2dUeXBlLCBoYXZpbmcgdHlwZSBWVEFnZ1R5cGVcclxuICBWVEFnZ1R5cGUgPSAndnRBZ2dyZWdhdGlvbicsXHJcblxyXG4gIC8vIERQSV9GaWVsZFR5cGVJY29uU2V0LCBoYXZpbmcgdHlwZSBGaWVsZFR5cGVJY29uU2V0XHJcbiAgRmllbGRUeXBlSWNvblNldCA9ICdmaWVsZEljb25TZXQnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsUGFydCwgaGF2aW5nIHR5cGUgVmlzdWFsUGFydFxyXG4gIFZpc3VhbFBhcnQgPSAndmlzdWFsUGFydCcsXHJcblxyXG4gIC8vIERQSV9EZWZhdWx0TWFwVG9vbEVudW0sIGhhdmluZyB0eXBlIE1hcFRvb2xTZWxlY3Rpb25cclxuICBEZWZhdWx0TWFwVG9vbEVudW0gPSAnZGVmYXVsdE1hcFRvb2xFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRNYXBVbml0RW51bSwgaGF2aW5nIHR5cGUgTWFwVW5pdFNlbGVjdGlvbkVudW1cclxuICBEZWZhdWx0TWFwVW5pdEVudW0gPSAnZGVmYXVsdE1hcFVuaXRFbnVtJyxcclxuXHJcbiAgLy8gRFBJX1NjZW5lTW9kZWxEZXRhaWwsIGhhdmluZyB0eXBlIERldGFpbFxyXG4gIFNjZW5lTW9kZWxEZXRhaWwgPSAnc2NlbmVNb2RlbERldGFpbEVudW0nLFxyXG5cclxuICAvLyBEUElfU2NlbmVNb2RlbEhpdFR5cGUsIGhhdmluZyB0eXBlIEhpdFR5cGVcclxuICBTY2VuZU1vZGVsSGl0VHlwZSA9ICdzY2VuZU1vZGVsSGl0VHlwZScsXHJcblxyXG4gIC8vIERQSV9IaXRUZXN0U3R5bGUsIGhhdmluZyB0eXBlIEhpdFRlc3RTdHlsZVxyXG4gIEhpdFRlc3RTdHlsZSA9ICdoaXRUZXN0U3R5bGUnLFxyXG5cclxuICAvLyBEUElfTWFya1N0YXRlLCBoYXZpbmcgdHlwZSBNYXJrU3RhdGVcclxuICBNYXJrU3RhdGUgPSAnbWFya1N0YXRlJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0VHlwZSwgaGF2aW5nIHR5cGUgU2hlZXRUeXBlXHJcbiAgU2hlZXRUeXBlID0gJ3NoZWV0VHlwZScsXHJcblxyXG4gIC8vIERQSV9EcmFnU291cmNlLCBoYXZpbmcgdHlwZSBEcmFnRHJvcFR5cGVcclxuICBEcmFnU291cmNlID0gJ2RyYWdTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRHJvcFRhcmdldCwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BUeXBlXHJcbiAgRHJvcFRhcmdldCA9ICdkcm9wVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcEFjdGlvbiwgaGF2aW5nIHR5cGUgU2hlbGZEcm9wQWN0aW9uXHJcbiAgU2hlbGZEcm9wQWN0aW9uID0gJ3NoZWxmRHJvcEFjdGlvbicsXHJcblxyXG4gIC8vIERQSV9TaGVsZkRyb3BDb250ZXh0LCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BDb250ZXh0XHJcbiAgU2hlbGZEcm9wQ29udGV4dCA9ICdzaGVsZkRyb3BDb250ZXh0JyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlbGVjdGlvblRyYWNraW5nLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25UcmFja2luZ1xyXG4gIEZpbHRlclNlbGVjdGlvblRyYWNraW5nID0gJ2ZpbHRlclNlbGVjdGlvblRyYWNraW5nJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclVwZGF0ZVR5cGUsIGhhdmluZyB0eXBlIEZpbHRlclVwZGF0ZVR5cGVcclxuICBGaWx0ZXJVcGRhdGVUeXBlID0gJ2ZpbHRlclVwZGF0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyVXBkYXRlUXVhbGlmaWVyVHlwZSwgaGF2aW5nIHR5cGUgRmlsdGVyVXBkYXRlUXVhbGlmaWVyVHlwZVxyXG4gIEZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGUgPSAnZmlsdGVyVXBkYXRlUXVhbGlmaWVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJFcnJvciwgaGF2aW5nIHR5cGUgUGFyYW1ldGVyRXJyb3JcclxuICBQYXJhbWV0ZXJFcnJvciA9ICdwYXJhbWV0ZXJFcnJvcicsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25UeXBlLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25UeXBlXHJcbiAgU2VsZWN0aW9uVHlwZSA9ICdzZWxlY3Rpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGlvblVwZGF0ZVR5cGUsIGhhdmluZyB0eXBlIFNlbGVjdGlvblVwZGF0ZVR5cGVcclxuICBTZWxlY3Rpb25VcGRhdGVUeXBlID0gJ3NlbGVjdGlvblVwZGF0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0T3B0aW9ucywgaGF2aW5nIHR5cGUgU2VsZWN0T3B0aW9uc1xyXG4gIFNlbGVjdE9wdGlvbnMgPSAnc2VsZWN0T3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9XaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3IsIGhhdmluZyB0eXBlIFdoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvclxyXG4gIFdoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvciA9ICd3aGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3InLFxyXG5cclxuICAvLyBEUElfQXhpc09yaWVudGF0aW9uLCBoYXZpbmcgdHlwZSBPcmllbnRhdGlvblxyXG4gIEF4aXNPcmllbnRhdGlvbiA9ICdheGlzT3JpZW50YXRpb24nLFxyXG5cclxuICAvLyBEUElfRGVjaW1hbE1vZGUsIGhhdmluZyB0eXBlIERlY2ltYWxNb2RlXHJcbiAgRGVjaW1hbE1vZGUgPSAnZGVjaW1hbE1vZGUnLFxyXG5cclxuICAvLyBEUElfQWN0aXZhdGlvbk1ldGhvZCwgaGF2aW5nIHR5cGUgQWN0aXZhdGlvbk1ldGhvZFxyXG4gIEFjdGl2YXRpb25NZXRob2QgPSAnYWN0aXZhdGlvbicsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VUeXBlLCBoYXZpbmcgdHlwZSBTb3VyY2VUeXBlXHJcbiAgU291cmNlVHlwZSA9ICdzb3VyY2VUeXBlJyxcclxuXHJcbiAgLy8gRFBJX09uQ2xlYXIsIGhhdmluZyB0eXBlIE9uQ2xlYXJcclxuICBPbkNsZWFyID0gJ29uQ2xlYXInLFxyXG5cclxuICAvLyBEUElfTWVyZ2VPclNwbGl0LCBoYXZpbmcgdHlwZSBNZXJnZU9yU3BsaXRcclxuICBNZXJnZU9yU3BsaXQgPSAnbWVyZ2VPclNwbGl0JyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlck1vZGUsIGhhdmluZyB0eXBlIEZpbHRlck1vZGVcclxuICBGaWx0ZXJNb2RlID0gJ2ZpbHRlck1vZGUnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyVHlwZSwgaGF2aW5nIHR5cGUgRmlsdGVyVHlwZVxyXG4gIEZpbHRlclR5cGUgPSAnZmlsdGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9ab25lVHlwZSwgaGF2aW5nIHR5cGUgWm9uZVR5cGVcclxuICBab25lVHlwZSA9ICd6b25lVHlwZScsXHJcblxyXG4gIC8vIERQSV9ab25lTGF5b3V0VHlwZSwgaGF2aW5nIHR5cGUgWm9uZUxheW91dFR5cGVcclxuICBab25lTGF5b3V0VHlwZSA9ICd6b25lTGF5b3V0VHlwZScsXHJcblxyXG4gIC8vIERQSV9RdWlja1RhYmxlQ2FsY1R5cGUsIGhhdmluZyB0eXBlIFF1aWNrVGFibGVDYWxjQ29tbWFuZFR5cGVcclxuICBRdWlja1RhYmxlQ2FsY1R5cGUgPSAncXVpY2tUYWJsZUNhbGNUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlQ2FsY0NvbW1hbmRUeXBlLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNDb21tYW5kVHlwZVxyXG4gIFRhYmxlQ2FsY0NvbW1hbmRUeXBlID0gJ3RhYmxlQ2FsY0NvbW1hbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlQ2FsY0FkZHJlc3NUeXBlLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZFR5cGVcclxuICBUYWJsZUNhbGNBZGRyZXNzVHlwZSA9ICd0YWJsZUNhbGNBZGRyZXNzVHlwZScsXHJcblxyXG4gIC8vIERQSV9NYXJrTGF5b3V0UHJpbWl0aXZlLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVcclxuICBNYXJrTGF5b3V0UHJpbWl0aXZlID0gJ21hcmtMYXlvdXRQcmltaXRpdmUnLFxyXG5cclxuICAvLyBEUElfTWFya0xheW91dFZpelR5cGUsIGhhdmluZyB0eXBlIFZpelR5cGVcclxuICBNYXJrTGF5b3V0Vml6VHlwZSA9ICdtYXJrTGF5b3V0Vml6VHlwZScsXHJcblxyXG4gIC8vIERQSV9NYXJrQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBNYXJrQWxpZ25tZW50XHJcbiAgTWFya0FsaWdubWVudCA9ICdtYXJrQWxpZ25tZW50JyxcclxuXHJcbiAgLy8gRFBJX01vZGlmeVpvbmVaT3JkZXJUeXBlLCBoYXZpbmcgdHlwZSBNb2RpZnlab25lWk9yZGVyQ29tbWFuZFR5cGVcclxuICBNb2RpZnlab25lWk9yZGVyVHlwZSA9ICdtb2RpZnlab25lWk9yZGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9UZXh0UmVnaW9uSEFsaWduLCBoYXZpbmcgdHlwZSBUZXh0UmVnaW9uSEFsaWduXHJcbiAgVGV4dFJlZ2lvbkhBbGlnbiA9ICdoYWxpZ24nLFxyXG5cclxuICAvLyBEUElfVGV4dFJlZ2lvblZBbGlnbiwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblZBbGlnblxyXG4gIFRleHRSZWdpb25WQWxpZ24gPSAndmFsaWduJyxcclxuXHJcbiAgLy8gRFBJX1BhdGhFbGVtZW50LCBoYXZpbmcgdHlwZSBQYXRoRWxlbWVudFxyXG4gIFBhdGhFbGVtZW50ID0gJ3BhdGhFbGVtZW50JyxcclxuXHJcbiAgLy8gRFBJX1BhdGhFbGVtZW50cywgaGF2aW5nIHR5cGUgUGF0aEVsZW1lbnRbXVxyXG4gIFBhdGhFbGVtZW50cyA9ICdwYXRoRWxlbWVudHMnLFxyXG5cclxuICAvLyBEUElfUmVuZGVyTW9kZSwgaGF2aW5nIHR5cGUgUmVuZGVyTW9kZVxyXG4gIFJlbmRlck1vZGUgPSAncmVuZGVyTW9kZScsXHJcblxyXG4gIC8vIERQSV9Gb250U3R5bGUsIGhhdmluZyB0eXBlIFRhYmxlYXVGb250U3R5bGVcclxuICBGb250U3R5bGUgPSAnZm9udFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX0ZvbnRXZWlnaHQsIGhhdmluZyB0eXBlIEZvbnRXZWlnaHRcclxuICBGb250V2VpZ2h0ID0gJ2ZvbnRXZWlnaHQnLFxyXG5cclxuICAvLyBEUElfVGV4dERlY29yYXRpb24sIGhhdmluZyB0eXBlIFRleHREZWNvcmF0aW9uXHJcbiAgVGV4dERlY29yYXRpb24gPSAndGV4dERlY29yYXRpb24nLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGUsIGhhdmluZyB0eXBlIEJvcmRlclN0eWxlXHJcbiAgQm9yZGVyU3R5bGUgPSAnYm9yZGVyU3R5bGUnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVUb3AsIGhhdmluZyB0eXBlIEJvcmRlclN0eWxlXHJcbiAgQm9yZGVyU3R5bGVUb3AgPSAnYm9yZGVyU3R5bGVUb3AnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVSaWdodCwgaGF2aW5nIHR5cGUgQm9yZGVyU3R5bGVcclxuICBCb3JkZXJTdHlsZVJpZ2h0ID0gJ2JvcmRlclN0eWxlUmlnaHQnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVCb3R0b20sIGhhdmluZyB0eXBlIEJvcmRlclN0eWxlXHJcbiAgQm9yZGVyU3R5bGVCb3R0b20gPSAnYm9yZGVyU3R5bGVCb3R0b20nLFxyXG5cclxuICAvLyBEUElfQm9yZGVyU3R5bGVMZWZ0LCBoYXZpbmcgdHlwZSBCb3JkZXJTdHlsZVxyXG4gIEJvcmRlclN0eWxlTGVmdCA9ICdib3JkZXJTdHlsZUxlZnQnLFxyXG5cclxuICAvLyBEUElfRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eSwgaGF2aW5nIHR5cGUgRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eVxyXG4gIEZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHkgPSAnZmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9HZW9TZWFyY2hWaXNpYmlsaXR5LCBoYXZpbmcgdHlwZSBHZW9TZWFyY2hWaXNpYmlsaXR5XHJcbiAgR2VvU2VhcmNoVmlzaWJpbGl0eSA9ICdnZW9ncmFwaGljU2VhcmNoVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9NYXBTY2FsZVZpc2liaWxpdHksIGhhdmluZyB0eXBlIE1hcFNjYWxlVmlzaWJpbGl0eVxyXG4gIE1hcFNjYWxlVmlzaWJpbGl0eSA9ICdtYXBTY2FsZVZpc2liaWxpdHknLFxyXG5cclxuICAvLyBEUElfVml6TmF2aWdhdGlvblNldHRpbmcsIGhhdmluZyB0eXBlIFZpek5hdmlnYXRpb25TZXR0aW5nXHJcbiAgVml6TmF2aWdhdGlvblNldHRpbmcgPSAndml6TmF2aWdhdGlvblNldHRpbmcnLFxyXG5cclxuICAvLyBEUElfQXV0b0RyaWxsVmlzaWJpbGl0eSwgaGF2aW5nIHR5cGUgQXV0b0RyaWxsVmlzaWJpbGl0eVxyXG4gIEF1dG9EcmlsbFZpc2liaWxpdHkgPSAnYXV0b0RyaWxsVmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIERQSV9DbGllbnRVSU1ldHJpY1R5cGUsIGhhdmluZyB0eXBlIENsaWVudFVJTWV0cmljVHlwZVxyXG4gIENsaWVudFVJTWV0cmljVHlwZSA9ICdjbGllbnRVaU1ldHJpY1R5cGUnLFxyXG5cclxuICAvLyBEUElfU2hlZXRTY3JvbGxEaXJlY3Rpb24sIGhhdmluZyB0eXBlIFNoZWV0U2Nyb2xsRGlyZWN0aW9uXHJcbiAgU2hlZXRTY3JvbGxEaXJlY3Rpb24gPSAnc2hlZXRTY3JvbGxEaXJlY3Rpb24nLFxyXG5cclxuICAvLyBEUElfU2l6ZU1vZGUsIGhhdmluZyB0eXBlIFNpemVNb2RlXHJcbiAgU2l6ZU1vZGUgPSAnc2l6ZU1vZGUnLFxyXG5cclxuICAvLyBEUElfUGVyc3BlY3RpdmVBZ2dyZWdhdGUsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlQWdncmVnYXRlXHJcbiAgUGVyc3BlY3RpdmVBZ2dyZWdhdGUgPSAncGVyc3BlY3RpdmVBZ2dyZWdhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TdHlsZUF0dHJpYnV0ZSwgaGF2aW5nIHR5cGUgU3R5bGVBdHRyaWJ1dGVcclxuICBTdHlsZUF0dHJpYnV0ZSA9ICdzdHlsZUF0dHJpYnV0ZScsXHJcblxyXG4gIC8vIERQSV9TdHlsZUF0dHJpYnV0ZXMsIGhhdmluZyB0eXBlIFN0eWxlQXR0cmlidXRlW11cclxuICBTdHlsZUF0dHJpYnV0ZXMgPSAnc3R5bGVBdHRyaWJ1dGVzJyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlRWxlbWVudCwgaGF2aW5nIHR5cGUgU3R5bGVFbGVtZW50XHJcbiAgU3R5bGVFbGVtZW50ID0gJ3N0eWxlRWxlbWVudCcsXHJcblxyXG4gIC8vIERQSV9TdHlsZURhdGFDbGFzcywgaGF2aW5nIHR5cGUgU3R5bGVEYXRhQ2xhc3NcclxuICBTdHlsZURhdGFDbGFzcyA9ICdzdHlsZUNsYXNzJyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlRmllbGRTY29wZSwgaGF2aW5nIHR5cGUgU3R5bGVGaWVsZFNjb3BlXHJcbiAgU3R5bGVGaWVsZFNjb3BlID0gJ3N0eWxlU2NvcGUnLFxyXG5cclxuICAvLyBEUElfRm9ybWF0Q29udHJvbFR5cGUsIGhhdmluZyB0eXBlIEZvcm1hdENvbnRyb2xUeXBlXHJcbiAgRm9ybWF0Q29udHJvbFR5cGUgPSAnZm9ybWF0VHlwZScsXHJcblxyXG4gIC8vIERQSV9MaW5lSW50ZXJwb2xhdGlvbk1vZGUsIGhhdmluZyB0eXBlIExpbmVJbnRlcnBvbGF0aW9uTW9kZVxyXG4gIExpbmVJbnRlcnBvbGF0aW9uTW9kZSA9ICdsaW5lSW50ZXJwb2xhdGlvbk1vZGUnLFxyXG5cclxuICAvLyBEUElfTGluZU1hcmtlclBvc2l0aW9uLCBoYXZpbmcgdHlwZSBMaW5lTWFya2VyUG9zaXRpb25cclxuICBMaW5lTWFya2VyUG9zaXRpb24gPSAnbGluZU1hcmtlclBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX01hcmtlcnNNb2RlLCBoYXZpbmcgdHlwZSBNYXJrTWFya2Vyc01vZGVcclxuICBNYXJrZXJzTW9kZSA9ICdtYXJrZXJzTW9kZScsXHJcblxyXG4gIC8vIERQSV9BcHBDb25maWdFbnVtLCBoYXZpbmcgdHlwZSBBcHBDb25maWdFbnVtXHJcbiAgQXBwQ29uZmlnRW51bSA9ICdhcHBDb25maWdFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZVR5cGUsIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZVR5cGVcclxuICBDb2xvclBhbGV0dGVUeXBlID0gJ2NvbG9yUGFsZXR0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdFR5cGUsIGhhdmluZyB0eXBlIEV4dHJhY3RUeXBlXHJcbiAgRXh0cmFjdFR5cGUgPSAnZXh0cmFjdFR5cGUnLFxyXG5cclxuICAvLyBEUElfQWN0aXZpdHlEaXNwb3NpdGlvbiwgaGF2aW5nIHR5cGUgQWN0aXZpdHlEaXNwb3NpdGlvblxyXG4gIEFjdGl2aXR5RGlzcG9zaXRpb24gPSAnYWN0aXZpdHlEaXNwb3NpdGlvbicsXHJcblxyXG4gIC8vIERQSV9BY3Rpdml0eVJlc3VsdCwgaGF2aW5nIHR5cGUgQWN0aXZpdHlSZXN1bHRcclxuICBBY3Rpdml0eVJlc3VsdCA9ICdhY3Rpdml0eVJlc3VsdCcsXHJcblxyXG4gIC8vIERQSV9Ub29sdGlwTW9kZSwgaGF2aW5nIHR5cGUgVG9vbHRpcE1vZGVcclxuICBUb29sdGlwTW9kZSA9ICd0b29sdGlwTW9kZScsXHJcblxyXG4gIC8vIERQSV9SdW50aW1lT3V0cHV0LCBoYXZpbmcgdHlwZSBSdW50aW1lT3V0cHV0XHJcbiAgUnVudGltZU91dHB1dCA9ICdydW50aW1lT3V0cHV0JyxcclxuXHJcbiAgLy8gRFBJX0FuYWx5dGljc09iamVjdFR5cGUsIGhhdmluZyB0eXBlIEFuYWx5dGljc09iamVjdFR5cGVcclxuICBBbmFseXRpY3NPYmplY3RUeXBlID0gJ2FuYWx5dGljc09iamVjdFR5cGUnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uU3RhdHVzLCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzXHJcbiAgVUlBdXRvbWF0aW9uU3RhdHVzID0gJ3VpQXV0b21hdGlvblN0YXR1cycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdEYXRhVHlwZSwgaGF2aW5nIHR5cGUgVGFibGVWaWV3RGF0YVR5cGVcclxuICBUYWJsZVZpZXdEYXRhVHlwZSA9ICd0YWJsZVZpZXdlckRhdGFUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1VuaXRzRm9ybWF0LCBoYXZpbmcgdHlwZSBVbml0c0Zvcm1hdEVudW1cclxuICBVbml0c0Zvcm1hdCA9ICd1bml0c0Zvcm1hdCcsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMaW1pdFR5cGUsIGhhdmluZyB0eXBlIExpbWl0VHlwZVxyXG4gIEZpbHRlckxpbWl0VHlwZSA9ICdmaWx0ZXJMaW1pdFR5cGUnLFxyXG5cclxuICAvLyBEUElfRGlzdHJpYnV0aW9uU2VsZWN0ZWRUeXBlLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25UeXBlXHJcbiAgRGlzdHJpYnV0aW9uU2VsZWN0ZWRUeXBlID0gJ2Rpc3RyaWJ1dGlvblNlbGVjdGVkVHlwZScsXHJcblxyXG4gIC8vIERQSV9EaXN0cmlidXRpb25UeXBlLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25UeXBlXHJcbiAgRGlzdHJpYnV0aW9uVHlwZSA9ICdkaXN0cmlidXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkRGlzdHJpYnV0aW9uVHlwZVByZXNNb2RlbFxyXG4gIFRyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlID0gJ3RyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlcywgaGF2aW5nIHR5cGUgVHJhbnNsYXRlZERpc3RyaWJ1dGlvblR5cGVQcmVzTW9kZWxbXVxyXG4gIFRyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlcyA9ICd0cmFuc2xhdGVkRGlzdHJpYnV0aW9uVHlwZXMnLFxyXG5cclxuICAvLyBEUElfUmVmTGluZUZvcm11bGFHcm91cCwgaGF2aW5nIHR5cGUgRm9ybXVsYUdyb3VwXHJcbiAgUmVmTGluZUZvcm11bGFHcm91cCA9ICdyZWZsaW5lRm9ybXVsYUdyb3VwJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmVTY29wZVR5cGUsIGhhdmluZyB0eXBlIFNjb3BlVHlwZVxyXG4gIFJlZmVyZW5jZUxpbmVTY29wZVR5cGUgPSAncmVmZXJlbmNlTGluZVNjb3BlVHlwZScsXHJcblxyXG4gIC8vIERQSV9TdERldlR5cGUsIGhhdmluZyB0eXBlIFN0RGV2VHlwZVxyXG4gIFN0RGV2VHlwZSA9ICdzdGRldlR5cGUnLFxyXG5cclxuICAvLyBEUElfU2hvd0JvdW5kcywgaGF2aW5nIHR5cGUgU2hvd0JvdW5kc1xyXG4gIFNob3dCb3VuZHMgPSAnc2hvd0JvdW5kcycsXHJcblxyXG4gIC8vIERQSV9Cb3hwbG90V2hpc2tlclR5cGUsIGhhdmluZyB0eXBlIEJveHBsb3RXaGlza2VyVHlwZVxyXG4gIEJveHBsb3RXaGlza2VyVHlwZSA9ICdib3hwbG90V2hpc2tlclR5cGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZUxhYmVsVHlwZSwgaGF2aW5nIHR5cGUgTGFiZWxUeXBlXHJcbiAgUmVmZXJlbmNlTGluZUxhYmVsVHlwZSA9ICdyZWZlcmVuY2VMaW5lTGFiZWxUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BhaXJlZFJlZmVyZW5jZUxpbmVMYWJlbFR5cGUsIGhhdmluZyB0eXBlIExhYmVsVHlwZVxyXG4gIFBhaXJlZFJlZmVyZW5jZUxpbmVMYWJlbFR5cGUgPSAncGFpcmVkUmVmZXJlbmNlTGluZUxhYmVsVHlwZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlSW50ZXJ2YWxTZWxlY3RlZFN0YXRlLCBoYXZpbmcgdHlwZSBDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZVxyXG4gIENvbmZpZGVuY2VJbnRlcnZhbFNlbGVjdGVkU3RhdGUgPSAnY29uZmlkZW5jZUludGVydmFsU2VsZWN0ZWRTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlSW50ZXJ2YWxTdGF0ZSwgaGF2aW5nIHR5cGUgQ29uZmlkZW5jZUludGVydmFsU3RhdGVcclxuICBDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZSA9ICdjb25maWRlbmNlSW50ZXJ2YWxTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9UcmFuc2xhdGVkTGFiZWxUeXBlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkTGFiZWxUeXBlUHJlc01vZGVsXHJcbiAgVHJhbnNsYXRlZExhYmVsVHlwZSA9ICd0cmFuc2xhdGVkTGFiZWxUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmVWYWxpZExhYmVsVHlwZXMsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRMYWJlbFR5cGVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVWYWxpZExhYmVsVHlwZXMgPSAndmFsaWRSZWZlcmVuY2VMaW5lTGFiZWxUeXBlcycsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGUsIGhhdmluZyB0eXBlIEZvcm11bGFUeXBlXHJcbiAgUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlID0gJ3JlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZScsXHJcblxyXG4gIC8vIERQSV9QYWlyZWRSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGUsIGhhdmluZyB0eXBlIEZvcm11bGFUeXBlXHJcbiAgUGFpcmVkUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlID0gJ3BhaXJlZFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZScsXHJcblxyXG4gIC8vIERQSV9UcmFuc2xhdGVkRm9ybXVsYVR5cGUsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRGb3JtdWxhVHlwZVByZXNNb2RlbFxyXG4gIFRyYW5zbGF0ZWRGb3JtdWxhVHlwZSA9ICd0cmFuc2xhdGVkRm9ybXVsYVR5cGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVZhbGlkRm9ybXVsYVR5cGVzLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkRm9ybXVsYVR5cGVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVWYWxpZEZvcm11bGFUeXBlcyA9ICd2YWxpZFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZXMnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZVZhbGlkUGFpcmVkRm9ybXVsYVR5cGVzLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkRm9ybXVsYVR5cGVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVWYWxpZFBhaXJlZEZvcm11bGFUeXBlcyA9ICd2YWxpZFJlZmVyZW5jZUxpbmVQYWlyZWRGb3JtdWxhVHlwZXMnLFxyXG5cclxuICAvLyBEUElfVHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGVQcmVzTW9kZWxcclxuICBUcmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGUgPSAndHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWRDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZXMsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZVByZXNNb2RlbFtdXHJcbiAgVHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlcyA9ICd0cmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGVzJyxcclxuXHJcbiAgLy8gRFBJX1RyYW5zbGF0ZWRTdERldlR5cGUsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRTdERldlR5cGVQcmVzTW9kZWxcclxuICBUcmFuc2xhdGVkU3REZXZUeXBlID0gJ3RyYW5zbGF0ZWRTdGRldlR5cGUnLFxyXG5cclxuICAvLyBEUElfVHJhbnNsYXRlZFN0RGV2VHlwZXMsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWRTdERldlR5cGVQcmVzTW9kZWxbXVxyXG4gIFRyYW5zbGF0ZWRTdERldlR5cGVzID0gJ3RyYW5zbGF0ZWRTdGRldlR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmVMT0RDYWxjVHlwZSwgaGF2aW5nIHR5cGUgTE9EQ2FsY1R5cGVcclxuICBSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGUgPSAncmVmZXJlbmNlTGluZUxvZENhbGNUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1ZhbHVlRG9tYWluVHlwZSwgaGF2aW5nIHR5cGUgVmFsdWVEb21haW5UeXBlXHJcbiAgVmFsdWVEb21haW5UeXBlID0gJ3ZhbHVlRG9tYWluVHlwZScsXHJcblxyXG4gIC8vIERQSV9WYWx1ZURvbWFpblR5cGVzLCBoYXZpbmcgdHlwZSBWYWx1ZURvbWFpblR5cGVbXVxyXG4gIFZhbHVlRG9tYWluVHlwZXMgPSAndmFsdWVEb21haW5UeXBlcycsXHJcblxyXG4gIC8vIERQSV9PcGVyYXRpb25UeXBlLCBoYXZpbmcgdHlwZSBPcGVyYXRpb25UeXBlXHJcbiAgT3BlcmF0aW9uVHlwZSA9ICdvcGVyYXRpb25UeXBlJyxcclxuXHJcbiAgLy8gRFBJX09wZXJhdGlvblR5cGVzLCBoYXZpbmcgdHlwZSBPcGVyYXRpb25UeXBlW11cclxuICBPcGVyYXRpb25UeXBlcyA9ICdvcGVyYXRpb25UeXBlcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZUNhdGVnb3J5LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uVHlwZUNhdGVnb3J5XHJcbiAgQ29ubmVjdGlvblR5cGVDYXRlZ29yeSA9ICdjb25uZWN0aW9uVHlwZUNhdGVnb3J5JyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UeXBlR3JvdXAsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UeXBlR3JvdXBcclxuICBDb25uZWN0aW9uVHlwZUdyb3VwID0gJ2Nvbm5lY3Rpb25UeXBlR3JvdXAnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZFJlZGlyZWN0VHlwZSwgaGF2aW5nIHR5cGUgQ29tbWFuZFJlZGlyZWN0VHlwZVxyXG4gIENvbW1hbmRSZWRpcmVjdFR5cGUgPSAnY29tbWFuZFJlZGlyZWN0VHlwZScsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TcGxpdE1vZGUsIGhhdmluZyB0eXBlIFNwbGl0TW9kZVxyXG4gIEN1c3RvbVNwbGl0TW9kZSA9ICdjdXN0b21TcGxpdE1vZGUnLFxyXG5cclxuICAvLyBEUElfQ3VzdG9tU3BsaXRTZXBhcmF0b3JUeXBlLCBoYXZpbmcgdHlwZSBTZXBhcmF0b3JUeXBlXHJcbiAgQ3VzdG9tU3BsaXRTZXBhcmF0b3JUeXBlID0gJ2N1c3RvbVNwbGl0U2VwYXJhdG9yVHlwZScsXHJcblxyXG4gIC8vIERQSV9MZXZlbFNlbGVjdGlvblN0YXRlLCBoYXZpbmcgdHlwZSBMZXZlbFNlbGVjdGlvblN0YXRlXHJcbiAgTGV2ZWxTZWxlY3Rpb25TdGF0ZSA9ICdsZXZlbFNlbGVjdGlvblN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX0xldmVsU2VsZWN0aW9uU3RhdGVzLCBoYXZpbmcgdHlwZSBMZXZlbFNlbGVjdGlvblN0YXRlW11cclxuICBMZXZlbFNlbGVjdGlvblN0YXRlcyA9ICdsZXZlbFNlbGVjdGlvblN0YXRlcycsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VEZXN0SWNvbiwgaGF2aW5nIHR5cGUgU291cmNlRGVzdEljb25cclxuICBTb3VyY2VEZXN0SWNvbiA9ICdzb3VyY2VEZXN0SWNvbicsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRMYXlvdXQsIGhhdmluZyB0eXBlIExlZ2VuZExheW91dFxyXG4gIExlZ2VuZExheW91dCA9ICdwYWdlTGVnZW5kTGF5b3V0JyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlc0VkaXRSZXN1bHRDb2RlLCBoYXZpbmcgdHlwZSBJbWFnZXNFZGl0UmVzdWx0Q29kZVxyXG4gIEltYWdlc0VkaXRSZXN1bHRDb2RlID0gJ2ltYWdlc0VkaXRSZXN1bHRDb2RlJyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1bGF0aW9uQ29udGV4dCwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25Db250ZXh0XHJcbiAgQ2FsY3VsYXRpb25Db250ZXh0ID0gJ2NhbGN1bGF0aW9uQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9Xb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlLCBoYXZpbmcgdHlwZSBXb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlXHJcbiAgV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZSA9ICd3b3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0lzUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBUcmlCb29sXHJcbiAgSXNQYXJhbWV0ZXIgPSAnaXNQYXJhbWV0ZXInLFxyXG5cclxuICAvLyBEUElfQWRkcmVzc2luZ1N0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIEFkZHJlc3NpbmdTdGF0ZSA9ICdhZGRyZXNzaW5nU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQWxsUGFnZXNTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcclxuICBBbGxQYWdlc1N0YXRlID0gJ2FsbFBhZ2VzU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQXRUaGVMZXZlbFN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIEF0VGhlTGV2ZWxTdGF0ZSA9ICdhdFRoZUxldmVsU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ29tcHV0ZUNvbXBvdW5kZWRSYXRlU3RhdGUsIGhhdmluZyB0eXBlIFdpZGdldFN0YXRlXHJcbiAgQ29tcHV0ZUNvbXBvdW5kZWRSYXRlU3RhdGUgPSAnY29tcHV0ZUNvbXBvdW5kZWRSYXRlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ3VzdG9tTnVsbElmSW5jb21wbGV0ZVN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIEN1c3RvbU51bGxJZkluY29tcGxldGVTdGF0ZSA9ICdjdXN0b21OdWxsSWZJbmNvbXBsZXRlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfTmVzdGVkQ2FsY3NTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcclxuICBOZXN0ZWRDYWxjc1N0YXRlID0gJ25lc3RlZENhbGNzU3RhdGUnLFxyXG5cclxuICAvLyBEUElfUmFua1R5cGVTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcclxuICBSYW5rVHlwZVN0YXRlID0gJ3JhbmtUeXBlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlT3B0aW9uc1N0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFJlZmVyZW5jZU9wdGlvbnNTdGF0ZSA9ICdyZWZlcmVuY2VPcHRpb25zU3RhdGUnLFxyXG5cclxuICAvLyBEUElfUmVzdGFydEV2ZXJ5U3RhdGUsIGhhdmluZyB0eXBlIFdpZGdldFN0YXRlXHJcbiAgUmVzdGFydEV2ZXJ5U3RhdGUgPSAncmVzdGFydEV2ZXJ5U3RhdGUnLFxyXG5cclxuICAvLyBEUElfU29ydEFnZ1N0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFNvcnRBZ2dTdGF0ZSA9ICdzb3J0QWdnU3RhdGUnLFxyXG5cclxuICAvLyBEUElfU29ydFN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFNvcnRTdGF0ZSA9ICdzb3J0U3RhdGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjVHlwZVN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFRhYmxlQ2FsY1R5cGVTdGF0ZSA9ICd0YWJsZUNhbGNUeXBlU3RhdGUnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjQXNzaXN0YW5jZVdpZGdldFN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxyXG4gIFRhYmxlQ2FsY0Fzc2lzdGFuY2VXaWRnZXRTdGF0ZSA9ICd0YWJsZUNhbGNBc3Npc3RhbmNlV2lkZ2V0U3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ2FsY05lc3RpbmdMZXZlbCwgaGF2aW5nIHR5cGUgQ2FsY05lc3RpbmdMZXZlbFxyXG4gIENhbGNOZXN0aW5nTGV2ZWwgPSAnY2FsY05lc3RpbmdMZXZlbCcsXHJcblxyXG4gIC8vIERQSV9EYXRhUHJvdmlkZXJUeXBlLCBoYXZpbmcgdHlwZSBEYXRhUHJvdmlkZXJUeXBlXHJcbiAgRGF0YVByb3ZpZGVyVHlwZSA9ICdkYXRhUHJvdmlkZXJUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0hldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uLCBoYXZpbmcgdHlwZSBIZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvblxyXG4gIEhldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uID0gJ2hldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RSZWZyZXNoU3RhdHVzLCBoYXZpbmcgdHlwZSBFeHRyYWN0UmVmcmVzaFN0YXR1c1xyXG4gIEV4dHJhY3RSZWZyZXNoU3RhdHVzID0gJ2V4dHJhY3RSZWZyZXNoU3RhdHVzJyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5LCBoYXZpbmcgdHlwZSBSaWNoVGV4dEVkaXRvcldpZGdldEtleVxyXG4gIFJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5ID0gJ3JpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5JyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0V2lkZ2V0S2V5cywgaGF2aW5nIHR5cGUgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlbXVxyXG4gIFJpY2hUZXh0V2lkZ2V0S2V5cyA9ICdyaWNoVGV4dFdpZGdldEtleXMnLFxyXG5cclxuICAvLyBEUElfVHlwZU9mRm9ybWF0SXRlbSwgaGF2aW5nIHR5cGUgVHlwZU9mRm9ybWF0SXRlbVxyXG4gIFR5cGVPZkZvcm1hdEl0ZW0gPSAndHlwZU9mRm9ybWF0SXRlbScsXHJcblxyXG4gIC8vIERQSV9UeXBlT2ZGb3JtYXRDb250YWluZXIsIGhhdmluZyB0eXBlIFR5cGVPZkZvcm1hdENvbnRhaW5lclxyXG4gIFR5cGVPZkZvcm1hdENvbnRhaW5lciA9ICd0eXBlT2ZGb3JtYXRDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfVHlwZU9mRm9ybWF0Q29udHJvbCwgaGF2aW5nIHR5cGUgVHlwZU9mRm9ybWF0Q29udHJvbFxyXG4gIFR5cGVPZkZvcm1hdENvbnRyb2wgPSAndHlwZU9mRm9ybWF0Q29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRXaWRnZXRLZXksIGhhdmluZyB0eXBlIEZvcm1hdFdpZGdldEtleVxyXG4gIEZvcm1hdFdpZGdldEtleSA9ICdmb3JtYXRXaWRnZXRLZXknLFxyXG5cclxuICAvLyBEUElfQ29sb3JTd2F0Y2hUeXBlLCBoYXZpbmcgdHlwZSBDb2xvclN3YXRjaFR5cGVcclxuICBDb2xvclN3YXRjaFR5cGUgPSAnZm9ybWF0Q29sb3JTd2F0Y2hUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BpY2tlclR5cGUsIGhhdmluZyB0eXBlIFBpY2tlclR5cGVcclxuICBQaWNrZXJUeXBlID0gJ3BpY2tlclR5cGUnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlSZWZyZXNoVHlwZSwgaGF2aW5nIHR5cGUgUmVmcmVzaFR5cGVcclxuICBFeHRyYWN0SGlzdG9yeVJlZnJlc2hUeXBlID0gJ2V4dHJhY3RIaXN0b3J5UmVmcmVzaFR5cGVFbnVtJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNGb2xkU3RhdGUsIGhhdmluZyB0eXBlIEF4aXNGb2xkU3RhdGVcclxuICBBeGlzRm9sZFN0YXRlID0gJ2F4aXNGb2xkU3RhdGUnLFxyXG5cclxuICAvLyBEUElfVGlja01hcmtTcGFjaW5nVW5pdHMsIGhhdmluZyB0eXBlIFRpY2tTcGFjaW5nVW5pdHNcclxuICBUaWNrTWFya1NwYWNpbmdVbml0cyA9ICd0aWNrU3BhY2luZ1VuaXRzJyxcclxuXHJcbiAgLy8gRFBJX1RpY2tNYXJrU3RhdGUsIGhhdmluZyB0eXBlIFRpY2tNYXJrU3RhdGVcclxuICBUaWNrTWFya1N0YXRlID0gJ3RpY2tNYXJrU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQXhpc1JhbmdlVHlwZSwgaGF2aW5nIHR5cGUgQXhpc1JhbmdlVHlwZVxyXG4gIEF4aXNSYW5nZVR5cGUgPSAnYXhpc1JhbmdlVHlwZScsXHJcblxyXG4gIC8vIERQSV9TY2FsZVR5cGUsIGhhdmluZyB0eXBlIFNjYWxlVHlwZVxyXG4gIFNjYWxlVHlwZSA9ICdzY2FsZVR5cGUnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkRGV2aWNlTGF5b3V0LCBoYXZpbmcgdHlwZSBEYXNoYm9hcmREZXZpY2VMYXlvdXRcclxuICBEYXNoYm9hcmREZXZpY2VMYXlvdXQgPSAnZGFzaGJvYXJkRGV2aWNlTGF5b3V0JyxcclxuXHJcbiAgLy8gRFBJX0FjdGl2YXRlRGV2aWNlTGF5b3V0LCBoYXZpbmcgdHlwZSBEYXNoYm9hcmREZXZpY2VMYXlvdXRcclxuICBBY3RpdmF0ZURldmljZUxheW91dCA9ICdhY3RpdmF0ZURldmljZUxheW91dCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmREZXZpY2VMYXlvdXRzLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmREZXZpY2VMYXlvdXRbXVxyXG4gIERhc2hib2FyZERldmljZUxheW91dHMgPSAnZGFzaGJvYXJkRGV2aWNlTGF5b3V0cycsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VTb3VyY2UsIGhhdmluZyB0eXBlIERldmljZVNvdXJjZVxyXG4gIERldmljZVNvdXJjZSA9ICdkZXZpY2VTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb25cclxuICBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb24gPSAnZGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uJyxcclxuXHJcbiAgLy8gRFBJX0dyaWRPdmVybGF5TW9kZSwgaGF2aW5nIHR5cGUgR3JpZE92ZXJsYXlNb2RlXHJcbiAgR3JpZE92ZXJsYXlNb2RlID0gJ2dyaWRPdmVybGF5TW9kZScsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRTaXppbmdNb2RlLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRTaXppbmdNb2RlXHJcbiAgRGFzaGJvYXJkU2l6aW5nTW9kZSA9ICdkYXNoYm9hcmRTaXppbmdNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZE5hdlR5cGUsIGhhdmluZyB0eXBlIEZsaXBib2FyZE5hdlR5cGVcclxuICBGbGlwYm9hcmROYXZUeXBlID0gJ2ZsaXBib2FyZE5hdlR5cGUnLFxyXG5cclxuICAvLyBEUElfRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlLCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2VcclxuICBGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2UgPSAnZmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlJyxcclxuXHJcbiAgLy8gRFBJX1N0YXJ0T2ZXZWVrRW51bSwgaGF2aW5nIHR5cGUgU09XVmFsdWVcclxuICBTdGFydE9mV2Vla0VudW0gPSAnc3RhcnRPZldlZWtFbnVtJyxcclxuXHJcbiAgLy8gRFBJX1N0YXJ0T2ZGaXNjYWxZZWFyLCBoYXZpbmcgdHlwZSBGWVNWYWx1ZXNcclxuICBTdGFydE9mRmlzY2FsWWVhciA9ICdzdGFydE9mRmlzY2FsWWVhcicsXHJcblxyXG4gIC8vIERQSV9Ub3RhbHNJbmNsdXNpb25WYWx1ZSwgaGF2aW5nIHR5cGUgVG90YWxzSW5jbHVzaW9uXHJcbiAgVG90YWxzSW5jbHVzaW9uVmFsdWUgPSAndG90YWxzSW5jbHVzaW9uVmFsdWUnLFxyXG5cclxuICAvLyBEUElfRm9ybWF0Q29kZSwgaGF2aW5nIHR5cGUgRm9ybWF0Q29kZVxyXG4gIEZvcm1hdENvZGUgPSAnZm9ybWF0Q29kZScsXHJcblxyXG4gIC8vIERQSV9GaW5kVHlwZSwgaGF2aW5nIHR5cGUgRmluZFR5cGVcclxuICBGaW5kVHlwZSA9ICdmaW5kVHlwZScsXHJcblxyXG4gIC8vIERQSV9QZXJzcGVjdGl2ZVR5cGUsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlVHlwZVxyXG4gIFBlcnNwZWN0aXZlVHlwZSA9ICdwZXJzcGVjdGl2ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfR2VvbWV0cnlUeXBlLCBoYXZpbmcgdHlwZSBHZW9tZXRyeVR5cGVcclxuICBHZW9tZXRyeVR5cGUgPSAnZ2VvbWV0cnlUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVMYWJlbENvbXBvc2l0aW9uLCBoYXZpbmcgdHlwZSBQYW5lTGFiZWxDb21wb3NpdGlvblxyXG4gIFBhbmVMYWJlbENvbXBvc2l0aW9uID0gJ3BhbmVMYWJlbENvbXBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1dhcm5pbmdUeXBlLCBoYXZpbmcgdHlwZSBXYXJuaW5nVHlwZVxyXG4gIFdhcm5pbmdUeXBlID0gJ3dhcm5pbmdUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1VJTW9kZSwgaGF2aW5nIHR5cGUgV29ya2Jvb2tVSU1vZGVcclxuICBVSU1vZGUgPSAndWlNb2RlJyxcclxuXHJcbiAgLy8gRFBJX01lbnVJdGVtSWQsIGhhdmluZyB0eXBlIFRvcExldmVsTWVudUl0ZW1cclxuICBNZW51SXRlbUlkID0gJ21lbnVJdGVtSWQnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZFJldHVybiwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgQ29tbWFuZFJldHVybiA9ICdjb21tYW5kUmV0dXJuJyxcclxuXHJcbiAgLy8gRFBJX0xlZ2FjeVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgTGVnYWN5UHJlc01vZGVsID0gJ2xlZ2FjeVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QcmVzZW50YXRpb25Nb2RlbCwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgUHJlc2VudGF0aW9uTW9kZWwgPSAncHJlc01vZGVsSG9sZGVyJyxcclxuXHJcbiAgLy8gRFBJX0V2ZW50LCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBFdmVudCA9ICdldmVudENvbnRhaW5lcicsXHJcblxyXG4gIC8vIERQSV9MaW5lU3R5bGUsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgTGluZVN0eWxlID0gJ2xpbmVTdHlsZScsXHJcblxyXG4gIC8vIERQSV9TdHJva2VTdHlsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBTdHJva2VTdHlsZSA9ICdzdHJva2VTdHlsZScsXHJcblxyXG4gIC8vIERQSV9TY2hlbWEsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgU2NoZW1hID0gJ3NjaGVtYScsXHJcblxyXG4gIC8vIERQSV9TdGFydFR1cGxlLCBoYXZpbmcgdHlwZSBBcnJheVxyXG4gIFN0YXJ0VHVwbGUgPSAnc3RhcnRUdXBsZScsXHJcblxyXG4gIC8vIERQSV9FbmRUdXBsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBFbmRUdXBsZSA9ICdlbmRUdXBsZScsXHJcblxyXG4gIC8vIERQSV9UdXBsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBUdXBsZSA9ICd0dXBsZScsXHJcblxyXG4gIC8vIERQSV9UdXBsZXMsIGhhdmluZyB0eXBlIEFycmF5W11cclxuICBUdXBsZXMgPSAndHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX0N1c3RvbURvbWFpblR1cGxlcywgaGF2aW5nIHR5cGUgQXJyYXlbXVxyXG4gIEN1c3RvbURvbWFpblR1cGxlcyA9ICdjdXN0b21Eb21haW5UdXBsZXMnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlZFR1cGxlcywgaGF2aW5nIHR5cGUgQXJyYXlbXVxyXG4gIFVwZGF0ZWRUdXBsZXMgPSAndXBkYXRlZFR1cGxlcycsXHJcblxyXG4gIC8vIERQSV9UYWJsZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBUYWJsZSA9ICd0YWJsZScsXHJcblxyXG4gIC8vIERQSV9BbGlhc2VkVmFsdWUsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgQWxpYXNlZFZhbHVlID0gJ3ZhbHVlQWxpYXMnLFxyXG5cclxuICAvLyBEUElfRmlyc3RBbGlhc2VkVmFsdWUsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgRmlyc3RBbGlhc2VkVmFsdWUgPSAnZmlyc3RBbGlzZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9NYXhpbXVtUmFuZ2UsIGhhdmluZyB0eXBlIEFycmF5XHJcbiAgTWF4aW11bVJhbmdlID0gJ21heGltdW1SYW5nZVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX01pbmltdW1SYW5nZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBNaW5pbXVtUmFuZ2UgPSAnbWluaW11bVJhbmdlVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kQWxpYXNlZFZhbHVlLCBoYXZpbmcgdHlwZSBBcnJheVxyXG4gIFNlY29uZEFsaWFzZWRWYWx1ZSA9ICdzZWNvbmRBbGlzZWRWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9BbGlhc2VkU2VsZWN0aW9uTGlzdCwgaGF2aW5nIHR5cGUgQXJyYXlbXVxyXG4gIEFsaWFzZWRTZWxlY3Rpb25MaXN0ID0gJ2FsaWFzZWRTZWxlY3Rpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0FsaWFzZWRWYWx1ZXMsIGhhdmluZyB0eXBlIEFycmF5W11cclxuICBBbGlhc2VkVmFsdWVzID0gJ3ZhbHVlc0FsaWFzZXMnLFxyXG5cclxuICAvLyBEUElfVmVyYm9zZUFsaWFzZWRSYW5nZU1heCwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBWZXJib3NlQWxpYXNlZFJhbmdlTWF4ID0gJ3ZlcmJvc2VBbGlhc2VkUmFuZ2VNYXgnLFxyXG5cclxuICAvLyBEUElfVmVyYm9zZUFsaWFzZWRWYWx1ZSwgaGF2aW5nIHR5cGUgQXJyYXlcclxuICBWZXJib3NlQWxpYXNlZFZhbHVlID0gJ3ZlcmJvc2VBbGlhc2VkVmFsdWUnLFxyXG5cclxuICAvLyBEUElfTXVsdGlCdWNrZXQsIGhhdmluZyB0eXBlIE11bHRpQnVja2V0XHJcbiAgTXVsdGlCdWNrZXQgPSAneFZhbHVlcycsXHJcblxyXG4gIC8vIERQSV9QYWdlTmFtZSwgaGF2aW5nIHR5cGUgUGFnZU5hbWVcclxuICBQYWdlTmFtZSA9ICdwYWdlTmFtZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RvciwgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgU2VsZWN0b3IgPSAnc2VsZWN0b3InLFxyXG5cclxuICAvLyBEUElfUGFuZUlkLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBQYW5lSWQgPSAncGFuZUlkJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVJZHMsIGhhdmluZyB0eXBlIFBhbmVJZFtdXHJcbiAgUGFuZUlkcyA9ICdwYW5lSWRzJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlUmVnaW9uSW5mbywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgSW1hZ2VSZWdpb25JbmZvID0gJ3ZpelJlZ2lvblJlY3QnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VSZWdpb25JbmZvTGlzdCwgaGF2aW5nIHR5cGUgb2JqZWN0W11cclxuICBJbWFnZVJlZ2lvbkluZm9MaXN0ID0gJ3ZpelJlZ2lvblJlY3RMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbElELCBoYXZpbmcgdHlwZSBWaXN1YWxJRFxyXG4gIFZpc3VhbElEID0gJ3Zpc3VhbElkJyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbElEUE0sIGhhdmluZyB0eXBlIFZpc3VhbElEUHJlc01vZGVsXHJcbiAgVmlzdWFsSURQTSA9ICd2aXN1YWxJZFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9JbnZhbGlkU2hlZXRzLCBoYXZpbmcgdHlwZSBWaXN1YWxJRFByZXNNb2RlbFtdXHJcbiAgSW52YWxpZFNoZWV0cyA9ICdpbnZhbGlkU2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbElEUE1zLCBoYXZpbmcgdHlwZSBWaXN1YWxJRFByZXNNb2RlbFtdXHJcbiAgVmlzdWFsSURQTXMgPSAndmlzdWFsSWRzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0UGF0aFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBTaGVldFBhdGhQTSA9ICdzaGVldFBhdGgnLFxyXG5cclxuICAvLyBEUElfQ2FwdHVyZWRTaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBDYXB0dXJlZFNoZWV0UE0gPSAnY2FwdHVyZWRTaGVldFBtJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRTaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBDdXJyZW50U2hlZXRQTSA9ICdjdXJyZW50U2hlZXRQbScsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXHJcbiAgRGFzaGJvYXJkUE0gPSAnZGFzaGJvYXJkUG0nLFxyXG5cclxuICAvLyBEUElfTmV3U2hlZXRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXHJcbiAgTmV3U2hlZXRQTSA9ICduZXdTaGVldFBtJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0TmFtZVBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBTaGVldE5hbWVQTSA9ICdzaGVldE5hbWVQbScsXHJcblxyXG4gIC8vIERQSV9TaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBTaGVldFBNID0gJ3NoZWV0UG0nLFxyXG5cclxuICAvLyBEUElfU291cmNlRGFzaGJvYXJkUE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxyXG4gIFNvdXJjZURhc2hib2FyZFBNID0gJ3NvdXJjZURhc2hib2FyZFBtJyxcclxuXHJcbiAgLy8gRFBJX1NvdXJjZVNoZWV0UE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxyXG4gIFNvdXJjZVNoZWV0UE0gPSAnc291cmNlU2hlZXRQbScsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRTaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcclxuICBUYXJnZXRTaGVldFBNID0gJ3RhcmdldFNoZWV0UG0nLFxyXG5cclxuICAvLyBEUElfV29ya3NoZWV0UE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxyXG4gIFdvcmtzaGVldFBNID0gJ3dvcmtzaGVldFBtJyxcclxuXHJcbiAgLy8gRFBJX01vZGlmaWVkU2hlZXRzLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxbXVxyXG4gIE1vZGlmaWVkU2hlZXRzID0gJ21vZGlmaWVkU2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFDb2x1bW4sIGhhdmluZyB0eXBlIERhdGFDb2x1bW5QcmVzTW9kZWxcclxuICBEYXRhQ29sdW1uID0gJ2RhdGFDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfRGF0YUNvbHVtbnMsIGhhdmluZyB0eXBlIERhdGFDb2x1bW5QcmVzTW9kZWxbXVxyXG4gIERhdGFDb2x1bW5zID0gJ2RhdGFDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX0FkZHJlc3NlcywgaGF2aW5nIHR5cGUgRGF0YUNvbHVtblByZXNNb2RlbFtdXHJcbiAgQWRkcmVzc2VzID0gJ2FkZHJlc3NlcycsXHJcblxyXG4gIC8vIERQSV9FbmNvZGluZ0NvbHVtbnMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgRGF0YUNvbHVtblByZXNNb2RlbClcclxuICBFbmNvZGluZ0NvbHVtbnMgPSAnZW5jb2RpbmdDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX1RleHRSdW5Db2x1bW5zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFDb2x1bW5QcmVzTW9kZWwpXHJcbiAgVGV4dFJ1bkNvbHVtbnMgPSAndGV4dFJ1bkNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfVGV4dFN0eWxlQ29sdW1ucywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBEYXRhQ29sdW1uUHJlc01vZGVsKVxyXG4gIFRleHRTdHlsZUNvbHVtbnMgPSAndGV4dFN0eWxlQ29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9OYW1lZERhdGFDb2x1bW4sIGhhdmluZyB0eXBlIE5hbWVkRGF0YUNvbHVtblByZXNNb2RlbFxyXG4gIE5hbWVkRGF0YUNvbHVtbiA9ICduYW1lZERhdGFDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfTmFtZWREYXRhQ29sdW1ucywgaGF2aW5nIHR5cGUgTmFtZWREYXRhQ29sdW1uUHJlc01vZGVsW11cclxuICBOYW1lZERhdGFDb2x1bW5zID0gJ25hbWVkRGF0YUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfRGF0YVRhYmxlLCBoYXZpbmcgdHlwZSBEYXRhVGFibGVQcmVzTW9kZWxcclxuICBEYXRhVGFibGUgPSAnZGF0YVRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNwZWNpZmljYXRpb24sIGhhdmluZyB0eXBlIE5vbmVcclxuICBBY3Rpb25TcGVjaWZpY2F0aW9uID0gJ2FjdGlvblNwZWMnLFxyXG5cclxuICAvLyBEUElfQ29sdW1uLCBoYXZpbmcgdHlwZSBDb2x1bW5cclxuICBDb2x1bW4gPSAnY29sdW1uQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9TZXRGdW5jdGlvbiwgaGF2aW5nIHR5cGUgU2V0RnVuY3Rpb25cclxuICBTZXRGdW5jdGlvbiA9ICdzZXRGdW5jdGlvbicsXHJcblxyXG4gIC8vIERQSV9TZXRGdW5jdGlvbnMsIGhhdmluZyB0eXBlIFNldEZ1bmN0aW9uc1xyXG4gIFNldEZ1bmN0aW9ucyA9ICdzZXRGdW5jdGlvbnMnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsUHJvZmlsZVNob3dNZSwgaGF2aW5nIHR5cGUgVmlzdWFsUHJvZmlsZVNob3dNZVxyXG4gIFZpc3VhbFByb2ZpbGVTaG93TWUgPSAndnBzbScsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlUHRyLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlXHJcbiAgRGF0YVNvdXJjZVB0ciA9ICdkYXRhc291cmNlUHRyJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtncm91cENvbm5lY3Rpb24sIGhhdmluZyB0eXBlIFdvcmtncm91cENvbm5lY3Rpb25cclxuICBXb3JrZ3JvdXBDb25uZWN0aW9uID0gJ3dvcmtncm91cENvbm5lY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQXV0aGVudGljYXRvciwgaGF2aW5nIHR5cGUgQXV0aGVudGljYXRvclJhd1B0clxyXG4gIEF1dGhlbnRpY2F0b3IgPSAnYXV0aGVudGljYXRvcicsXHJcblxyXG4gIC8vIERQSV9VcGdyYWRlQXR0ciwgaGF2aW5nIHR5cGUgVXBncmFkZUF0dHJcclxuICBVcGdyYWRlQXR0ciA9ICd1cGdyYWRlQXR0cicsXHJcblxyXG4gIC8vIERQSV9FeHRyYWN0QXR0ciwgaGF2aW5nIHR5cGUgRXh0cmFjdEF0dHJcclxuICBFeHRyYWN0QXR0ciA9ICdleHRyYWN0QXR0cicsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoQXR0ciwgaGF2aW5nIHR5cGUgUmVmcmVzaEF0dHJcclxuICBSZWZyZXNoQXR0ciA9ICdyZWZyZXNoQXR0cicsXHJcblxyXG4gIC8vIERQSV9Db250ZXh0U3BlY2lmaWNhdGlvbiwgaGF2aW5nIHR5cGUgQ29udGV4dFNwZWNpZmljYXRpb25cclxuICBDb250ZXh0U3BlY2lmaWNhdGlvbiA9ICdjb250ZXh0U3BlY2lmaWNhdGlvbicsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFWaWV3ZXJTZWxlY3RvciwgaGF2aW5nIHR5cGUgU2NoZW1hVmlld2VyU2VsZWN0b3JQdHJcclxuICBTY2hlbWFWaWV3ZXJTZWxlY3RvciA9ICdzY2hlbWFWaWV3ZXJTZWxlY3RvcicsXHJcblxyXG4gIC8vIERQSV9CdWNrZXRzLCBoYXZpbmcgdHlwZSBCdWNrZXRzXHJcbiAgQnVja2V0cyA9ICdidWNrZXRzJyxcclxuXHJcbiAgLy8gRFBJX0xlZ2VuZEl0ZW1zLCBoYXZpbmcgdHlwZSBNdWx0aUJ1Y2tldHNcclxuICBMZWdlbmRJdGVtcyA9ICdsZWdlbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9MZWdlbmRJdGVtLCBoYXZpbmcgdHlwZSBNdWx0aUJ1Y2tldFxyXG4gIExlZ2VuZEl0ZW0gPSAnbGVnZW5kSXRlbScsXHJcblxyXG4gIC8vIERQSV9Tb3VyY2VJdGVtLCBoYXZpbmcgdHlwZSBNdWx0aUJ1Y2tldFxyXG4gIFNvdXJjZUl0ZW0gPSAnc291cmNlSXRlbScsXHJcblxyXG4gIC8vIERQSV9EZXN0SXRlbSwgaGF2aW5nIHR5cGUgTXVsdGlCdWNrZXRcclxuICBEZXN0SXRlbSA9ICdkZXN0SXRlbScsXHJcblxyXG4gIC8vIERQSV9JUXVpY2tTb3J0U3RhdGUsIGhhdmluZyB0eXBlIElRdWlja1NvcnRTdGF0ZVxyXG4gIElRdWlja1NvcnRTdGF0ZSA9ICdxdWlja1NvcnRTdGF0ZScsXHJcblxyXG4gIC8vIERQSV9BcHBCdWlsZERhdGUsIGhhdmluZyB0eXBlIERhdGVUaW1lXHJcbiAgQXBwQnVpbGREYXRlID0gJ2FwcEJ1aWxkRGF0ZScsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdERhdGVSYW5nZUVuZCwgaGF2aW5nIHR5cGUgRGF0ZVRpbWVcclxuICBGb3JlY2FzdERhdGVSYW5nZUVuZCA9ICdmb3JlY2FzdERhdGVSYW5nZUVuZCcsXHJcblxyXG4gIC8vIERQSV9Gb3JlY2FzdERhdGVSYW5nZVN0YXJ0LCBoYXZpbmcgdHlwZSBEYXRlVGltZVxyXG4gIEZvcmVjYXN0RGF0ZVJhbmdlU3RhcnQgPSAnZm9yZWNhc3REYXRlUmFuZ2VTdGFydCcsXHJcblxyXG4gIC8vIERQSV9MYXN0TW9kaWZpZWQsIGhhdmluZyB0eXBlIERhdGVUaW1lXHJcbiAgTGFzdE1vZGlmaWVkID0gJ2xhc3RNb2RpZmllZCcsXHJcblxyXG4gIC8vIERQSV9TZWFyY2hEb21haW5QdHIsIGhhdmluZyB0eXBlIE11bHRpRG9tYWluXHJcbiAgU2VhcmNoRG9tYWluUHRyID0gJ3NlYXJjaERvbWFpblB0cicsXHJcblxyXG4gIC8vIERQSV9SZXN1bHRzRG9tYWluUHRyLCBoYXZpbmcgdHlwZSBNdWx0aURvbWFpblxyXG4gIFJlc3VsdHNEb21haW5QdHIgPSAncmVzdWx0c0RvbWFpblB0cicsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25zLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBBY3Rpb25zID0gJ2FjdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU1JDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgU1JDb21tYW5kcyA9ICdzZWxlY3Rpb25SZWxheGF0aW9uQ29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIENvbW1hbmRzID0gJ2NvbW1hbmRzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFUeXBlQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIERhdGFUeXBlQ29tbWFuZHMgPSAnZGF0YXR5cGVDb21tYW5kcycsXHJcblxyXG4gIC8vIERQSV9NdWx0aVNlbGVjdENvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBNdWx0aVNlbGVjdENvbW1hbmRzID0gJ211bHRpc2VsZWN0Q29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfTm9uVml6Q29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIE5vblZpekNvbW1hbmRzID0gJ25vblZpekNvbW1hbmRzJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFF1aWNrRmlsdGVyQ29tbWFuZHMgPSAncXVpY2tGaWx0ZXJDb21tYW5kcycsXHJcblxyXG4gIC8vIERQSV9TaG93TWVDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgU2hvd01lQ29tbWFuZHMgPSAnc2hvd01lQ29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvck1lbnUsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFNvcnRJbmRpY2F0b3JNZW51ID0gJ3NvcnRJbmRpY2F0b3JNZW51JyxcclxuXHJcbiAgLy8gRFBJX1N0YW5kYXJkQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxyXG4gIFN0YW5kYXJkQ29tbWFuZHMgPSAnc3RhbmRhcmRDb21tYW5kcycsXHJcblxyXG4gIC8vIERQSV9WaXpDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XHJcbiAgVml6Q29tbWFuZHMgPSAndml6Q29tbWFuZHMnLFxyXG5cclxuICAvLyBEUElfWm9uZUNocm9tZUNvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcclxuICBab25lQ2hyb21lQ29tbWFuZHMgPSAnem9uZUNocm9tZUNvbW1hbmRzJyxcclxuXHJcbiAgLy8gRFBJX0NvbW1hbmRJdGVtLCBoYXZpbmcgdHlwZSBDb21tYW5kc0l0ZW1cclxuICBDb21tYW5kSXRlbSA9ICdjb21tYW5kSXRlbScsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kSXRlbXMsIGhhdmluZyB0eXBlIENvbW1hbmRzSXRlbVtdXHJcbiAgQ29tbWFuZEl0ZW1zID0gJ2NvbW1hbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIENvbW1hbmQgPSAnc2ltcGxlQ29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZENvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXHJcbiAgQWRkQ29tbWFuZCA9ICdhZGRTaW1wbGVDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmVtb3ZlQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBSZW1vdmVDb21tYW5kID0gJ3JlbW92ZVNpbXBsZUNvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9BY2NlcHRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIEFjY2VwdENvbW1hbmQgPSAnYWNjZXB0U2ltcGxlQ29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0RlY2xpbmVDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIERlY2xpbmVDb21tYW5kID0gJ2RlY2xpbmVTaW1wbGVDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRHJvcENvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXHJcbiAgRHJvcENvbW1hbmQgPSAnZHJvcENvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9FZGl0Q2FwdGlvbkNvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXHJcbiAgRWRpdENhcHRpb25Db21tYW5kID0gJ2VkaXRDYXB0aW9uQ29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0ZvbnRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIEZvbnRDb21tYW5kID0gJ2ZvbnRDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfTGluZVN0eWxlQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBMaW5lU3R5bGVDb21tYW5kID0gJ2xpbmVTdHlsZUNvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIEZvcm1hdENvbW1hbmQgPSAnZm9ybWF0Q29tbWFuZE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Rlc3RydWN0b3JDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIERlc3RydWN0b3JDb21tYW5kID0gJ2Rlc3RydWN0b3JDb21tYW5kJyxcclxuXHJcbiAgLy8gRFBJX0NsZWFyRm9ybWF0Q29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBDbGVhckZvcm1hdENvbW1hbmQgPSAnY2xlYXJGb3JtYXRDb21tYW5kTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIFJpY2hUZXh0Q29tbWFuZCA9ICdyaWNoVGV4dENvbW1hbmRNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0SW5kaWNhdG9yQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcclxuICBTb3J0SW5kaWNhdG9yQ29tbWFuZCA9ICdzb3J0SW5kaWNhdG9yQ29tbWFuZCcsXHJcblxyXG4gIC8vIERQSV9SZWxlYXNlU3RvcmVDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIFJlbGVhc2VTdG9yZUNvbW1hbmQgPSAncmVsZWFzZVN0b3JlQ29tbWFuZCcsXHJcblxyXG4gIC8vIERQSV9Db25maXJtYXRpb25Db21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxyXG4gIENvbmZpcm1hdGlvbkNvbW1hbmQgPSAnY29uZmlybWF0aW9uQ29tbWFuZCcsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kTGlzdCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxbXVxyXG4gIENvbW1hbmRMaXN0ID0gJ2NvbW1hbmRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckN0cmwsIGhhdmluZyB0eXBlIFBhcmFtZXRlckN0cmxQcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJDdHJsID0gJ3BhcmFtZXRlckNvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyQ3RybHMsIGhhdmluZyB0eXBlIFBhcmFtZXRlckN0cmxQcmVzTW9kZWxbXVxyXG4gIFBhcmFtZXRlckN0cmxzID0gJ3BhcmFtZXRlckNvbnRyb2xzJyxcclxuXHJcbiAgLy8gRFBJX1BhZ2VNb2RlbCwgaGF2aW5nIHR5cGUgUGFnZVByZXNNb2RlbFxyXG4gIFBhZ2VNb2RlbCA9ICdwYWdlTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUGFnZVRyYWlsT3B0aW9ucywgaGF2aW5nIHR5cGUgUGFnZVRyYWlsT3B0aW9uc1ByZXNNb2RlbFxyXG4gIFBhZ2VUcmFpbE9wdGlvbnMgPSAncGFnZVRyYWlsT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9GaWVsZCwgaGF2aW5nIHR5cGUgRmllbGRQcmVzTW9kZWxcclxuICBGaWVsZCA9ICdmaWVsZCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBGaWVsZExpc3QgPSAnZmllbGRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0RpbWVuc2lvbnNGaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBEaW1lbnNpb25zRmllbGRMaXN0ID0gJ2RpbWVuc2lvbnNGaWVsZExpc3QnLFxyXG5cclxuICAvLyBEUElfTWVhc3VyZXNGaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBNZWFzdXJlc0ZpZWxkTGlzdCA9ICdtZWFzdXJlc0ZpZWxkTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TZXRzRmllbGRMaXN0LCBoYXZpbmcgdHlwZSBGaWVsZFByZXNNb2RlbFtdXHJcbiAgU2V0c0ZpZWxkTGlzdCA9ICdzZXRzRmllbGRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlcnNGaWVsZExpc3QsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsW11cclxuICBQYXJhbWV0ZXJzRmllbGRMaXN0ID0gJ3BhcmFtZXRlcnNGaWVsZExpc3QnLFxyXG5cclxuICAvLyBEUElfRmllbGRDb2x1bW4sIGhhdmluZyB0eXBlIEZpZWxkQ29sdW1uUHJlc01vZGVsXHJcbiAgRmllbGRDb2x1bW4gPSAnY29sdW1uJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkQ29sdW1uTGlzdCwgaGF2aW5nIHR5cGUgRmllbGRDb2x1bW5QcmVzTW9kZWxbXVxyXG4gIEZpZWxkQ29sdW1uTGlzdCA9ICdjb2x1bW5MaXN0JyxcclxuXHJcbiAgLy8gRFBJX1N0cnVjdHVyZWRNZWFzdXJlLCBoYXZpbmcgdHlwZSBTdHJ1Y3R1cmVkTWVhc3VyZVByZXNNb2RlbFxyXG4gIFN0cnVjdHVyZWRNZWFzdXJlID0gJ3N0cnVjdHVyZWRNZWFzdXJlJyxcclxuXHJcbiAgLy8gRFBJX1N0cnVjdHVyZWRNZWFzdXJlTGlzdCwgaGF2aW5nIHR5cGUgU3RydWN0dXJlZE1lYXN1cmVQcmVzTW9kZWxbXVxyXG4gIFN0cnVjdHVyZWRNZWFzdXJlTGlzdCA9ICdzdHJ1Y3R1cmVkTWVhc3VyZUxpc3QnLFxyXG5cclxuICAvLyBEUElfTGV2ZWwsIGhhdmluZyB0eXBlIExldmVsUHJlc01vZGVsXHJcbiAgTGV2ZWwgPSAnbGV2ZWwnLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJQcmVzTW9kZWxcclxuICBQYXJhbWV0ZXIgPSAncGFyYW1ldGVyJyxcclxuXHJcbiAgLy8gRFBJX0Jhc2VEaW1lbnNpb24sIGhhdmluZyB0eXBlIEJhc2VEaW1lbnNpb25QcmVzTW9kZWxcclxuICBCYXNlRGltZW5zaW9uID0gJ2Jhc2VEaW1lbnNpb24nLFxyXG5cclxuICAvLyBEUElfRGltZW5zaW9uLCBoYXZpbmcgdHlwZSBEaW1lbnNpb25QcmVzTW9kZWxcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuXHJcbiAgLy8gRFBJX0F0dHJpYnV0ZURpbWVuc2lvbkxpc3QsIGhhdmluZyB0eXBlIERpbWVuc2lvblByZXNNb2RlbFtdXHJcbiAgQXR0cmlidXRlRGltZW5zaW9uTGlzdCA9ICdhdHRyaWJ1dGVEaW1lbnNpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0F0dHJpYnV0ZURpbWVuc2lvbiwgaGF2aW5nIHR5cGUgQXR0cmlidXRlRGltZW5zaW9uUHJlc01vZGVsXHJcbiAgQXR0cmlidXRlRGltZW5zaW9uID0gJ2F0dHJpYnV0ZURpbWVuc2lvbicsXHJcblxyXG4gIC8vIERQSV9BdHRyaWJ1dGVBdHRyaWJ1dGVEaW1lbnNpb25MaXN0LCBoYXZpbmcgdHlwZSBBdHRyaWJ1dGVEaW1lbnNpb25QcmVzTW9kZWxbXVxyXG4gIEF0dHJpYnV0ZUF0dHJpYnV0ZURpbWVuc2lvbkxpc3QgPSAnYXR0cmlidXRlQXR0cmlidXRlRGltZW5zaW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdGFuZGFyZERpbWVuc2lvbiwgaGF2aW5nIHR5cGUgU3RhbmRhcmREaW1lbnNpb25QcmVzTW9kZWxcclxuICBTdGFuZGFyZERpbWVuc2lvbiA9ICdzdGFuZGFyZERpbWVuc2lvbicsXHJcblxyXG4gIC8vIERQSV9SZWxhdGlvbmFsVGFibGUsIGhhdmluZyB0eXBlIFJlbGF0aW9uYWxUYWJsZVByZXNNb2RlbFxyXG4gIFJlbGF0aW9uYWxUYWJsZSA9ICdyZWxhdGlvbmFsVGFibGUnLFxyXG5cclxuICAvLyBEUElfRHJpbGxQYXRoLCBoYXZpbmcgdHlwZSBEcmlsbFBhdGhQcmVzTW9kZWxcclxuICBEcmlsbFBhdGggPSAnZHJpbGxQYXRoJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRm9sZGVyLCBoYXZpbmcgdHlwZSBGaWVsZEZvbGRlclByZXNNb2RlbFxyXG4gIEZpZWxkRm9sZGVyID0gJ2ZpZWxkRm9sZGVyJyxcclxuXHJcbiAgLy8gRFBJX0dyb3VwLCBoYXZpbmcgdHlwZSBHcm91cFByZXNNb2RlbFxyXG4gIEdyb3VwID0gJ2dyb3VwJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJEZWZpbmVkQXR0cmlidXRlTGlzdCwgaGF2aW5nIHR5cGUgR3JvdXBQcmVzTW9kZWxbXVxyXG4gIFVzZXJEZWZpbmVkQXR0cmlidXRlTGlzdCA9ICd1c2VyRGVmaW5lZEF0dHJpYnV0ZUxpc3QnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5LCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlQcmVzTW9kZWxcclxuICBIaWVyYXJjaHkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeUxpc3QsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVByZXNNb2RlbFtdXHJcbiAgSGllcmFyY2h5TGlzdCA9ICdoaWVyYXJjaHlMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeU1lbWJlclNlbGVjdGVkU3RhdGUsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNlbGVjdF9NZW1iZXJTZWxlY3RlZFN0YXRlUHJlc01vZGVsXHJcbiAgSGllcmFyY2h5TWVtYmVyU2VsZWN0ZWRTdGF0ZSA9ICdoaWVyYXJjaHlNZW1iZXJTZWxlY3RlZFN0YXRlJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeVNlbGVjdGlvbkNoYW5nZXMsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNlbGVjdF9NZW1iZXJTZWxlY3RlZFN0YXRlUHJlc01vZGVsW11cclxuICBIaWVyYXJjaHlTZWxlY3Rpb25DaGFuZ2VzID0gJ2hpZXJhcmNoeVNlbGVjdGlvbkNoYW5nZXMnLFxyXG5cclxuICAvLyBEUElfRGlzcGxheUZvbGRlciwgaGF2aW5nIHR5cGUgRGlzcGxheUZvbGRlclByZXNNb2RlbFxyXG4gIERpc3BsYXlGb2xkZXIgPSAnZGlzcGxheUZvbGRlcicsXHJcblxyXG4gIC8vIERQSV9EaXNwbGF5Rm9sZGVyTGlzdCwgaGF2aW5nIHR5cGUgRGlzcGxheUZvbGRlclByZXNNb2RlbFtdXHJcbiAgRGlzcGxheUZvbGRlckxpc3QgPSAnZGlzcGxheUZvbGRlckxpc3QnLFxyXG5cclxuICAvLyBEUElfRGF0YVNvdXJjZUxheW91dCwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZUxheW91dFByZXNNb2RlbFxyXG4gIERhdGFTb3VyY2VMYXlvdXQgPSAnZGF0YVNvdXJjZUxheW91dCcsXHJcblxyXG4gIC8vIERQSV9CYXNlRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgQmFzZURhdGFTb3VyY2VQcmVzTW9kZWxcclxuICBCYXNlRGF0YVNvdXJjZSA9ICdiYXNlRGF0YVNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9CYXNlRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgQmFzZURhdGFTb3VyY2VQcmVzTW9kZWwpXHJcbiAgQmFzZURhdGFTb3VyY2VzID0gJ2Jhc2VEYXRhU291cmNlcycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZSA9ICdkYXRhU291cmNlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFTb3VyY2VQcmVzTW9kZWwpXHJcbiAgRGF0YVNvdXJjZXMgPSAnZGF0YVNvdXJjZXMnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hVmlld2VyRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgU2NoZW1hVmlld2VyRGF0YVNvdXJjZVByZXNNb2RlbFxyXG4gIFNjaGVtYVZpZXdlckRhdGFTb3VyY2UgPSAnc2NoZW1hVmlld2VyRGF0YVNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9TY2hlbWFWaWV3ZXJEYXRhU291cmNlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBTY2hlbWFWaWV3ZXJEYXRhU291cmNlUHJlc01vZGVsKVxyXG4gIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VzID0gJ3NjaGVtYVZpZXdlckRhdGFTb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX0Jhc2VEYXRhU2NoZW1hLCBoYXZpbmcgdHlwZSBCYXNlRGF0YVNjaGVtYVByZXNNb2RlbFxyXG4gIEJhc2VEYXRhU2NoZW1hID0gJ2Jhc2VEYXRhU2NoZW1hJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTY2hlbWEsIGhhdmluZyB0eXBlIERhdGFTY2hlbWFQcmVzTW9kZWxcclxuICBEYXRhU2NoZW1hID0gJ2RhdGFTY2hlbWEnLFxyXG5cclxuICAvLyBEUElfU2NoZW1hVmlld2VyRGF0YVNjaGVtYSwgaGF2aW5nIHR5cGUgU2NoZW1hVmlld2VyRGF0YVNjaGVtYVByZXNNb2RlbFxyXG4gIFNjaGVtYVZpZXdlckRhdGFTY2hlbWEgPSAnc2NoZW1hVmlld2VyRGF0YVNjaGVtYScsXHJcblxyXG4gIC8vIERQSV9TaGVldExpc3RJdGVtLCBoYXZpbmcgdHlwZSBTaGVldExpc3RJdGVtUHJlc01vZGVsXHJcbiAgU2hlZXRMaXN0SXRlbSA9ICdzaGVldExpc3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0TGlzdEl0ZW1zLCBoYXZpbmcgdHlwZSBTaGVldExpc3RJdGVtUHJlc01vZGVsW11cclxuICBTaGVldExpc3RJdGVtcyA9ICdzaGVldExpc3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9TaGVldExpc3QsIGhhdmluZyB0eXBlIFNoZWV0TGlzdFByZXNNb2RlbFxyXG4gIFNoZWV0TGlzdCA9ICdzaGVldExpc3QnLFxyXG5cclxuICAvLyBEUElfU2l6ZU1vZGVPcHRpb24sIGhhdmluZyB0eXBlIFNpemVNb2RlT3B0aW9uUHJlc01vZGVsXHJcbiAgU2l6ZU1vZGVPcHRpb24gPSAnc2l6ZU1vZGVPcHRpb24nLFxyXG5cclxuICAvLyBEUElfU2l6ZU1vZGVPcHRpb25zLCBoYXZpbmcgdHlwZSBTaXplTW9kZU9wdGlvblByZXNNb2RlbFtdXHJcbiAgU2l6ZU1vZGVPcHRpb25zID0gJ3NpemVNb2RlT3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRTaXplQ29udHJvbCwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkU2l6ZUNvbnRyb2xQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRTaXplQ29udHJvbCA9ICdkYXNoYm9hcmRTaXplQ29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VMYXlvdXRJbmZvSXRlbSwgaGF2aW5nIHR5cGUgRGV2aWNlTGF5b3V0SW5mb0l0ZW1QcmVzTW9kZWxcclxuICBEZXZpY2VMYXlvdXRJbmZvSXRlbSA9ICdkZXZpY2VMYXlvdXRJbmZvSXRlbScsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VMYXlvdXRJbmZvSXRlbXMsIGhhdmluZyB0eXBlIERldmljZUxheW91dEluZm9JdGVtUHJlc01vZGVsW11cclxuICBEZXZpY2VMYXlvdXRJbmZvSXRlbXMgPSAnZGV2aWNlTGF5b3V0SW5mb0l0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZUxheW91dEluZm9MaXN0LCBoYXZpbmcgdHlwZSBEZXZpY2VMYXlvdXRJbmZvTGlzdFByZXNNb2RlbFxyXG4gIERldmljZUxheW91dEluZm9MaXN0ID0gJ2RldmljZUxheW91dEluZm9MaXN0JyxcclxuXHJcbiAgLy8gRFBJX1NwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbSwgaGF2aW5nIHR5cGUgU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtUHJlc01vZGVsXHJcbiAgU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtID0gJ3NwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbScsXHJcblxyXG4gIC8vIERQSV9TcGVjaWFsaXplZERldmljZUxheW91dEl0ZW1zLCBoYXZpbmcgdHlwZSBTcGVjaWFsaXplZERldmljZUxheW91dEl0ZW1QcmVzTW9kZWxbXVxyXG4gIFNwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbXMgPSAnc3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9TcGVjaWFsaXplZERldmljZUxheW91dExpc3QsIGhhdmluZyB0eXBlIFNwZWNpYWxpemVkRGV2aWNlTGF5b3V0TGlzdFByZXNNb2RlbFxyXG4gIFNwZWNpYWxpemVkRGV2aWNlTGF5b3V0TGlzdCA9ICdzcGVjaWFsaXplZERldmljZUxheW91dExpc3QnLFxyXG5cclxuICAvLyBEUElfU2l6ZUl0ZW0sIGhhdmluZyB0eXBlIFNpemVJdGVtUHJlc01vZGVsXHJcbiAgU2l6ZUl0ZW0gPSAnc2l6ZUl0ZW0nLFxyXG5cclxuICAvLyBEUElfU2l6ZUl0ZW1zLCBoYXZpbmcgdHlwZSBTaXplSXRlbVByZXNNb2RlbFtdXHJcbiAgU2l6ZUl0ZW1zID0gJ3NpemVJdGVtcycsXHJcblxyXG4gIC8vIERQSV9EZXZpY2VTaXplc0xpc3QsIGhhdmluZyB0eXBlIFNpemVJdGVtTGlzdFByZXNNb2RlbFxyXG4gIERldmljZVNpemVzTGlzdCA9ICdkZXZpY2VTaXplc0xpc3QnLFxyXG5cclxuICAvLyBEUElfUHJlc2V0U2l6ZXNMaXN0LCBoYXZpbmcgdHlwZSBTaXplSXRlbUxpc3RQcmVzTW9kZWxcclxuICBQcmVzZXRTaXplc0xpc3QgPSAncHJlc2V0U2l6ZXNMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1NpemVJdGVtTGlzdCwgaGF2aW5nIHR5cGUgU2l6ZUl0ZW1MaXN0UHJlc01vZGVsXHJcbiAgU2l6ZUl0ZW1MaXN0ID0gJ3NpemVJdGVtTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdWJzdGl0dXRpb25LZXl3b3JkLCBoYXZpbmcgdHlwZSBTdWJzdGl0dXRpb25LZXl3b3JkUHJlc01vZGVsXHJcbiAgU3Vic3RpdHV0aW9uS2V5d29yZCA9ICdzdWJzdGl0dXRpb25LZXl3b3JkJyxcclxuXHJcbiAgLy8gRFBJX1N1YnN0aXR1dGlvbktleXdvcmRzLCBoYXZpbmcgdHlwZSBTdWJzdGl0dXRpb25LZXl3b3JkUHJlc01vZGVsW11cclxuICBTdWJzdGl0dXRpb25LZXl3b3JkcyA9ICdzdWJzdGl0dXRpb25LZXl3b3JkcycsXHJcblxyXG4gIC8vIERQSV9TdWJzdGl0dXRpb25LZXl3b3JkU3ViTGlzdCwgaGF2aW5nIHR5cGUgU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RQcmVzTW9kZWxcclxuICBTdWJzdGl0dXRpb25LZXl3b3JkU3ViTGlzdCA9ICdzdWJzdGl0dXRpb25LZXl3b3Jkc1N1Ymxpc3QnLFxyXG5cclxuICAvLyBEUElfU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RzLCBoYXZpbmcgdHlwZSBTdWJzdGl0dXRpb25LZXl3b3JkU3ViTGlzdFByZXNNb2RlbFtdXHJcbiAgU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RzID0gJ3N1YnN0aXR1dGlvbktleXdvcmRTdWJsaXN0cycsXHJcblxyXG4gIC8vIERQSV9TdWJzdGl0dXRpb25LZXl3b3JkTGlzdCwgaGF2aW5nIHR5cGUgU3Vic3RpdHV0aW9uS2V5d29yZExpc3RQcmVzTW9kZWxcclxuICBTdWJzdGl0dXRpb25LZXl3b3JkTGlzdCA9ICdzdWJzdGl0dXRpb25LZXl3b3Jkc0xpc3QnLFxyXG5cclxuICAvLyBEUElfRGV2aWNlWm9uZUxpc3RJdGVtLCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lTGlzdEl0ZW1QcmVzTW9kZWxcclxuICBEZXZpY2Vab25lTGlzdEl0ZW0gPSAnZGV2aWNlWm9uZUxpc3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVpvbmVMaXN0SXRlbXMsIGhhdmluZyB0eXBlIERldmljZVpvbmVMaXN0SXRlbVByZXNNb2RlbFtdXHJcbiAgRGV2aWNlWm9uZUxpc3RJdGVtcyA9ICdkZXZpY2Vab25lTGlzdEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVpvbmVMaXN0LCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lTGlzdFByZXNNb2RlbFxyXG4gIERldmljZVpvbmVMaXN0ID0gJ2RldmljZVpvbmVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1pvbmVTbmFwTGluZUxpc3RJdGVtLCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0SXRlbVByZXNNb2RlbFxyXG4gIFpvbmVTbmFwTGluZUxpc3RJdGVtID0gJ3NuYXBMaW5lTGlzdEl0ZW0nLFxyXG5cclxuICAvLyBEUElfT3V0ZXJIb3Jpem9udGFsU25hcExpbmVzLCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0SXRlbVByZXNNb2RlbFtdXHJcbiAgT3V0ZXJIb3Jpem9udGFsU25hcExpbmVzID0gJ291dGVySG9yaXpvbnRhbFNuYXBMaW5lcycsXHJcblxyXG4gIC8vIERQSV9PdXRlclZlcnRpY2FsU25hcExpbmVzLCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0SXRlbVByZXNNb2RlbFtdXHJcbiAgT3V0ZXJWZXJ0aWNhbFNuYXBMaW5lcyA9ICdvdXRlclZlcnRpY2FsU25hcExpbmVzJyxcclxuXHJcbiAgLy8gRFBJX0lubmVySG9yaXpvbnRhbFNuYXBMaW5lcywgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdEl0ZW1QcmVzTW9kZWxbXVxyXG4gIElubmVySG9yaXpvbnRhbFNuYXBMaW5lcyA9ICdpbm5lckhvcml6b250YWxTbmFwTGluZXMnLFxyXG5cclxuICAvLyBEUElfSW5uZXJWZXJ0aWNhbFNuYXBMaW5lcywgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdEl0ZW1QcmVzTW9kZWxbXVxyXG4gIElubmVyVmVydGljYWxTbmFwTGluZXMgPSAnaW5uZXJWZXJ0aWNhbFNuYXBMaW5lcycsXHJcblxyXG4gIC8vIERQSV9ab25lU25hcExpbmVMaXN0LCBoYXZpbmcgdHlwZSBab25lU25hcExpbmVMaXN0UHJlc01vZGVsXHJcbiAgWm9uZVNuYXBMaW5lTGlzdCA9ICdzbmFwTGluZUxpc3QnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkWm9uZUhpZXJhcmNoeSwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkWm9uZUhpZXJhcmNoeVByZXNNb2RlbFxyXG4gIERhc2hib2FyZFpvbmVIaWVyYXJjaHkgPSAnZGFzaGJvYXJkWm9uZUhpZXJhcmNoeScsXHJcblxyXG4gIC8vIERQSV9EZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtLCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtUHJlc01vZGVsXHJcbiAgRGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbSA9ICdkZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0RldmljZVpvbmVWaXNpYmlsaXR5TGlzdEl0ZW1zLCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtUHJlc01vZGVsW11cclxuICBEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtcyA9ICdkZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9EZXZpY2Vab25lVmlzaWJpbGl0eUxpc3QsIGhhdmluZyB0eXBlIERldmljZVpvbmVWaXNpYmlsaXR5TGlzdFByZXNNb2RlbFxyXG4gIERldmljZVpvbmVWaXNpYmlsaXR5TGlzdCA9ICdkZXZpY2Vab25lVmlzaWJpbGl0eUxpc3QnLFxyXG5cclxuICAvLyBEUElfV29ya3NoZWV0RGF0YVNjaGVtYSwgaGF2aW5nIHR5cGUgV29ya3NoZWV0RGF0YVNjaGVtYVByZXNNb2RlbFxyXG4gIFdvcmtzaGVldERhdGFTY2hlbWEgPSAnd29ya3NoZWV0RGF0YVNjaGVtYScsXHJcblxyXG4gIC8vIERQSV9Xb3Jrc2hlZXREYXRhU2NoZW1hTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIFdvcmtzaGVldERhdGFTY2hlbWFQcmVzTW9kZWwpXHJcbiAgV29ya3NoZWV0RGF0YVNjaGVtYU1hcCA9ICd3b3Jrc2hlZXREYXRhU2NoZW1hTWFwJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmLCBoYXZpbmcgdHlwZSBTaGVsZlByZXNNb2RlbFxyXG4gIFNoZWxmID0gJ3NoZWxmJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRGV0YWlsLCBoYXZpbmcgdHlwZSBTaGVsZlByZXNNb2RlbFxyXG4gIFNoZWxmRGV0YWlsID0gJ3NoZWxmRGV0YWlsJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmTGlzdCwgaGF2aW5nIHR5cGUgU2hlbGZQcmVzTW9kZWxbXVxyXG4gIFNoZWxmTGlzdCA9ICdzaGVsZkxpc3QnLFxyXG5cclxuICAvLyBEUElfU2hlbGZJdGVtLCBoYXZpbmcgdHlwZSBTaGVsZkl0ZW1QcmVzTW9kZWxcclxuICBTaGVsZkl0ZW0gPSAnc2hlbGZJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmSXRlbXMsIGhhdmluZyB0eXBlIFNoZWxmSXRlbVByZXNNb2RlbFtdXHJcbiAgU2hlbGZJdGVtcyA9ICdzaGVsZkl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1NoZWx2ZXMsIGhhdmluZyB0eXBlIFNoZWx2ZXNQcmVzTW9kZWxcclxuICBTaGVsdmVzID0gJ3NoZWx2ZXMnLFxyXG5cclxuICAvLyBEUElfRmllbGRFbmNvZGluZywgaGF2aW5nIHR5cGUgRmllbGRFbmNvZGluZ1ByZXNNb2RlbFxyXG4gIEZpZWxkRW5jb2RpbmcgPSAnZmllbGRFbmNvZGluZycsXHJcblxyXG4gIC8vIERQSV9GaWVsZEVuY29kaW5ncywgaGF2aW5nIHR5cGUgRmllbGRFbmNvZGluZ1ByZXNNb2RlbFtdXHJcbiAgRmllbGRFbmNvZGluZ3MgPSAnZmllbGRFbmNvZGluZ3MnLFxyXG5cclxuICAvLyBEUElfVWJlclRpcCwgaGF2aW5nIHR5cGUgVWJlclRpcFByZXNNb2RlbFxyXG4gIFViZXJUaXAgPSAndWJlclRpcCcsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3REcmFnSW5mbywgaGF2aW5nIHR5cGUgQW5hbHl0aWNzT2JqZWN0RHJhZ0luZm9QcmVzTW9kZWxcclxuICBBbmFseXRpY3NPYmplY3REcmFnSW5mbyA9ICdhbmFseXRpY3NPYmplY3REcmFnSW5mbycsXHJcblxyXG4gIC8vIERQSV9UcmVuZExpbmUsIGhhdmluZyB0eXBlIFRyZW5kTGluZVByZXNNb2RlbFxyXG4gIFRyZW5kTGluZSA9ICd0cmVuZExpbmUnLFxyXG5cclxuICAvLyBEUElfVHJlbmRMaW5lRGlhbG9nLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVEaWFsb2dQcmVzTW9kZWxcclxuICBUcmVuZExpbmVEaWFsb2cgPSAndHJlbmRMaW5lRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZURlc2NyaWJlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVEZXNjcmliZVByZXNNb2RlbFxyXG4gIFRyZW5kTGluZURlc2NyaWJlUHJlc01vZGVsID0gJ3RyZW5kTGluZURlc2NyaWJlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUFPVk1vZGVsUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVBT1ZNb2RlbFByZXNNb2RlbFxyXG4gIFRyZW5kTGluZUFPVk1vZGVsUHJlc01vZGVsID0gJ3RyZW5kTGluZUFvdk1vZGVsUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUFPVk1vZGVsc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lQU9WTW9kZWxQcmVzTW9kZWxbXVxyXG4gIFRyZW5kTGluZUFPVk1vZGVsc1ByZXNNb2RlbCA9ICd0cmVuZE1vZGVsRGVzY3JpcHRpb25WZWN0b3InLFxyXG5cclxuICAvLyBEUElfVHJlbmRMaW5lTGluZUNvZWZmaWNpZW50UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVMaW5lQ29lZmZpY2llbnRQcmVzTW9kZWxcclxuICBUcmVuZExpbmVMaW5lQ29lZmZpY2llbnRQcmVzTW9kZWwgPSAndHJlbmRMaW5lTGluZUNvZWZmaWNpZW50JyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUxpbmVDb2VmZmljaWVudHNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRyZW5kTGluZUxpbmVDb2VmZmljaWVudFByZXNNb2RlbFtdXHJcbiAgVHJlbmRMaW5lTGluZUNvZWZmaWNpZW50c1ByZXNNb2RlbCA9ICd0cmVuZExpbmVMaW5lQ29lZmZpY2llbnRzUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUxpbmVzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVMaW5lc1ByZXNNb2RlbFxyXG4gIFRyZW5kTGluZUxpbmVzUHJlc01vZGVsID0gJ3RyZW5kTGluZUxpbmVzUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RyZW5kTGluZUFPVlByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lQU9WUHJlc01vZGVsXHJcbiAgVHJlbmRMaW5lQU9WUHJlc01vZGVsID0gJ3RyZW5kTGluZUFub3ZhUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1JlZmVyZW5jZUxpbmUsIGhhdmluZyB0eXBlIFJlZmVyZW5jZUxpbmVQcmVzTW9kZWxcclxuICBSZWZlcmVuY2VMaW5lID0gJ3JlZmVyZW5jZUxpbmUnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlTGluZXMsIGhhdmluZyB0eXBlIFJlZmVyZW5jZUxpbmVQcmVzTW9kZWxbXVxyXG4gIFJlZmVyZW5jZUxpbmVzID0gJ3JlZmVyZW5jZUxpbmVzJyxcclxuXHJcbiAgLy8gRFBJX1BlcmNlbnRpbGVFZGl0RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBFZGl0RGF0YVZhbHVlUHJlc01vZGVsXHJcbiAgUGVyY2VudGlsZUVkaXREYXRhVmFsdWUgPSAncGVyY2VudGlsZUVkaXREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfTGltaXRFZGl0RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBFZGl0RGF0YVZhbHVlUHJlc01vZGVsXHJcbiAgTGltaXRFZGl0RGF0YVZhbHVlID0gJ2xpbWl0RWRpdERhdGFWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9Db25maWRlbmNlTGV2ZWxDb21ibywgaGF2aW5nIHR5cGUgRWRpdFZhbHVlV2lkZ2V0UHJlc01vZGVsXHJcbiAgQ29uZmlkZW5jZUxldmVsQ29tYm8gPSAnY29uZmlkZW5jZUxldmVsQ29tYm8nLFxyXG5cclxuICAvLyBEUElfRGlzdHJpYnV0aW9uUXVhbnRpbGVzQ29tYm8sIGhhdmluZyB0eXBlIEVkaXRWYWx1ZVdpZGdldFByZXNNb2RlbFxyXG4gIERpc3RyaWJ1dGlvblF1YW50aWxlc0NvbWJvID0gJ2Rpc3RyaWJ1dGlvblF1YW50aWxlc0xldmVsQ29tYm8nLFxyXG5cclxuICAvLyBEUElfUGVyY2VudGlsZXNDb21ibywgaGF2aW5nIHR5cGUgRWRpdFZhbHVlV2lkZ2V0UHJlc01vZGVsXHJcbiAgUGVyY2VudGlsZXNDb21ibyA9ICdkaXN0cmlidXRpb25QZXJjZW50aWxlc0xldmVsQ29tYm8nLFxyXG5cclxuICAvLyBEUElfTnVtZXJpY0JpblNpemVDb21ibywgaGF2aW5nIHR5cGUgRWRpdFZhbHVlV2lkZ2V0UHJlc01vZGVsXHJcbiAgTnVtZXJpY0JpblNpemVDb21ibyA9ICdudW1lcmljQmluU2l6ZUNvbWJvJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkUGlja2VyRmllbGQsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyRmllbGRQcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlckZpZWxkID0gJ2ZpZWxkUGlja2VyRmllbGQnLFxyXG5cclxuICAvLyBEUElfRmllbGRQaWNrZXJGaWVsZHMsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyRmllbGRQcmVzTW9kZWxbXVxyXG4gIEZpZWxkUGlja2VyRmllbGRzID0gJ2ZpZWxkUGlja2VyRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkUGlja2VyQ29tYm8sIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyQ29tYm9QcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlckNvbWJvID0gJ2ZpZWxkUGlja2VyQ29tYm8nLFxyXG5cclxuICAvLyBEUElfUGFpcmVkRmllbGRQaWNrZXJDb21ibywgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJDb21ib1ByZXNNb2RlbFxyXG4gIFBhaXJlZEZpZWxkUGlja2VyQ29tYm8gPSAncGFpcmVkRmllbGRQaWNrZXJDb21ibycsXHJcblxyXG4gIC8vIERQSV9SZWZlcmVuY2VMaW5lRWRpdG9yUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBSZWZlcmVuY2VMaW5lRWRpdG9yUHJlc01vZGVsXHJcbiAgUmVmZXJlbmNlTGluZUVkaXRvclByZXNNb2RlbCA9ICdyZWZlcmVuY2VMaW5lRWRpdG9yJyxcclxuXHJcbiAgLy8gRFBJX0Nsb3NlRGF0YVNvdXJjZUVycm9yRGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBDbG9zZURhdGFTb3VyY2VFcnJvckRpYWxvZ1ByZXNNb2RlbFxyXG4gIENsb3NlRGF0YVNvdXJjZUVycm9yRGlhbG9nUHJlc01vZGVsID0gJ2Nsb3NlRHNFcnJvckRpYWxvZycsXHJcblxyXG4gIC8vIERQSV9FZGl0UmVmZXJlbmNlTGluZSwgaGF2aW5nIHR5cGUgRWRpdFJlZmVyZW5jZUxpbmVQcmVzTW9kZWxcclxuICBFZGl0UmVmZXJlbmNlTGluZSA9ICdlZGl0UmVmZXJlbmNlTGluZScsXHJcblxyXG4gIC8vIERQSV9FZGl0UmVmZXJlbmNlQmFuZCwgaGF2aW5nIHR5cGUgRWRpdFJlZmVyZW5jZUJhbmRQcmVzTW9kZWxcclxuICBFZGl0UmVmZXJlbmNlQmFuZCA9ICdlZGl0UmVmZXJlbmNlQmFuZCcsXHJcblxyXG4gIC8vIERQSV9FZGl0RGlzdHJpYnV0aW9uLCBoYXZpbmcgdHlwZSBFZGl0RGlzdHJpYnV0aW9uUHJlc01vZGVsXHJcbiAgRWRpdERpc3RyaWJ1dGlvbiA9ICdlZGl0RGlzdHJpYnV0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3RyaWJ1dGlvblBlcmNlbnRhZ2VzLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25QZXJjZW50YWdlc1ByZXNNb2RlbFxyXG4gIERpc3RyaWJ1dGlvblBlcmNlbnRhZ2VzID0gJ2Rpc3RyaWJ1dGlvblBlcmNlbnRhZ2VzJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3RyaWJ1dGlvblBlcmNlbnRpbGVzLCBoYXZpbmcgdHlwZSBEaXN0cmlidXRpb25QZXJjZW50aWxlc1ByZXNNb2RlbFxyXG4gIERpc3RyaWJ1dGlvblBlcmNlbnRpbGVzID0gJ2Rpc3RyaWJ1dGlvblBlcmNlbnRpbGVzJyxcclxuXHJcbiAgLy8gRFBJX0Rpc3RyaWJ1dGlvblF1YW50aWxlcywgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uUXVhbnRpbGVzUHJlc01vZGVsXHJcbiAgRGlzdHJpYnV0aW9uUXVhbnRpbGVzID0gJ2Rpc3RyaWJ1dGlvblF1YW50aWxlcycsXHJcblxyXG4gIC8vIERQSV9EaXN0cmlidXRpb25TdGFuZGFyZERldmlhdGlvbiwgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uU3RhbmRhcmREZXZpYXRpb25QcmVzTW9kZWxcclxuICBEaXN0cmlidXRpb25TdGFuZGFyZERldmlhdGlvbiA9ICdkaXN0cmlidXRpb25TdGRkZXYnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvcnMsIGhhdmluZyB0eXBlIFNvcnRJbmRpY2F0b3JzUHJlc01vZGVsXHJcbiAgU29ydEluZGljYXRvcnMgPSAnc29ydEluZGljYXRvcnMnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvclJlZ2lvbiwgaGF2aW5nIHR5cGUgU29ydEluZGljYXRvclJlZ2lvblByZXNNb2RlbFxyXG4gIFNvcnRJbmRpY2F0b3JSZWdpb24gPSAnc29ydEluZGljYXRvclJlZ2lvbicsXHJcblxyXG4gIC8vIERQSV9Tb3J0SW5kaWNhdG9yUmVnaW9ucywgaGF2aW5nIHR5cGUgU29ydEluZGljYXRvclJlZ2lvblByZXNNb2RlbFtdXHJcbiAgU29ydEluZGljYXRvclJlZ2lvbnMgPSAnc29ydEluZGljYXRvclJlZ2lvbnMnLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvckl0ZW0sIGhhdmluZyB0eXBlIFNvcnRJbmRpY2F0b3JJdGVtUHJlc01vZGVsXHJcbiAgU29ydEluZGljYXRvckl0ZW0gPSAnc29ydEluZGljYXRvckl0ZW0nLFxyXG5cclxuICAvLyBEUElfU29ydEluZGljYXRvckl0ZW1zLCBoYXZpbmcgdHlwZSBTb3J0SW5kaWNhdG9ySXRlbVByZXNNb2RlbFtdXHJcbiAgU29ydEluZGljYXRvckl0ZW1zID0gJ3NvcnRJbmRpY2F0b3JJdGVtcycsXHJcblxyXG4gIC8vIERQSV9CdWlsZGVyQ29uZmlnLCBoYXZpbmcgdHlwZSBCdWlsZGVyQ29uZmlnUHJlc01vZGVsXHJcbiAgQnVpbGRlckNvbmZpZyA9ICdidWlsZGVyQ29uZmlnJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0TGF5b3V0SW5mbywgaGF2aW5nIHR5cGUgU2hlZXRMYXlvdXRJbmZvUHJlc01vZGVsXHJcbiAgU2hlZXRMYXlvdXRJbmZvID0gJ3NoZWV0TGF5b3V0SW5mbycsXHJcblxyXG4gIC8vIERQSV9BcmVhUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgQXJlYVJlY3QgPSAnYXJlYVJlY3QnLFxyXG5cclxuICAvLyBEUElfQm9yZGVyLCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBCb3JkZXIgPSAnYm9yZGVyUmVjdCcsXHJcblxyXG4gIC8vIERQSV9Cb3VuZHNSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBCb3VuZHNSZWN0ID0gJ2JvdW5kc1JlY3QnLFxyXG5cclxuICAvLyBEUElfQnV0dG9uUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgQnV0dG9uUmVjdCA9ICdidXR0b25SZWN0JyxcclxuXHJcbiAgLy8gRFBJX0RyYWdSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBEcmFnUmVjdCA9ICdkcmFnUmVjdCcsXHJcblxyXG4gIC8vIERQSV9Gb2N1c1JlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIEZvY3VzUmVjdCA9ICdmb2N1c1JlY3QnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VUaWxlUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgSW1hZ2VUaWxlUmVjdCA9ICd0aWxlUmVjdCcsXHJcblxyXG4gIC8vIERQSV9JdGVtUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgSXRlbVJlY3QgPSAnaXRlbVJlY3QnLFxyXG5cclxuICAvLyBEUElfTGFiZWxSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBMYWJlbFJlY3QgPSAnbGFiZWxSZWN0JyxcclxuXHJcbiAgLy8gRFBJX01hcmtSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBNYXJrUmVjdCA9ICdtYXJrUmVjdCcsXHJcblxyXG4gIC8vIERQSV9NYXJrVG9vbHRpcFJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIE1hcmtUb29sdGlwUmVjdCA9ICdtYXJrVG9vbHRpcFJlY3QnLFxyXG5cclxuICAvLyBEUElfTWVudUJ1dHRvblJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIE1lbnVCdXR0b25SZWN0ID0gJ21lbnVCdXR0b25SZWN0JyxcclxuXHJcbiAgLy8gRFBJX091dFJlZ2lvblJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIE91dFJlZ2lvblJlY3QgPSAnb3V0UmVnaW9uUmVjdCcsXHJcblxyXG4gIC8vIERQSV9QYW5lUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgUGFuZVJlY3QgPSAncGFuZVJlY3QnLFxyXG5cclxuICAvLyBEUElfUGl4ZWxFeHRlbnRzLCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBQaXhlbEV4dGVudHMgPSAncGl4ZWxFeHRlbnRzJyxcclxuXHJcbiAgLy8gRFBJX1JlY3RNYXhMYWJlbCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgUmVjdE1heExhYmVsID0gJ3JlY3RNYXhMYWJlbCcsXHJcblxyXG4gIC8vIERQSV9SZWN0TWluTGFiZWwsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFJlY3RNaW5MYWJlbCA9ICdyZWN0TWluTGFiZWwnLFxyXG5cclxuICAvLyBEUElfUmVjdFJhbXAsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFJlY3RSYW1wID0gJ3JlY3RSYW1wJyxcclxuXHJcbiAgLy8gRFBJX1JlY3RUaXRsZSwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgUmVjdFRpdGxlID0gJ3JlY3RUaXRsZScsXHJcblxyXG4gIC8vIERQSV9SZWdpb25SZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBSZWdpb25SZWN0ID0gJ3JlZ2lvblJlY3QnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0aW9uUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgU2VsZWN0aW9uUmVjdCA9ICdzZWxlY3Rpb25SZWN0JyxcclxuXHJcbiAgLy8gRFBJX1VudXNlZFJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFVudXNlZFJlY3QgPSAndW51c2VkUmVjdCcsXHJcblxyXG4gIC8vIERQSV9ab25lRWRnZVJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFpvbmVFZGdlUmVjdCA9ICd6b25lRWRnZScsXHJcblxyXG4gIC8vIERQSV9ab25lRWRnZVJlY3RQaXgsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIFpvbmVFZGdlUmVjdFBpeCA9ICd6b25lRWRnZVBpeCcsXHJcblxyXG4gIC8vIERQSV9ab25lRWRnZVJlY3RQcCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgWm9uZUVkZ2VSZWN0UHAgPSAnem9uZUVkZ2VQcCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25MaW5rUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXHJcbiAgVUlBdXRvbWF0aW9uTGlua1JlY3QgPSAnbGlua1JlY3QnLFxyXG5cclxuICAvLyBEUElfQm9yZGVycywgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsW11cclxuICBCb3JkZXJzID0gJ2JvcmRlclJlY3RzJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbkxpbmtSZWN0cywgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsW11cclxuICBVSUF1dG9tYXRpb25MaW5rUmVjdHMgPSAnbGlua1JlY3RzJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbkV4dGVudHMsIGhhdmluZyB0eXBlIERvdWJsZVJlY3RhbmdsZVByZXNNb2RlbFxyXG4gIERvbWFpbkV4dGVudHMgPSAnZG9tYWluRXh0ZW50cycsXHJcblxyXG4gIC8vIERQSV9NYXBEb21haW5FeHRlbnRzLCBoYXZpbmcgdHlwZSBEb3VibGVSZWN0YW5nbGVQcmVzTW9kZWxcclxuICBNYXBEb21haW5FeHRlbnRzID0gJ21hcERvbWFpbkV4dGVudHMnLFxyXG5cclxuICAvLyBEUElfTWFwTGF0TG9uZ1JlY3QsIGhhdmluZyB0eXBlIE1hcFJlY3RQcmVzTW9kZWxcclxuICBNYXBMYXRMb25nUmVjdCA9ICdtYXBMYXRMb25nUmVjdCcsXHJcblxyXG4gIC8vIERQSV9DZW50ZXIsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgQ2VudGVyID0gJ2NlbnRlcicsXHJcblxyXG4gIC8vIERQSV9DZW50ZXJNYXJrTGluZUJlZ2luLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIENlbnRlck1hcmtMaW5lQmVnaW4gPSAnY2VudGVyTWFya0xpbmVCZWdpbicsXHJcblxyXG4gIC8vIERQSV9DZW50ZXJNYXJrTGluZUVuZCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBDZW50ZXJNYXJrTGluZUVuZCA9ICdjZW50ZXJNYXJrTGluZUVuZCcsXHJcblxyXG4gIC8vIERQSV9Ecm9wTG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgRHJvcExvY2F0aW9uID0gJ2Ryb3BMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9FbmRQdCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBFbmRQdCA9ICdlbmRQb2ludCcsXHJcblxyXG4gIC8vIERQSV9HcmFiTG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgR3JhYkxvY2F0aW9uID0gJ2dyYWJMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9HcmlkT3JpZ2luLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIEdyaWRPcmlnaW4gPSAnZ3JpZE9yaWdpbicsXHJcblxyXG4gIC8vIERQSV9MYXNzb1NlbGVjdGlvblBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIExhc3NvU2VsZWN0aW9uUG9pbnQgPSAnbGFzc29TZWxlY3Rpb25Qb2ludCcsXHJcblxyXG4gIC8vIERQSV9NZW51TG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgTWVudUxvY2F0aW9uID0gJ21lbnVMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9Nb3ZlT2Zmc2V0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIE1vdmVPZmZzZXQgPSAnbW92ZU9mZnNldCcsXHJcblxyXG4gIC8vIERQSV9PdmVybGF5QW5jaG9yLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIE92ZXJsYXlBbmNob3IgPSAnb3ZlcmxheUFuY2hvcicsXHJcblxyXG4gIC8vIERQSV9QYW5BbW91bnQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgUGFuQW1vdW50ID0gJ3BhbkFtb3VudCcsXHJcblxyXG4gIC8vIERQSV9QYW5Mb2NhdGlvbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBQYW5Mb2NhdGlvbiA9ICdwYW5Mb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9QYW5lUmVzb2x2ZXJMb2NhdGlvbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBQYW5lUmVzb2x2ZXJMb2NhdGlvbiA9ICdwYW5lUmVzb2x2ZXJMb2NhdGlvbicsXHJcblxyXG4gIC8vIERQSV9QaXhlbEV4dGVudHNPZmZzZXQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgUGl4ZWxFeHRlbnRzT2Zmc2V0ID0gJ2V4dGVudHNPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfUG9pbnQxLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFBvaW50MSA9ICdwdDEnLFxyXG5cclxuICAvLyBEUElfUG9pbnQyLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFBvaW50MiA9ICdwdDInLFxyXG5cclxuICAvLyBEUElfUG9pbnQzLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFBvaW50MyA9ICdwdDMnLFxyXG5cclxuICAvLyBEUElfUmVnaW9uUG9pbnQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgUmVnaW9uUG9pbnQgPSAncmVnaW9uUG9pbnQnLFxyXG5cclxuICAvLyBEUElfU2Nyb2xsT2Zmc2V0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFNjcm9sbE9mZnNldCA9ICdzY3JvbGxPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0QXRQb2ludCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBTZWxlY3RBdFBvaW50ID0gJ3NlbGVjdEF0UG9pbnQnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0T2Zmc2V0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFNlbGVjdE9mZnNldCA9ICdzZWxlY3RPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfVGFyZ2V0UHQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgVGFyZ2V0UHQgPSAndGFyZ2V0UG9pbnQnLFxyXG5cclxuICAvLyBEUElfVGV4dE9yaWdpbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBUZXh0T3JpZ2luID0gJ3RleHRPcmlnaW4nLFxyXG5cclxuICAvLyBEUElfVG9vbHRpcEFuY2hvclBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFRvb2x0aXBBbmNob3JQb2ludCA9ICd0b29sdGlwQW5jaG9yUG9pbnQnLFxyXG5cclxuICAvLyBEUElfVG9vbHRpcE9mZnNldCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcclxuICBUb29sdGlwT2Zmc2V0ID0gJ3Rvb2x0aXBPZmZzZXQnLFxyXG5cclxuICAvLyBEUElfVml6TG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXHJcbiAgVml6TG9jYXRpb24gPSAndml6TG9jYXRpb24nLFxyXG5cclxuICAvLyBEUElfWm9vbUFuY2hvclBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIFpvb21BbmNob3JQb2ludCA9ICd6b29tQW5jaG9yUG9pbnQnLFxyXG5cclxuICAvLyBEUElfTWVudUFuY2hvclBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxyXG4gIE1lbnVBbmNob3JQb2ludCA9ICdtZW51QW5jaG9yUG9pbnQnLFxyXG5cclxuICAvLyBEUElfT3ZlcmxheUFuY2hvcnMsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsW11cclxuICBPdmVybGF5QW5jaG9ycyA9ICdvdmVybGF5QW5jaG9ycycsXHJcblxyXG4gIC8vIERQSV9MYXNzb1NlbGVjdGlvbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxbXVxyXG4gIExhc3NvU2VsZWN0aW9uID0gJ2xhc3NvU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1Njcm9sbE9mZnNldFBvaW50cywgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxbXVxyXG4gIFNjcm9sbE9mZnNldFBvaW50cyA9ICdzY3JvbGxPZmZzZXRQb2ludHMnLFxyXG5cclxuICAvLyBEUElfUmFkaWFsU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBDaXJjbGVQcmVzTW9kZWxcclxuICBSYWRpYWxTZWxlY3Rpb24gPSAncmFkaWFsU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbk9yaWdpbiwgaGF2aW5nIHR5cGUgRmxvYXRQb2ludFByZXNNb2RlbFxyXG4gIERvbWFpbk9yaWdpbiA9ICdkb21haW5PcmlnaW4nLFxyXG5cclxuICAvLyBEUElfRmxvYXRDZW50ZXIsIGhhdmluZyB0eXBlIEZsb2F0UG9pbnRQcmVzTW9kZWxcclxuICBGbG9hdENlbnRlciA9ICdmbG9hdENlbnRlcicsXHJcblxyXG4gIC8vIERQSV9GbG9hdFBvaW50LCBoYXZpbmcgdHlwZSBGbG9hdFBvaW50UHJlc01vZGVsXHJcbiAgRmxvYXRQb2ludCA9ICdmbG9hdFBvaW50JyxcclxuXHJcbiAgLy8gRFBJX0NsaWVudEF2YWlsYWJsZVNwYWNlLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgQ2xpZW50QXZhaWxhYmxlU3BhY2UgPSAnY2xpZW50QXZhaWxhYmxlU3BhY2UnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkUG9ydFNpemUsIGhhdmluZyB0eXBlIFNpemVQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRQb3J0U2l6ZSA9ICdkYXNoYm9hcmRQb3J0JyxcclxuXHJcbiAgLy8gRFBJX0xlZ2VuZFNpemUsIGhhdmluZyB0eXBlIFNpemVQcmVzTW9kZWxcclxuICBMZWdlbmRTaXplID0gJ2xlZ2VuZFNpemUnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb3J0U2l6ZSwgaGF2aW5nIHR5cGUgU2l6ZVByZXNNb2RlbFxyXG4gIFN0b3J5UG9ydFNpemUgPSAnc3RvcnlQb3J0JyxcclxuXHJcbiAgLy8gRFBJX1N3YXRjaEFyZWFTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgU3dhdGNoQXJlYVNpemUgPSAnYXJlYVNpemUnLFxyXG5cclxuICAvLyBEUElfU3dhdGNoSW1hZ2VTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgU3dhdGNoSW1hZ2VTaXplID0gJ2ltYWdlU2l6ZScsXHJcblxyXG4gIC8vIERQSV9WaWV3cG9ydFNpemUsIGhhdmluZyB0eXBlIFNpemVQcmVzTW9kZWxcclxuICBWaWV3cG9ydFNpemUgPSAndmlld3BvcnRTaXplJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtzaGVldFBvcnRTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXHJcbiAgV29ya3NoZWV0UG9ydFNpemUgPSAnd29ya3NoZWV0UG9ydCcsXHJcblxyXG4gIC8vIERQSV9SZXNpemVFbnRpdHksIGhhdmluZyB0eXBlIFJlc2l6ZUVudGl0eVByZXNNb2RlbFxyXG4gIFJlc2l6ZUVudGl0eSA9ICdyZXNpemVFbnRpdHknLFxyXG5cclxuICAvLyBEUElfUm93UmVzaXplcnMsIGhhdmluZyB0eXBlIFJlc2l6ZUVudGl0eVByZXNNb2RlbFtdXHJcbiAgUm93UmVzaXplcnMgPSAncm93UmVzaXplcnMnLFxyXG5cclxuICAvLyBEUElfQ29sUmVzaXplcnMsIGhhdmluZyB0eXBlIFJlc2l6ZUVudGl0eVByZXNNb2RlbFtdXHJcbiAgQ29sUmVzaXplcnMgPSAnY29sUmVzaXplcnMnLFxyXG5cclxuICAvLyBEUElfUmVzaXplSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUmVzaXplSW5mb1ByZXNNb2RlbFxyXG4gIFJlc2l6ZUluZm9QcmVzTW9kZWwgPSAncmVzaXplSW5mbycsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJTaGVldCwgaGF2aW5nIHR5cGUgU2VydmVyU2hlZXRQcmVzTW9kZWxcclxuICBTZXJ2ZXJTaGVldCA9ICdzZXJ2ZXJTaGVldCcsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJTaGVldHMsIGhhdmluZyB0eXBlIFNlcnZlclNoZWV0UHJlc01vZGVsW11cclxuICBTZXJ2ZXJTaGVldHMgPSAnc2VydmVyU2hlZXRzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0SW5mbywgaGF2aW5nIHR5cGUgU2hlZXRJbmZvUHJlc01vZGVsXHJcbiAgU2hlZXRJbmZvID0gJ3NoZWV0SW5mbycsXHJcblxyXG4gIC8vIERQSV9TaGVldHNJbmZvLCBoYXZpbmcgdHlwZSBTaGVldEluZm9QcmVzTW9kZWxbXVxyXG4gIFNoZWV0c0luZm8gPSAnc2hlZXRzSW5mbycsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJXb3JrYm9vaywgaGF2aW5nIHR5cGUgU2VydmVyV29ya2Jvb2tQcmVzTW9kZWxcclxuICBTZXJ2ZXJXb3JrYm9vayA9ICdzZXJ2ZXJXb3JrYm9vaycsXHJcblxyXG4gIC8vIERQSV9QREZFeHBvcnRPcHRpb25zUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBQREZFeHBvcnRPcHRpb25zUHJlc01vZGVsXHJcbiAgUERGRXhwb3J0T3B0aW9uc1ByZXNNb2RlbCA9ICdwZGZFeHBvcnQnLFxyXG5cclxuICAvLyBEUElfRXhwb3J0RmlsZVJlc3VsdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRXhwb3J0RmlsZVJlc3VsdFByZXNNb2RlbFxyXG4gIEV4cG9ydEZpbGVSZXN1bHRQcmVzTW9kZWwgPSAncGRmUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1BERlNoZWV0LCBoYXZpbmcgdHlwZSBQREZTaGVldFByZXNNb2RlbFxyXG4gIFBERlNoZWV0ID0gJ3BkZlNoZWV0JyxcclxuXHJcbiAgLy8gRFBJX1NoZWV0T3B0aW9ucywgaGF2aW5nIHR5cGUgUERGU2hlZXRQcmVzTW9kZWxbXVxyXG4gIFNoZWV0T3B0aW9ucyA9ICdzaGVldE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRXhwb3J0TGF5b3V0T3B0aW9ucywgaGF2aW5nIHR5cGUgRXhwb3J0TGF5b3V0T3B0aW9uc1ByZXNNb2RlbFxyXG4gIEV4cG9ydExheW91dE9wdGlvbnMgPSAnZXhwb3J0TGF5b3V0T3B0aW9ucycsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRDb25kaXRpb25PcGVyYXRpb25UeXBlLCBoYXZpbmcgdHlwZSBEYXRhQWxlcnRDb25kaXRpb25PcGVyYXRpb25UeXBlXHJcbiAgRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZSA9ICdkYXRhQWxlcnRDb25kaXRpb25PcCcsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnREaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhdGFBbGVydERpYWxvZ1ByZXNNb2RlbFxyXG4gIERhdGFBbGVydERpYWxvZ1ByZXNNb2RlbCA9ICdkYXRhQWxlcnREaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0TWVhc3VyZSwgaGF2aW5nIHR5cGUgRGF0YUFsZXJ0TWVhc3VyZVByZXNNb2RlbFxyXG4gIERhdGFBbGVydE1lYXN1cmUgPSAnZGF0YUFsZXJ0TWVhc3VyZScsXHJcblxyXG4gIC8vIERQSV9EYXRhQWxlcnRNZWFzdXJlcywgaGF2aW5nIHR5cGUgRGF0YUFsZXJ0TWVhc3VyZVByZXNNb2RlbFtdXHJcbiAgRGF0YUFsZXJ0TWVhc3VyZXMgPSAnZGF0YUFsZXJ0TWVhc3VyZXMnLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0Q29uc3RhbnRDb25kaXRpb24sIGhhdmluZyB0eXBlIERhdGFBbGVydENvbnN0YW50Q29uZGl0aW9uUHJlc01vZGVsXHJcbiAgRGF0YUFsZXJ0Q29uc3RhbnRDb25kaXRpb24gPSAnZGF0YUFsZXJ0Q29uc3RhbnRDb25kaXRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YUFsZXJ0RGlhbG9nTW9kZSwgaGF2aW5nIHR5cGUgRGF0YUFsZXJ0RGlhbG9nTW9kZVxyXG4gIERhdGFBbGVydERpYWxvZ01vZGUgPSAnZGF0YUFsZXJ0RGlhbG9nTW9kZScsXHJcblxyXG4gIC8vIERQSV9MaWdodHdlaWdodE1hcE9wdGlvbnMsIGhhdmluZyB0eXBlIExpZ2h0d2VpZ2h0TWFwT3B0aW9uc1ByZXNNb2RlbFxyXG4gIExpZ2h0d2VpZ2h0TWFwT3B0aW9ucyA9ICdsaWdodHdlaWdodE1hcE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRGF0YUhpZ2hsaWdodGVyLCBoYXZpbmcgdHlwZSBEYXRhSGlnaGxpZ2h0ZXJQcmVzTW9kZWxcclxuICBEYXRhSGlnaGxpZ2h0ZXIgPSAnZGF0YUhpZ2hsaWdodGVyJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFIaWdobGlnaHRlckl0ZW1TZXQsIGhhdmluZyB0eXBlIERhdGFIaWdobGlnaHRlckl0ZW1TZXRQcmVzTW9kZWxcclxuICBEYXRhSGlnaGxpZ2h0ZXJJdGVtU2V0ID0gJ2RhdGFIaWdobGlnaHRlckl0ZW1TZXQnLFxyXG5cclxuICAvLyBEUElfRGF0YUhpZ2hsaWdodGVySXRlbSwgaGF2aW5nIHR5cGUgRGF0YUhpZ2hsaWdodGVySXRlbVByZXNNb2RlbFxyXG4gIERhdGFIaWdobGlnaHRlckl0ZW0gPSAnZGF0YUhpZ2hsaWdodGVySXRlbScsXHJcblxyXG4gIC8vIERQSV9EYXRhSGlnaGxpZ2h0ZXJJdGVtcywgaGF2aW5nIHR5cGUgRGF0YUhpZ2hsaWdodGVySXRlbVByZXNNb2RlbFtdXHJcbiAgRGF0YUhpZ2hsaWdodGVySXRlbXMgPSAnZGF0YUhpZ2hsaWdodGVySXRlbXMnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxMZWdlbmRMYXlvdXQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsTGVnZW5kTGF5b3V0UHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxMZWdlbmRMYXlvdXQgPSAnY2F0TGVnZW5kTGF5b3V0JyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsTGVnZW5kLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbExlZ2VuZFByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsTGVnZW5kID0gJ2NhdGVnb3JpY2FsTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsTGVnZW5kcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxMZWdlbmRQcmVzTW9kZWxbXVxyXG4gIENhdGVnb3JpY2FsTGVnZW5kcyA9ICdjYXRlZ29yaWNhbExlZ2VuZHMnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxDb2xvckxlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvckxlZ2VuZFByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsQ29sb3JMZWdlbmQgPSAnY29sb3JMZWdlbmQnLFxyXG5cclxuICAvLyBEUElfQ29sb3JMZWdlbmRJdGVtLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbENvbG9yTGVnZW5kSXRlbVByZXNNb2RlbFxyXG4gIENvbG9yTGVnZW5kSXRlbSA9ICdjb2xvckxlZ2VuZEl0ZW0nLFxyXG5cclxuICAvLyBEUElfQ29sb3JMZWdlbmRJdGVtcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvckxlZ2VuZEl0ZW1QcmVzTW9kZWxbXVxyXG4gIENvbG9yTGVnZW5kSXRlbXMgPSAnY29sb3JMZWdlbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbFNoYXBlTGVnZW5kLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbFNoYXBlTGVnZW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxTaGFwZUxlZ2VuZCA9ICdjYXRlZ29yaWNhbFNoYXBlTGVnZW5kJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlTGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaGFwZUxlZ2VuZEl0ZW1QcmVzTW9kZWxcclxuICBTaGFwZUxlZ2VuZEl0ZW0gPSAnc2hhcGVMZWdlbmRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlTGVnZW5kSXRlbXMsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2hhcGVMZWdlbmRJdGVtUHJlc01vZGVsW11cclxuICBTaGFwZUxlZ2VuZEl0ZW1zID0gJ3NoYXBlTGVnZW5kSXRlbXMnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxIaWdobGlnaHRMZWdlbmQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsSGlnaGxpZ2h0TGVnZW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxIaWdobGlnaHRMZWdlbmQgPSAnY2F0ZWdvcmljYWxIaWdobGlnaHRMZWdlbmQnLFxyXG5cclxuICAvLyBEUElfSGlnaGxpZ2h0TGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxMZWdlbmRJdGVtUHJlc01vZGVsXHJcbiAgSGlnaGxpZ2h0TGVnZW5kSXRlbSA9ICdoaWdobGlnaHRMZWdlbmRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodExlZ2VuZEl0ZW1zLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbExlZ2VuZEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEhpZ2hsaWdodExlZ2VuZEl0ZW1zID0gJ2hpZ2hsaWdodExlZ2VuZEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsU2l6ZUxlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaXplTGVnZW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxTaXplTGVnZW5kID0gJ2NhdGVnb3JpY2FsU2l6ZUxlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9TaXplTGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaXplTGVnZW5kSXRlbVByZXNNb2RlbFxyXG4gIFNpemVMZWdlbmRJdGVtID0gJ3NpemVMZWdlbmRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1NpemVMZWdlbmRJdGVtcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaXplTGVnZW5kSXRlbVByZXNNb2RlbFtdXHJcbiAgU2l6ZUxlZ2VuZEl0ZW1zID0gJ3NpemVMZWdlbmRJdGVtcycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbE1hcExlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxNYXBMZWdlbmRQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbE1hcExlZ2VuZCA9ICdjYXRlZ29yaWNhbE1hcExlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVDb2xvckxlZ2VuZCwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlQ29sb3JMZWdlbmRQcmVzTW9kZWxcclxuICBRdWFudGl0YXRpdmVDb2xvckxlZ2VuZCA9ICdxdWFudGl0YXRpdmVDb2xvckxlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVDb2xvckxlZ2VuZHMsIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZUNvbG9yTGVnZW5kUHJlc01vZGVsW11cclxuICBRdWFudGl0YXRpdmVDb2xvckxlZ2VuZHMgPSAncXVhbnRpdGF0aXZlQ29sb3JMZWdlbmRzJyxcclxuXHJcbiAgLy8gRFBJX1F1YW50aXRhdGl2ZUxlZ2VuZExheW91dCwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlTGVnZW5kTGF5b3V0UHJlc01vZGVsXHJcbiAgUXVhbnRpdGF0aXZlTGVnZW5kTGF5b3V0ID0gJ3F1YW50aXRhdGl2ZUxlZ2VuZExheW91dCcsXHJcblxyXG4gIC8vIERQSV9TZXJ2ZXJSZW5kZXJlZExlZ2VuZCwgaGF2aW5nIHR5cGUgU2VydmVyUmVuZGVyZWRMZWdlbmRQcmVzTW9kZWxcclxuICBTZXJ2ZXJSZW5kZXJlZExlZ2VuZCA9ICdzZXJ2ZXJSZW5kZXJlZExlZ2VuZCcsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlciwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlciA9ICdjYXRlZ29yaWNhbEZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWwsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbCA9ICdjYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWwnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJNZW1iZXJEb21haW5QYWdlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlck1lbWJlckRvbWFpblBhZ2VQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlck1lbWJlckRvbWFpblBhZ2UgPSAnY2F0ZWdvcmljYWxGaWx0ZXJNZW1iZXJEb21haW5QYWdlJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyQ2FjaGVJbmZvLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlckNhY2hlSW5mb1ByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyQ2FjaGVJbmZvID0gJ2NhdGVnb3JpY2FsRmlsdGVyQ2FjaGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyUGF0dGVybkRpc3BsYXksIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUGF0dGVybkRpc3BsYXlQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5EaXNwbGF5ID0gJ2NhdGVnb3JpY2FsRmlsdGVyUGF0dGVybkRpc3BsYXknLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJQYXR0ZXJuVXBkYXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5VcGRhdGVQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5VcGRhdGUgPSAnY2F0ZWdvcmljYWxGaWx0ZXJQYXR0ZXJuVXBkYXRlJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uRGlzcGxheSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25EaXNwbGF5UHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25EaXNwbGF5ID0gJ2NhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uRGlzcGxheScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblVwZGF0ZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25VcGRhdGVQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblVwZGF0ZSA9ICdjYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblVwZGF0ZScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckxpbWl0RGlzcGxheSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdERpc3BsYXlQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlckxpbWl0RGlzcGxheSA9ICdjYXRlZ29yaWNhbEZpbHRlckxpbWl0RGlzcGxheScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckxpbWl0VXBkYXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlckxpbWl0VXBkYXRlUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdFVwZGF0ZSA9ICdjYXRlZ29yaWNhbEZpbHRlckxpbWl0VXBkYXRlJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyTmV3LCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlcl9OZXdQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlck5ldyA9ICdjYXRlZ29yaWNhbEZpbHRlck5ldycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckhpZXJhcmNoeSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJIaWVyYXJjaHlQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEZpbHRlckhpZXJhcmNoeSA9ICdjYXRlZ29yaWNhbEZpbHRlckhpcmVyYXJjaHknLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGUsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyVXBkYXRlUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGUgPSAnY2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGUnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsU3RhdGUsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFN0YXRlUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsU3RhdGUgPSAnY2F0ZWdvcmljYWxSZWxhdGlvbmFsU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsVXBkYXRlZFN0YXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxTdGF0ZVByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFVwZGF0ZWRTdGF0ZSA9ICdjYXRlZ29yaWNhbFJlbGF0aW9uYWxVcGRhdGVkU3RhdGUnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRG9tYWluSW5mbywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRG9tYWluSW5mb1ByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbERvbWFpbkluZm8gPSAnY2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRG9tYWluSW5mbycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxEaXNwbGF5LCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxEaXNwbGF5UHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRGlzcGxheSA9ICdjYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxEaXNwbGF5JyxcclxuXHJcbiAgLy8gRFBJX0V4cHJlc3Npb25Ub2tlbiwgaGF2aW5nIHR5cGUgRXhwcmVzc2lvblRva2VuUHJlc01vZGVsXHJcbiAgRXhwcmVzc2lvblRva2VuID0gJ2V4cHJlc3Npb25Ub2tlbicsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uVG9rZW5zLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uVG9rZW5QcmVzTW9kZWxbXVxyXG4gIEV4cHJlc3Npb25Ub2tlbnMgPSAnZXhwcmVzc2lvblRva2VucycsXHJcblxyXG4gIC8vIERQSV9Gb3JtdWxhVmFsaWRhdGlvbiwgaGF2aW5nIHR5cGUgRm9ybXVsYVZhbGlkYXRpb25QcmVzTW9kZWxcclxuICBGb3JtdWxhVmFsaWRhdGlvbiA9ICdmb3JtdWxhVmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRGaWx0ZXJWYWx1ZSwgaGF2aW5nIHR5cGUgRmlsdGVyVmFsdWVQcmVzTW9kZWxcclxuICBDYXB0aW9uZWRGaWx0ZXJWYWx1ZSA9ICdjYXB0aW9uZWRGaWx0ZXJWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRSYW5nZU1pbiwgaGF2aW5nIHR5cGUgRmlsdGVyVmFsdWVQcmVzTW9kZWxcclxuICBDYXB0aW9uZWRSYW5nZU1pbiA9ICdjYXB0aW9uZWRSYW5nZU1pbicsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRSYW5nZU1heCwgaGF2aW5nIHR5cGUgRmlsdGVyVmFsdWVQcmVzTW9kZWxcclxuICBDYXB0aW9uZWRSYW5nZU1heCA9ICdjYXB0aW9uZWRSYW5nZU1heCcsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRBbmNob3JEYXRlLCBoYXZpbmcgdHlwZSBGaWx0ZXJWYWx1ZVByZXNNb2RlbFxyXG4gIENhcHRpb25lZEFuY2hvckRhdGUgPSAnY2FwdGlvbmVkQW5jaG9yRGF0ZScsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QsIGhhdmluZyB0eXBlIEZpbHRlclZhbHVlUHJlc01vZGVsW11cclxuICBDYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QgPSAnY2FwdGlvbmVkRmlsdGVyVmFsdWVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVySW5mbywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJJbmZvUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaWx0ZXJJbmZvID0gJ2NhdGVnb3JpY2FsRmlsdGVySW5mbycsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVGaWx0ZXJJbmZvLCBoYXZpbmcgdHlwZSBRdWFudGl0YXRpdmVGaWx0ZXJJbmZvUHJlc01vZGVsXHJcbiAgUXVhbnRpdGF0aXZlRmlsdGVySW5mbyA9ICdxdWFudGl0YXRpdmVGaWx0ZXJJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1JlbGF0aXZlRGF0ZUZpbHRlckluZm8sIGhhdmluZyB0eXBlIFJlbGF0aXZlRGF0ZUZpbHRlckluZm9QcmVzTW9kZWxcclxuICBSZWxhdGl2ZURhdGVGaWx0ZXJJbmZvID0gJ3JlbGF0aXZlRGF0ZUZpbHRlckluZm8nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyU2VsZWN0TWVhc3VyZSwgaGF2aW5nIHR5cGUgRmlsdGVyU2VsZWN0TWVhc3VyZVByZXNNb2RlbFxyXG4gIEZpbHRlclNlbGVjdE1lYXN1cmUgPSAnZmlsdGVyU2VsZWN0TWVhc3VyZScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMaXN0SXRlbSwgaGF2aW5nIHR5cGUgRmlsdGVyTGlzdEl0ZW1QcmVzTW9kZWxcclxuICBGaWx0ZXJMaXN0SXRlbSA9ICdmaWx0ZXJMaXN0SXRlbScsXHJcblxyXG4gIC8vIERQSV9GaWx0ZXJMaXN0SXRlbXMsIGhhdmluZyB0eXBlIEZpbHRlckxpc3RJdGVtUHJlc01vZGVsW11cclxuICBGaWx0ZXJMaXN0SXRlbXMgPSAnZmlsdGVySXRlbXMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyRmllbGRJbmZvLCBoYXZpbmcgdHlwZSBGaWx0ZXJGaWVsZEluZm9QcmVzTW9kZWxcclxuICBGaWx0ZXJGaWVsZEluZm8gPSAnZmlsdGVyRmllbGRJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlckluZm8sIGhhdmluZyB0eXBlIEZpbHRlckluZm9QcmVzTW9kZWxcclxuICBGaWx0ZXJJbmZvID0gJ2ZpbHRlckluZm8nLFxyXG5cclxuICAvLyBEUElfRmlsdGVyc0luZm8sIGhhdmluZyB0eXBlIEZpbHRlckluZm9yUHJlc01vZGVsW11cclxuICBGaWx0ZXJzSW5mbyA9ICdmaWx0ZXJzSW5mbycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbERvbWFpbiwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxEb21haW5QcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbERvbWFpbiA9ICdjYXRlZ29yaWNhbERvbWFpbicsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVEb21haW4sIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZURvbWFpblByZXNNb2RlbFxyXG4gIFF1YW50aXRhdGl2ZURvbWFpbiA9ICdxdWFudGl0YXRpdmVEb21haW4nLFxyXG5cclxuICAvLyBEUElfVmFsaWRhdGlvblJlc3VsdHMsIGhhdmluZyB0eXBlIFZhbGlkYXRpb25SZXN1bHRzUHJlc01vZGVsXHJcbiAgVmFsaWRhdGlvblJlc3VsdHMgPSAndmFsaWRhdGlvblJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfRG9tYWluTWVtYmVyLCBoYXZpbmcgdHlwZSBEb21haW5NZW1iZXJQcmVzTW9kZWxcclxuICBEb21haW5NZW1iZXIgPSAnZG9tYWluTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbk1lbWJlcnMsIGhhdmluZyB0eXBlIERvbWFpbk1lbWJlclByZXNNb2RlbFtdXHJcbiAgRG9tYWluTWVtYmVycyA9ICdkb21haW5NZW1iZXJzJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyRGlzcGxheSwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJEaXNwbGF5UHJlc01vZGVsXHJcbiAgUXVpY2tGaWx0ZXJEaXNwbGF5ID0gJ3F1aWNrRmlsdGVyRGlzcGxheScsXHJcblxyXG4gIC8vIERQSV9RdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJQcmVzTW9kZWxcclxuICBRdWlja0ZpbHRlciA9ICdxdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9RdWFudGl0YXRpdmVRdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlUXVpY2tGaWx0ZXJQcmVzTW9kZWxcclxuICBRdWFudGl0YXRpdmVRdWlja0ZpbHRlciA9ICdxdWFudGl0YXRpdmVRdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9SZWxhdGl2ZURhdGVRdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUmVsYXRpdmVEYXRlUXVpY2tGaWx0ZXJQcmVzTW9kZWxcclxuICBSZWxhdGl2ZURhdGVRdWlja0ZpbHRlciA9ICdyZWxhdGl2ZURhdGVRdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbFF1aWNrRmlsdGVyLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbFF1aWNrRmlsdGVyUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlciA9ICdjYXRlZ29yaWNhbFF1aWNrRmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoaWNhbFF1aWNrRmlsdGVyLCBoYXZpbmcgdHlwZSBIaWVyYXJjaGljYWxRdWlja0ZpbHRlclByZXNNb2RlbFxyXG4gIEhpZXJhcmNoaWNhbFF1aWNrRmlsdGVyID0gJ2hpZXJhcmNoaWNhbFF1aWNrRmlsdGVyJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpblRhYmxlLCBoYXZpbmcgdHlwZSBEb21haW5UYWJsZVByZXNNb2RlbFxyXG4gIERvbWFpblRhYmxlID0gJ2RvbWFpblRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpblRhYmxlcywgaGF2aW5nIHR5cGUgRG9tYWluVGFibGVQcmVzTW9kZWxbXVxyXG4gIERvbWFpblRhYmxlcyA9ICdkb21haW5UYWJsZXMnLFxyXG5cclxuICAvLyBEUElfRG9tYWluVHVwbGVzLCBoYXZpbmcgdHlwZSBUdXBsZXNcclxuICBEb21haW5UdXBsZXMgPSAnZG9tYWluVHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX1NlYXJjaFR1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVzXHJcbiAgU2VhcmNoVHVwbGVzID0gJ3NlYXJjaFR1cGxlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZFR1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVIYXNoXHJcbiAgU2VsZWN0ZWRUdXBsZXMgPSAnc2VsZWN0ZWRUdXBsZXMnLFxyXG5cclxuICAvLyBEUElfUGVuZGluZ1R1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVIYXNoXHJcbiAgUGVuZGluZ1R1cGxlcyA9ICdwZW5kaW5nVHVwbGVzJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpbiwgaGF2aW5nIHR5cGUgTXVsdGlEb21haW5cclxuICBEb21haW4gPSAnZG9tYWluJyxcclxuXHJcbiAgLy8gRFBJX0RhdGVPcHRpb24sIGhhdmluZyB0eXBlIERhdGVCaW5EaWFsb2dPcHRpb25QcmVzTW9kZWxcclxuICBEYXRlT3B0aW9uID0gJ2RhdGVPcHRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0ZU9wdGlvbnMsIGhhdmluZyB0eXBlIERhdGVCaW5EaWFsb2dPcHRpb25QcmVzTW9kZWxbXVxyXG4gIERhdGVPcHRpb25zID0gJ2RhdGVPcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclJhbmdlQWRkLCBoYXZpbmcgdHlwZSBGaWx0ZXJSYW5nZVByZXNNb2RlbFxyXG4gIEZpbHRlclJhbmdlQWRkID0gJ2ZpbHRlclJhbmdlQWRkJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclJhbmdlUmVtb3ZlLCBoYXZpbmcgdHlwZSBGaWx0ZXJSYW5nZVByZXNNb2RlbFxyXG4gIEZpbHRlclJhbmdlUmVtb3ZlID0gJ2ZpbHRlclJhbmdlUmVtb3ZlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlck9wdGlvbnMsIGhhdmluZyB0eXBlIEZpbHRlck9wdGlvbnNQcmVzTW9kZWxcclxuICBGaWx0ZXJPcHRpb25zID0gJ2ZpbHRlck9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfTGF5ZXIsIGhhdmluZyB0eXBlIExheWVyUHJlc01vZGVsXHJcbiAgTGF5ZXIgPSAnbGF5ZXInLFxyXG5cclxuICAvLyBEUElfTGF5ZXJzLCBoYXZpbmcgdHlwZSBMYXllclByZXNNb2RlbFtdXHJcbiAgTGF5ZXJzID0gJ2xheWVycycsXHJcblxyXG4gIC8vIERQSV9NYXJrc0NhcmRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIE1hcmtzQ2FyZFByZXNNb2RlbFxyXG4gIE1hcmtzQ2FyZFByZXNNb2RlbCA9ICdtYXJrc0NhcmRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVUlJdGVtLCBoYXZpbmcgdHlwZSBVSUl0ZW1QcmVzTW9kZWxcclxuICBVSUl0ZW0gPSAndWlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0VuY29kaW5nVUlJdGVtLCBoYXZpbmcgdHlwZSBFbmNvZGluZ1VJSXRlbVByZXNNb2RlbFxyXG4gIEVuY29kaW5nVUlJdGVtID0gJ2VuY29kaW5nVWlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0VuY29kaW5nVUlJdGVtcywgaGF2aW5nIHR5cGUgRW5jb2RpbmdVSUl0ZW1QcmVzTW9kZWxbXVxyXG4gIEVuY29kaW5nVUlJdGVtcyA9ICdlbmNvZGluZ1VpSXRlbXMnLFxyXG5cclxuICAvLyBEUElfUHJpbVR5cGVVSUl0ZW0sIGhhdmluZyB0eXBlIFByaW1pdGl2ZVR5cGVVSUl0ZW1QcmVzTW9kZWxcclxuICBQcmltVHlwZVVJSXRlbSA9ICdwcmltaXRpdmVUeXBlVWlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX1ByaW1UeXBlVUlJdGVtcywgaGF2aW5nIHR5cGUgUHJpbWl0aXZlVHlwZVVJSXRlbVByZXNNb2RlbFtdXHJcbiAgUHJpbVR5cGVVSUl0ZW1zID0gJ3ByaW1pdGl2ZVR5cGVVaUl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1ByaW1pdGl2ZVR5cGVVSUl0ZW1PcHRpb25zLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVUeXBlVUlJdGVtT3B0aW9uc1ByZXNNb2RlbFxyXG4gIFByaW1pdGl2ZVR5cGVVSUl0ZW1PcHRpb25zID0gJ3ByaW1pdGl2ZVR5cGVVaUl0ZW1PcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xpbmVVSUl0ZW1PcHRpb25zLCBoYXZpbmcgdHlwZSBMaW5lVUlJdGVtT3B0aW9uc1ByZXNNb2RlbFxyXG4gIExpbmVVSUl0ZW1PcHRpb25zID0gJ2xpbmVVaUl0ZW1PcHRpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xpbmVJbnRlcnBvbGF0aW9uTW9kZVVJSXRlbSwgaGF2aW5nIHR5cGUgTGluZUludGVycG9sYXRpb25Nb2RlVUlJdGVtUHJlc01vZGVsXHJcbiAgTGluZUludGVycG9sYXRpb25Nb2RlVUlJdGVtID0gJ2xpbmVJbnRlcnBvbGF0aW9uTW9kZVVpSXRlbScsXHJcblxyXG4gIC8vIERQSV9MaW5lSW50ZXJwb2xhdGlvbk1vZGVVSUl0ZW1TZXQsIGhhdmluZyB0eXBlIExpbmVJbnRlcnBvbGF0aW9uTW9kZVVJSXRlbVByZXNNb2RlbFtdXHJcbiAgTGluZUludGVycG9sYXRpb25Nb2RlVUlJdGVtU2V0ID0gJ2xpbmVJbnRlcnBvbGF0aW9uTW9kZVVpSXRlbVNldCcsXHJcblxyXG4gIC8vIERQSV9MaW5lTWFya2VyUG9zaXRpb25VSUl0ZW0sIGhhdmluZyB0eXBlIExpbmVNYXJrZXJQb3NpdGlvblVJSXRlbVByZXNNb2RlbFxyXG4gIExpbmVNYXJrZXJQb3NpdGlvblVJSXRlbSA9ICdsaW5lTWFya2VyUG9zaXRpb25VaUl0ZW0nLFxyXG5cclxuICAvLyBEUElfTGluZU1hcmtlclBvc2l0aW9uVUlJdGVtU2V0LCBoYXZpbmcgdHlwZSBMaW5lTWFya2VyUG9zaXRpb25VSUl0ZW1QcmVzTW9kZWxbXVxyXG4gIExpbmVNYXJrZXJQb3NpdGlvblVJSXRlbVNldCA9ICdsaW5lTWFya2VyUG9zaXRpb25VaUl0ZW1TZXQnLFxyXG5cclxuICAvLyBEUElfTWFya3NDYXJkRHJvcGRvd25JdGVtLCBoYXZpbmcgdHlwZSBNYXJrc0NhcmREcm9wZG93bkl0ZW1QcmVzTW9kZWxcclxuICBNYXJrc0NhcmREcm9wZG93bkl0ZW0gPSAnbWFya3NDYXJkRHJvcGRvd25JdGVtJyxcclxuXHJcbiAgLy8gRFBJX1Rvb2x0aXBEcm9wZG93bkl0ZW0sIGhhdmluZyB0eXBlIFRvb2x0aXBEcm9wZG93bkl0ZW1QcmVzTW9kZWxcclxuICBUb29sdGlwRHJvcGRvd25JdGVtID0gJ3Rvb2x0aXBEcm9wZG93bkl0ZW0nLFxyXG5cclxuICAvLyBEUElfVGV4dERyb3Bkb3duSXRlbSwgaGF2aW5nIHR5cGUgVGV4dERyb3Bkb3duSXRlbVByZXNNb2RlbFxyXG4gIFRleHREcm9wZG93bkl0ZW0gPSAndGV4dERyb3Bkb3duSXRlbScsXHJcblxyXG4gIC8vIERQSV9Db2xvckRyb3Bkb3duSXRlbSwgaGF2aW5nIHR5cGUgQ29sb3JEcm9wZG93bkl0ZW1QcmVzTW9kZWxcclxuICBDb2xvckRyb3Bkb3duSXRlbSA9ICdjb2xvckRyb3Bkb3duSXRlbScsXHJcblxyXG4gIC8vIERQSV9TaXplU2xpZGVyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaXplU2xpZGVyUHJlc01vZGVsXHJcbiAgU2l6ZVNsaWRlclByZXNNb2RlbCA9ICdzaXplU2xpZGVyUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0luZmxlY3Rpb25Qb2ludCwgaGF2aW5nIHR5cGUgSW5mbGVjdGlvblBvaW50UHJlc01vZGVsXHJcbiAgSW5mbGVjdGlvblBvaW50ID0gJ2luZmxlY3Rpb25Qb2ludCcsXHJcblxyXG4gIC8vIERQSV9JbmZsZWN0aW9uUG9pbnRzLCBoYXZpbmcgdHlwZSBJbmZsZWN0aW9uUG9pbnRQcmVzTW9kZWxbXVxyXG4gIEluZmxlY3Rpb25Qb2ludHMgPSAnaW5mbGVjdGlvblBvaW50cycsXHJcblxyXG4gIC8vIERQSV9Ob3RjaCwgaGF2aW5nIHR5cGUgTm90Y2hQcmVzTW9kZWxcclxuICBOb3RjaCA9ICdub3RjaCcsXHJcblxyXG4gIC8vIERQSV9Ob3RjaGVzLCBoYXZpbmcgdHlwZSBOb3RjaFByZXNNb2RlbFtdXHJcbiAgTm90Y2hlcyA9ICdub3RjaGVzJyxcclxuXHJcbiAgLy8gRFBJX01hcmtTaXplT3B0aW9uc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTWFya1NpemVPcHRpb25zUHJlc01vZGVsXHJcbiAgTWFya1NpemVPcHRpb25zUHJlc01vZGVsID0gJ21hcmtTaXplT3B0aW9uc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Nb2RpZnlNYXJrc0luU2V0LCBoYXZpbmcgdHlwZSBBZGRPclJlbW92ZU1hcmtzXHJcbiAgTW9kaWZ5TWFya3NJblNldCA9ICdhZGRPclJlbW92ZU1hcmtzJyxcclxuXHJcbiAgLy8gRFBJX01hcmtMYWJlbHNTcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBNYXJrTGFiZWxzU3BlY2lmaWNhdGlvblByZXNNb2RlbFxyXG4gIE1hcmtMYWJlbHNTcGVjaWZpY2F0aW9uID0gJ21hcmtMYWJlbHNTcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZSwgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsXHJcbiAgQ29sb3JQYWxldHRlID0gJ2NvbG9yUGFsZXR0ZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZENvbG9yUGFsZXR0ZSwgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsXHJcbiAgU2VsZWN0ZWRDb2xvclBhbGV0dGUgPSAnc2VsZWN0ZWRDb2xvclBhbGV0dGUnLFxyXG5cclxuICAvLyBEUElfQ29sb3JQYWxldHRlcywgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsW11cclxuICBDb2xvclBhbGV0dGVzID0gJ2NvbG9yUGFsZXR0ZXMnLFxyXG5cclxuICAvLyBEUElfQ29sb3JQYWxldHRlR3JvdXAsIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZUdyb3VwUHJlc01vZGVsXHJcbiAgQ29sb3JQYWxldHRlR3JvdXAgPSAnY29sb3JQYWxldHRlR3JvdXAnLFxyXG5cclxuICAvLyBEUElfQ2F0Q29sb3JQYWxldHRlR3JvdXBzLCBoYXZpbmcgdHlwZSBDb2xvclBhbGV0dGVHcm91cFByZXNNb2RlbFtdXHJcbiAgQ2F0Q29sb3JQYWxldHRlR3JvdXBzID0gJ2NhdENvbG9yUGFsZXR0ZUdyb3VwcycsXHJcblxyXG4gIC8vIERQSV9RQ29sb3JQYWxldHRlR3JvdXBzLCBoYXZpbmcgdHlwZSBDb2xvclBhbGV0dGVHcm91cFByZXNNb2RlbFtdXHJcbiAgUUNvbG9yUGFsZXR0ZUdyb3VwcyA9ICdxQ29sb3JQYWxldHRlR3JvdXBzJyxcclxuXHJcbiAgLy8gRFBJX0NvbG9yUGFsZXR0ZUNvbGxlY3Rpb24sIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZUNvbGxlY3Rpb25QcmVzTW9kZWxcclxuICBDb2xvclBhbGV0dGVDb2xsZWN0aW9uID0gJ2NvbG9yUGFsZXR0ZUNvbGxlY3Rpb24nLFxyXG5cclxuICAvLyBEUElfUXVhbnRpdGF0aXZlQ29sb3IsIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZUNvbG9yUHJlc01vZGVsXHJcbiAgUXVhbnRpdGF0aXZlQ29sb3IgPSAncXVhbnRpdGF0aXZlQ29sb3InLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxDb2xvciwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvclByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsQ29sb3IgPSAnY2F0ZWdvcmljYWxDb2xvcicsXHJcblxyXG4gIC8vIERQSV9JdGVtQ29sb3JQYWlyLCBoYXZpbmcgdHlwZSBJdGVtQ29sb3JQYWlyUHJlc01vZGVsXHJcbiAgSXRlbUNvbG9yUGFpciA9ICdpdGVtQ29sb3JQYWlyJyxcclxuXHJcbiAgLy8gRFBJX0l0ZW1Db2xvclBhaXJzLCBoYXZpbmcgdHlwZSBJdGVtQ29sb3JQYWlyUHJlc01vZGVsW11cclxuICBJdGVtQ29sb3JQYWlycyA9ICdpdGVtQ29sb3JQYWlycycsXHJcblxyXG4gIC8vIERQSV9WUUxDb21tYW5kUmVzcG9uc2UsIGhhdmluZyB0eXBlIFZRTENvbW1hbmRSZXNwb25zZVByZXNNb2RlbFxyXG4gIFZRTENvbW1hbmRSZXNwb25zZSA9ICd2cWxDbWRSZXNwb25zZScsXHJcblxyXG4gIC8vIERQSV9MYXlvdXRTdGF0dXMsIGhhdmluZyB0eXBlIExheW91dFN0YXR1c1ByZXNNb2RlbFxyXG4gIExheW91dFN0YXR1cyA9ICdsYXlvdXRTdGF0dXMnLFxyXG5cclxuICAvLyBEUElfVml6U3RhdGUsIGhhdmluZyB0eXBlIFZpelN0YXRlUHJlc01vZGVsXHJcbiAgVml6U3RhdGUgPSAndml6U3RhdGUnLFxyXG5cclxuICAvLyBEUElfVml6U3RhdGVMaXN0LCBoYXZpbmcgdHlwZSBWaXpTdGF0ZVByZXNNb2RlbFtdXHJcbiAgVml6U3RhdGVMaXN0ID0gJ3ZpelN0YXRlTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kUmVzdWx0LCBoYXZpbmcgdHlwZSBDb21tYW5kUmVzdWx0UHJlc01vZGVsXHJcbiAgQ29tbWFuZFJlc3VsdCA9ICdjbWRSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfQ29tbWFuZFJlc3VsdExpc3QsIGhhdmluZyB0eXBlIENvbW1hbmRSZXN1bHRQcmVzTW9kZWxbXVxyXG4gIENvbW1hbmRSZXN1bHRMaXN0ID0gJ2NtZFJlc3VsdExpc3QnLFxyXG5cclxuICAvLyBEUElfVVJMQWN0aW9uLCBoYXZpbmcgdHlwZSBVUkxBY3Rpb25QcmVzTW9kZWxcclxuICBVUkxBY3Rpb24gPSAndXJsQWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1VSTEFjdGlvbkxpc3QsIGhhdmluZyB0eXBlIFVSTEFjdGlvblByZXNNb2RlbFtdXHJcbiAgVVJMQWN0aW9uTGlzdCA9ICd1cmxBY3Rpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0xlZ2FjeU1lbnUsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVQcmVzTW9kZWxcclxuICBMZWdhY3lNZW51ID0gJ2xlZ2FjeU1lbnUnLFxyXG5cclxuICAvLyBEUElfTGVnYWN5TWVudXMsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVQcmVzTW9kZWxbXVxyXG4gIExlZ2FjeU1lbnVzID0gJ2xlZ2FjeU1lbnVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25BdHRlbXB0SW5mbywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsXHJcbiAgQ29ubmVjdGlvbkF0dGVtcHRJbmZvID0gJ2Nvbm5lY3Rpb25BdHRlbXB0SW5mbycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZUNvbm5lY3Rpb25BdHRlbXB0SW5mbyA9ICdkYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VDb25uZWN0aW9uQXR0ZW1wdEluZm9zLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsW11cclxuICBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvcyA9ICdkYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvcycsXHJcblxyXG4gIC8vIERQSV9Db21tYW5kVmFsaWRhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ29tbWFuZFZhbGlkYXRpb25QcmVzTW9kZWxcclxuICBDb21tYW5kVmFsaWRhdGlvblByZXNNb2RlbCA9ICdjb21tYW5kVmFsaWRhdGlvblByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9XYXJuaW5nTWVzc2FnZSwgaGF2aW5nIHR5cGUgV2FybmluZ01lc3NhZ2VQcmVzTW9kZWxcclxuICBXYXJuaW5nTWVzc2FnZSA9ICd3YXJuaW5nTWVzc2FnZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9BcHBsaWNhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQXBwbGljYXRpb25QcmVzTW9kZWxcclxuICBBcHBsaWNhdGlvblByZXNNb2RlbCA9ICdhcHBsaWNhdGlvblByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Ub29sYmFyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUb29sYmFyUHJlc01vZGVsXHJcbiAgVG9vbGJhclByZXNNb2RlbCA9ICd0b29sYmFyUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1dvcmtib29rUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBXb3JrYm9va1ByZXNNb2RlbFxyXG4gIFdvcmtib29rUHJlc01vZGVsID0gJ3dvcmtib29rUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NlcnZlckZvbnRzLCBoYXZpbmcgdHlwZSBTZXJ2ZXJGb250c1ByZXNNb2RlbFxyXG4gIFNlcnZlckZvbnRzID0gJ3NlcnZlckZvbnRzJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFB1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWxcclxuICBQdWJsaXNoRGF0YVNvdXJjZU1ldGFkYXRhUHJlc01vZGVsID0gJ3B1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRQcmVzTW9kZWwgPSAnZGFzaGJvYXJkUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZFNpemVQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhc2hib2FyZFNpemVQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRTaXplUHJlc01vZGVsID0gJ2Rhc2hib2FyZFNpemVQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkU2l6ZVdpdGhWYWxpZGF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRTaXplV2l0aFZhbGlkYXRpb25QcmVzTW9kZWxcclxuICBEYXNoYm9hcmRTaXplV2l0aFZhbGlkYXRpb25QcmVzTW9kZWwgPSAnZGFzaGJvYXJkU2l6ZVdpdGhWYWxpZGF0aW9uUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Rhc2hib2FyZEluZm9QcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhc2hib2FyZEluZm9QcmVzTW9kZWxcclxuICBEYXNoYm9hcmRJbmZvUHJlc01vZGVsID0gJ2Rhc2hib2FyZEluZm9QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBWaXN1YWxQcmVzTW9kZWxcclxuICBWaXN1YWxQcmVzTW9kZWwgPSAndmlzdWFsJyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbFByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFZpc3VhbFByZXNNb2RlbFtdXHJcbiAgVmlzdWFsUHJlc01vZGVscyA9ICd2aXN1YWxzJyxcclxuXHJcbiAgLy8gRFBJX0Ryb3BMaW5lc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRHJvcExpbmVzUHJlc01vZGVsXHJcbiAgRHJvcExpbmVzUHJlc01vZGVsID0gJ2Ryb3BMaW5lc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Ecm9wRmllbGRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERyb3BGaWVsZFByZXNNb2RlbFxyXG4gIERyb3BGaWVsZFByZXNNb2RlbCA9ICdkcm9wRmllbGRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRHJvcEZpZWxkUmVzdWx0UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEcm9wRmllbGRSZXN1bHRQcmVzTW9kZWxcclxuICBEcm9wRmllbGRSZXN1bHRQcmVzTW9kZWwgPSAnZHJvcEZpZWxkUmVzdWx0UHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRBeGlzUmFuZ2UsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXHJcbiAgQ3VycmVudEF4aXNSYW5nZSA9ICdjdXJyZW50QXhpc1JhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0N1cnJlbnRBeGlzUmFuZ2VOb1RpbWUsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXHJcbiAgQ3VycmVudEF4aXNSYW5nZU5vVGltZSA9ICdjdXJyZW50QXhpc1JhbmdlTm9UaW1lJyxcclxuXHJcbiAgLy8gRFBJX0RlZmF1bHRBeGlzUmFuZ2UsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXHJcbiAgRGVmYXVsdEF4aXNSYW5nZSA9ICdkZWZhdWx0QXhpc1JhbmdlJyxcclxuXHJcbiAgLy8gRFBJX05ld0F4aXNSYW5nZSwgaGF2aW5nIHR5cGUgRGF0YVZhbHVlUmFuZ2VQcmVzTW9kZWxcclxuICBOZXdBeGlzUmFuZ2UgPSAnbmV3QXhpc1JhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNPcHRpb25zLCBoYXZpbmcgdHlwZSBBeGlzT3B0aW9uc1ByZXNNb2RlbFxyXG4gIEF4aXNPcHRpb25zID0gJ2F4aXMnLFxyXG5cclxuICAvLyBEUElfQXhpc01ham9yVGlja3MsIGhhdmluZyB0eXBlIFRpY2tNYXJrSW5mb1ByZXNNb2RlbFxyXG4gIEF4aXNNYWpvclRpY2tzID0gJ2F4aXNNYWpvclRpY2tzJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNNaW5vclRpY2tzLCBoYXZpbmcgdHlwZSBUaWNrTWFya0luZm9QcmVzTW9kZWxcclxuICBBeGlzTWlub3JUaWNrcyA9ICdheGlzTWlub3JUaWNrcycsXHJcblxyXG4gIC8vIERQSV9FZGl0QXhpc0RpYWxvZywgaGF2aW5nIHR5cGUgRWRpdEF4aXNEaWFsb2dQcmVzTW9kZWxcclxuICBFZGl0QXhpc0RpYWxvZyA9ICdlZGl0QXhpc0RpYWxvZycsXHJcblxyXG4gIC8vIERQSV9NYXJrTGFiZWxzLCBoYXZpbmcgdHlwZSBTY2VuZVByZXNNb2RlbFxyXG4gIE1hcmtMYWJlbHMgPSAnbWFya0xhYmVscycsXHJcblxyXG4gIC8vIERQSV9TY2VuZSwgaGF2aW5nIHR5cGUgU2NlbmVQcmVzTW9kZWxcclxuICBTY2VuZSA9ICdzY2VuZScsXHJcblxyXG4gIC8vIERQSV9NYXBTZXJ2ZXIsIGhhdmluZyB0eXBlIE1hcFNlcnZlclByZXNNb2RlbFxyXG4gIE1hcFNlcnZlciA9ICdtYXBTZXJ2ZXInLFxyXG5cclxuICAvLyBEUElfVmlzdWFsTGlzdCwgaGF2aW5nIHR5cGUgVmlzdWFsTGlzdFByZXNNb2RlbFxyXG4gIFZpc3VhbExpc3QgPSAndmlzdWFsTGlzdCcsXHJcblxyXG4gIC8vIERQSV9EcmF3Rmlyc3QsIGhhdmluZyB0eXBlIFZpc3VhbExpc3RQcmVzTW9kZWxbXVxyXG4gIERyYXdGaXJzdCA9ICdkcmF3Rmlyc3QnLFxyXG5cclxuICAvLyBEUElfRHJhd0xhc3QsIGhhdmluZyB0eXBlIFZpc3VhbExpc3RQcmVzTW9kZWxbXVxyXG4gIERyYXdMYXN0ID0gJ2RyYXdMYXN0JyxcclxuXHJcbiAgLy8gRFBJX0RyYXdQYW5lLCBoYXZpbmcgdHlwZSBWaXN1YWxMaXN0UHJlc01vZGVsW11cclxuICBEcmF3UGFuZSA9ICdkcmF3UGFuZScsXHJcblxyXG4gIC8vIERQSV9Vc2VyUGFuZUluZm8sIGhhdmluZyB0eXBlIFVzZXJQYW5lSW5mb1ByZXNNb2RlbFxyXG4gIFVzZXJQYW5lSW5mbyA9ICd1c2VyUGFuZUluZm8nLFxyXG5cclxuICAvLyBEUElfQW5hbHl0aWNzUGFuZSwgaGF2aW5nIHR5cGUgQW5hbHl0aWNzUGFuZVByZXNNb2RlbFxyXG4gIEFuYWx5dGljc1BhbmUgPSAnYW5hbHl0aWNzUGFuZScsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3RJdGVtLCBoYXZpbmcgdHlwZSBBbmFseXRpY3NPYmplY3RJdGVtUHJlc01vZGVsXHJcbiAgQW5hbHl0aWNzT2JqZWN0SXRlbSA9ICdhbmFseXRpY3NPYmplY3RJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0FuYWx5dGljc09iamVjdEl0ZW1zLCBoYXZpbmcgdHlwZSBBbmFseXRpY3NPYmplY3RJdGVtUHJlc01vZGVsW11cclxuICBBbmFseXRpY3NPYmplY3RJdGVtcyA9ICdhbmFseXRpY3NPYmplY3RJdGVtcycsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3RHcm91cCwgaGF2aW5nIHR5cGUgQW5hbHl0aWNzT2JqZWN0R3JvdXBQcmVzTW9kZWxcclxuICBBbmFseXRpY3NPYmplY3RHcm91cCA9ICdhbmFseXRpY3NPYmplY3RHcm91cCcsXHJcblxyXG4gIC8vIERQSV9BbmFseXRpY3NPYmplY3RHcm91cHMsIGhhdmluZyB0eXBlIEFuYWx5dGljc09iamVjdEdyb3VwUHJlc01vZGVsW11cclxuICBBbmFseXRpY3NPYmplY3RHcm91cHMgPSAnYW5hbHl0aWNzT2JqZWN0R3JvdXBzJyxcclxuXHJcbiAgLy8gRFBJX0Ryb3Bab25lSXRlbSwgaGF2aW5nIHR5cGUgRHJvcFpvbmVJdGVtUHJlc01vZGVsXHJcbiAgRHJvcFpvbmVJdGVtID0gJ2Ryb3Bab25lSXRlbScsXHJcblxyXG4gIC8vIERQSV9Ecm9wWm9uZUl0ZW1zLCBoYXZpbmcgdHlwZSBEcm9wWm9uZUl0ZW1QcmVzTW9kZWxbXVxyXG4gIERyb3Bab25lSXRlbXMgPSAnZHJvcFpvbmVJdGVtcycsXHJcblxyXG4gIC8vIERQSV9Ecm9wVGFyZ2V0SW5mbywgaGF2aW5nIHR5cGUgRHJvcFRhcmdldEluZm9QcmVzTW9kZWxcclxuICBEcm9wVGFyZ2V0SW5mbyA9ICdkcm9wVGFyZ2V0SW5mbycsXHJcblxyXG4gIC8vIERQSV9QYW5lLCBoYXZpbmcgdHlwZSBQYW5lUHJlc01vZGVsXHJcbiAgUGFuZSA9ICdwYW5lJyxcclxuXHJcbiAgLy8gRFBJX1BhbmVzLCBoYXZpbmcgdHlwZSBQYW5lUHJlc01vZGVsW11cclxuICBQYW5lcyA9ICdwYW5lcycsXHJcblxyXG4gIC8vIERQSV9SYWRpYWxTZWxlY3Rpb25EaXN0YW5jZUluZm8sIGhhdmluZyB0eXBlIFJhZGlhbFNlbGVjdGlvbkRpc3RhbmNlSW5mb1ByZXNNb2RlbFxyXG4gIFJhZGlhbFNlbGVjdGlvbkRpc3RhbmNlSW5mbyA9ICdyYWRpYWxTZWxlY3Rpb25EaXN0YW5jZUluZm8nLFxyXG5cclxuICAvLyBEUElfTWFwU2NhbGVJbmZvLCBoYXZpbmcgdHlwZSBNYXBTY2FsZUluZm9QcmVzTW9kZWxcclxuICBNYXBTY2FsZUluZm8gPSAnbWFwU2NhbGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1JlbmRlck5vZGUsIGhhdmluZyB0eXBlIFJlbmRlck5vZGVQcmVzTW9kZWxcclxuICBSZW5kZXJOb2RlID0gJ3JlbmRlck5vZGUnLFxyXG5cclxuICAvLyBEUElfUmVuZGVyTm9kZXMsIGhhdmluZyB0eXBlIFJlbmRlck5vZGVQcmVzTW9kZWxbXVxyXG4gIFJlbmRlck5vZGVzID0gJ3JlbmRlck5vZGVzJyxcclxuXHJcbiAgLy8gRFBJX1ByZWRpY3Rpb25CYW5kLCBoYXZpbmcgdHlwZSBQcmVkaWN0aW9uQmFuZFByZXNNb2RlbFxyXG4gIFByZWRpY3Rpb25CYW5kID0gJ3ByZWRpY3Rpb25CYW5kJyxcclxuXHJcbiAgLy8gRFBJX1ByZWRpY3Rpb25XaGlza2VyLCBoYXZpbmcgdHlwZSBQcmVkaWN0aW9uV2hpc2tlclByZXNNb2RlbFxyXG4gIFByZWRpY3Rpb25XaGlza2VyID0gJ3ByZWRpY3Rpb25XaGlza2VyJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdHcm91cCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxyXG4gIERyYXdHcm91cCA9ICdkcmF3R3JvdXAnLFxyXG5cclxuICAvLyBEUElfQ2xpcFJlc2V0LCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFxyXG4gIENsaXBSZXNldCA9ICdjbGlwUmVzZXQnLFxyXG5cclxuICAvLyBEUElfRHJhd0l0ZW0sIGhhdmluZyB0eXBlIERyYXdJdGVtUHJlc01vZGVsXHJcbiAgRHJhd0l0ZW0gPSAnZHJhd0l0ZW0nLFxyXG5cclxuICAvLyBEUElfVHJhbnNmb3JtUG9wLCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFxyXG4gIFRyYW5zZm9ybVBvcCA9ICd0cmFuc2Zvcm1Qb3AnLFxyXG5cclxuICAvLyBEUElfVHJhbnNmb3JtUHVzaCwgaGF2aW5nIHR5cGUgRHJhd0l0ZW1QcmVzTW9kZWxcclxuICBUcmFuc2Zvcm1QdXNoID0gJ3RyYW5zZm9ybVB1c2gnLFxyXG5cclxuICAvLyBEUElfRHJhd0l0ZW1zLCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFtdXHJcbiAgRHJhd0l0ZW1zID0gJ2RyYXdJdGVtcycsXHJcblxyXG4gIC8vIERQSV9DbGlwUmVjdCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxyXG4gIENsaXBSZWN0ID0gJ2NsaXBSZWN0JyxcclxuXHJcbiAgLy8gRFBJX0RyYXdFbGxpcHNlLCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXHJcbiAgRHJhd0VsbGlwc2UgPSAnZHJhd0VsbGlwc2UnLFxyXG5cclxuICAvLyBEUElfRHJhd0ZpbGxFbGxpcHNlLCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXHJcbiAgRHJhd0ZpbGxFbGxpcHNlID0gJ2RyYXdGaWxsRWxsaXBzZScsXHJcblxyXG4gIC8vIERQSV9EcmF3RmlsbFBvbHlnb24sIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcclxuICBEcmF3RmlsbFBvbHlnb24gPSAnZHJhd0ZpbGxQb2x5Z29uJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdGaWxsUmVjdCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxyXG4gIERyYXdGaWxsUmVjdCA9ICdkcmF3RmlsbFJlY3QnLFxyXG5cclxuICAvLyBEUElfRHJhd1BvbHlnb24sIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcclxuICBEcmF3UG9seWdvbiA9ICdkcmF3UG9seWdvbicsXHJcblxyXG4gIC8vIERQSV9EcmF3UG9seWxpbmUsIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcclxuICBEcmF3UG9seWxpbmUgPSAnZHJhd1BvbHlsaW5lJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdSZWN0LCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXHJcbiAgRHJhd1JlY3QgPSAnZHJhd1JlY3QnLFxyXG5cclxuICAvLyBEUElfRHJhd0ZpbGxQYXRoLCBoYXZpbmcgdHlwZSBEcmF3UGF0aFByZXNNb2RlbFxyXG4gIERyYXdGaWxsUGF0aCA9ICdkcmF3RmlsbFBhdGgnLFxyXG5cclxuICAvLyBEUElfRHJhd1BhdGgsIGhhdmluZyB0eXBlIERyYXdQYXRoUHJlc01vZGVsXHJcbiAgRHJhd1BhdGggPSAnZHJhd1BhdGgnLFxyXG5cclxuICAvLyBEUElfRHJhd1RleHQsIGhhdmluZyB0eXBlIERyYXdUZXh0UHJlc01vZGVsXHJcbiAgRHJhd1RleHQgPSAnZHJhd1RleHQnLFxyXG5cclxuICAvLyBEUElfRHJhd0ltYWdlLCBoYXZpbmcgdHlwZSBEcmF3SW1hZ2VQcmVzTW9kZWxcclxuICBEcmF3SW1hZ2UgPSAnZHJhd0ltYWdlJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlVGlsZUluZm8sIGhhdmluZyB0eXBlIEltYWdlVGlsZUluZm9QcmVzTW9kZWxcclxuICBJbWFnZVRpbGVJbmZvID0gJ3RpbGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlVGlsZUluZm9zLCBoYXZpbmcgdHlwZSBJbWFnZVRpbGVJbmZvUHJlc01vZGVsW11cclxuICBJbWFnZVRpbGVJbmZvcyA9ICd0aWxlSW5mb3MnLFxyXG5cclxuICAvLyBEUElfRHJhd0ltYWdlVGlsZXMsIGhhdmluZyB0eXBlIERyYXdJbWFnZVRpbGVzUHJlc01vZGVsXHJcbiAgRHJhd0ltYWdlVGlsZXMgPSAnZHJhd0ltYWdlVGlsZXMnLFxyXG5cclxuICAvLyBEUElfRHJhd1BlbiwgaGF2aW5nIHR5cGUgRHJhd1BlblByZXNNb2RlbFxyXG4gIERyYXdQZW4gPSAnZHJhd1BlbicsXHJcblxyXG4gIC8vIERQSV9EcmF3U29saWRCcnVzaCwgaGF2aW5nIHR5cGUgRHJhd1NvbGlkQnJ1c2hQcmVzTW9kZWxcclxuICBEcmF3U29saWRCcnVzaCA9ICdkcmF3U29saWRCcnVzaCcsXHJcblxyXG4gIC8vIERQSV9EcmF3VGV4dFByb3BlcnRpZXMsIGhhdmluZyB0eXBlIERyYXdUZXh0UHJvcGVydGllc1ByZXNNb2RlbFxyXG4gIERyYXdUZXh0UHJvcGVydGllcyA9ICdkcmF3VGV4dFByb3BzJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdHcmFkaWVudEJydXNoLCBoYXZpbmcgdHlwZSBEcmF3R3JhZGllbnRCcnVzaFByZXNNb2RlbFxyXG4gIERyYXdHcmFkaWVudEJydXNoID0gJ2RyYXdHcmFkaWVudEJydXNoJyxcclxuXHJcbiAgLy8gRFBJX0RyYXdUcmFuc2Zvcm0sIGhhdmluZyB0eXBlIERyYXdUcmFuc2Zvcm1QcmVzTW9kZWxcclxuICBEcmF3VHJhbnNmb3JtID0gJ3RyYW5zZm9ybScsXHJcblxyXG4gIC8vIERQSV9EcmF3QW50aWFsaWFzLCBoYXZpbmcgdHlwZSBEcmF3QW50aWFsaWFzUHJlc01vZGVsXHJcbiAgRHJhd0FudGlhbGlhcyA9ICdkcmF3QW50aWFsaWFzJyxcclxuXHJcbiAgLy8gRFBJX0ltYWdlRGljdGlvbmFyeSwgaGF2aW5nIHR5cGUgSW1hZ2VEaWN0aW9uYXJ5UHJlc01vZGVsXHJcbiAgSW1hZ2VEaWN0aW9uYXJ5ID0gJ2ltYWdlRGljdGlvbmFyeScsXHJcblxyXG4gIC8vIERQSV9Db2xvckRpY3Rpb25hcnksIGhhdmluZyB0eXBlIENvbG9yRGljdGlvbmFyeVByZXNNb2RlbFxyXG4gIENvbG9yRGljdGlvbmFyeSA9ICdjb2xvckRpY3Rpb25hcnknLFxyXG5cclxuICAvLyBEUElfTWFya1NoYXBlLCBoYXZpbmcgdHlwZSBNYXJrU2hhcGVQcmVzTW9kZWxcclxuICBNYXJrU2hhcGUgPSAnbWFya1NoYXBlJyxcclxuXHJcbiAgLy8gRFBJX01hcmtTaGFwZUxpc3QsIGhhdmluZyB0eXBlIE1hcmtTaGFwZVByZXNNb2RlbFtdXHJcbiAgTWFya1NoYXBlTGlzdCA9ICdtYXJrU2hhcGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1BhbmVEZXNjcmlwdG9yLCBoYXZpbmcgdHlwZSBQYW5lRGVzY3JpcHRvclByZXNNb2RlbFxyXG4gIFBhbmVEZXNjcmlwdG9yID0gJ3BhbmVEZXNjcmlwdG9yJyxcclxuXHJcbiAgLy8gRFBJX1BETWFya3MsIGhhdmluZyB0eXBlIFBETWFya3NQcmVzTW9kZWxcclxuICBQRE1hcmtzID0gJ3BkTWFya3MnLFxyXG5cclxuICAvLyBEUElfUERNYXJrc01hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBQRE1hcmtzUHJlc01vZGVsKVxyXG4gIFBETWFya3NNYXAgPSAncGRNYXJrc01hcCcsXHJcblxyXG4gIC8vIERQSV9MYWJlbFRleHRUYWJsZSwgaGF2aW5nIHR5cGUgTGFiZWxUZXh0VGFibGVcclxuICBMYWJlbFRleHRUYWJsZSA9ICdsYWJlbFRleHRUYWJsZScsXHJcblxyXG4gIC8vIERQSV9UZXh0VGFibGVIZWxwZXIsIGhhdmluZyB0eXBlIFRleHRUYWJsZUhlbHBlclxyXG4gIFRleHRUYWJsZUhlbHBlciA9ICd0ZXh0VGFibGVIZWxwZXInLFxyXG5cclxuICAvLyBEUElfR2VvbWV0cnlUYWJsZSwgaGF2aW5nIHR5cGUgR2VvbWV0cnlUYWJsZVxyXG4gIEdlb21ldHJ5VGFibGUgPSAnZ2VvbWV0cnlUYWJsZScsXHJcblxyXG4gIC8vIERQSV9QYW5lTWFya3MsIGhhdmluZyB0eXBlIFBhbmVNYXJrc1ByZXNNb2RlbFxyXG4gIFBhbmVNYXJrcyA9ICdwYW5lTWFya3MnLFxyXG5cclxuICAvLyBEUElfUGFuZU1hcmtzTGlzdCwgaGF2aW5nIHR5cGUgUGFuZU1hcmtzUHJlc01vZGVsW11cclxuICBQYW5lTWFya3NMaXN0ID0gJ3BhbmVNYXJrc0xpc3QnLFxyXG5cclxuICAvLyBEUElfQnJ1c2hpbmdTZWxlY3Rpb24sIGhhdmluZyB0eXBlIFNlbGVjdGlvblByZXNNb2RlbFxyXG4gIEJydXNoaW5nU2VsZWN0aW9uID0gJ2JydXNoaW5nJyxcclxuXHJcbiAgLy8gRFBJX1NlbGVjdGlvbiwgaGF2aW5nIHR5cGUgU2VsZWN0aW9uUHJlc01vZGVsXHJcbiAgU2VsZWN0aW9uID0gJ3NlbGVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9CcnVzaGluZ1NlbGVjdGlvbkxpc3QsIGhhdmluZyB0eXBlIFNlbGVjdGlvblByZXNNb2RlbFtdXHJcbiAgQnJ1c2hpbmdTZWxlY3Rpb25MaXN0ID0gJ2JydXNoaW5nU2VsZWN0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25MaXN0LCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFNlbGVjdGlvbkxpc3QgPSAnc2VsZWN0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TaGVsZlNlbGVjdGlvbk1vZGVsLCBoYXZpbmcgdHlwZSBTaGVsZlNlbGVjdGlvblByZXNNb2RlbFxyXG4gIFNoZWxmU2VsZWN0aW9uTW9kZWwgPSAnc2hlbGZTZWxlY3Rpb25Nb2RlbCcsXHJcblxyXG4gIC8vIERQSV9TaGVsZlNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgU2hlbGZTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFNoZWxmU2VsZWN0aW9uTW9kZWxzID0gJ3NoZWxmU2VsZWN0aW9uTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmU2VsZWN0aW9uc01vZGVsLCBoYXZpbmcgdHlwZSBTaGVsZlNlbGVjdGlvbnNQcmVzTW9kZWxcclxuICBTaGVsZlNlbGVjdGlvbnNNb2RlbCA9ICdzaGVsZlNlbGVjdGlvbnNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9EaW1WYWxTZWxlY3Rpb25Nb2RlbCwgaGF2aW5nIHR5cGUgRGltZW5zaW9uVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxcclxuICBEaW1WYWxTZWxlY3Rpb25Nb2RlbCA9ICdkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0RpbVZhbFNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgRGltZW5zaW9uVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIERpbVZhbFNlbGVjdGlvbk1vZGVscyA9ICdkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVscycsXHJcblxyXG4gIC8vIERQSV9IaWVyVmFsU2VsZWN0aW9uTW9kZWwsIGhhdmluZyB0eXBlIEhpZXJhcmNoaWNhbFZhbHVlU2VsZWN0aW9uUHJlc01vZGVsXHJcbiAgSGllclZhbFNlbGVjdGlvbk1vZGVsID0gJ2hpZXJhcmNoaWNhbFZhbHVlU2VsZWN0aW9uTW9kZWwnLFxyXG5cclxuICAvLyBEUElfSGllclZhbFNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgSGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIEhpZXJWYWxTZWxlY3Rpb25Nb2RlbHMgPSAnaGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25Nb2RlbHMnLFxyXG5cclxuICAvLyBEUElfUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVsLCBoYXZpbmcgdHlwZSBRdWFudGF0aXZlUmFuZ2VTZWxlY3Rpb25QcmVzTW9kZWxcclxuICBRdWFudFJhbmdlU2VsZWN0aW9uTW9kZWwgPSAncXVhbnRhdGl2ZVJhbmdlU2VsZWN0aW9uTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgUXVhbnRhdGl2ZVJhbmdlU2VsZWN0aW9uUHJlc01vZGVsW11cclxuICBRdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzID0gJ3F1YW50YXRpdmVSYW5nZVNlbGVjdGlvbk1vZGVscycsXHJcblxyXG4gIC8vIERQSV9RdWFudFZhbHVlU2VsZWN0aW9uTW9kZWwsIGhhdmluZyB0eXBlIFF1YW50YXRpdmVWYWx1ZVNlbGVjdGlvblByZXNNb2RlbFxyXG4gIFF1YW50VmFsdWVTZWxlY3Rpb25Nb2RlbCA9ICdxdWFudGF0aXZlVmFsdWVTZWxlY3Rpb25Nb2RlbCcsXHJcblxyXG4gIC8vIERQSV9RdWFudFZhbHVlU2VsZWN0aW9uTW9kZWxzLCBoYXZpbmcgdHlwZSBRdWFudGF0aXZlVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFF1YW50VmFsdWVTZWxlY3Rpb25Nb2RlbHMgPSAncXVhbnRhdGl2ZVZhbHVlU2VsZWN0aW9uTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0xlZ2VuZFNlbGVjdGlvbkluZm8sIGhhdmluZyB0eXBlIExlZ2VuZFNlbGVjdGlvbkluZm9QcmVzTW9kZWxcclxuICBMZWdlbmRTZWxlY3Rpb25JbmZvID0gJ2xlZ2VuZFNlbGVjdGlvbkluZm8nLFxyXG5cclxuICAvLyBEUElfTm9kZVJlZmVyZW5jZSwgaGF2aW5nIHR5cGUgTm9kZVJlZmVyZW5jZVByZXNNb2RlbFxyXG4gIE5vZGVSZWZlcmVuY2UgPSAnbm9kZVJlZmVyZW5jZScsXHJcblxyXG4gIC8vIERQSV9QYWdlUmVmZXJlbmNlLCBoYXZpbmcgdHlwZSBQYWdlUmVmZXJlbmNlUHJlc01vZGVsXHJcbiAgUGFnZVJlZmVyZW5jZSA9ICdwYWdlUmVmZXJlbmNlJyxcclxuXHJcbiAgLy8gRFBJX09yaWVudGVkTm9kZVJlZmVyZW5jZSwgaGF2aW5nIHR5cGUgT3JpZW50ZWROb2RlUmVmZXJlbmNlUHJlc01vZGVsXHJcbiAgT3JpZW50ZWROb2RlUmVmZXJlbmNlID0gJ29yaWVudGVkTm9kZVJlZmVyZW5jZScsXHJcblxyXG4gIC8vIERQSV9PcmllbnRlZE5vZGVSZWZlcmVuY2VzLCBoYXZpbmcgdHlwZSBPcmllbnRlZE5vZGVSZWZlcmVuY2VQcmVzTW9kZWxbXVxyXG4gIE9yaWVudGVkTm9kZVJlZmVyZW5jZXMgPSAnb3JpZW50ZWROb2RlUmVmZXJlbmNlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3Rpb25EYXRhLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25EYXRhUHJlc01vZGVsXHJcbiAgU2VsZWN0aW9uRGF0YSA9ICdzZWxlY3Rpb25EYXRhJyxcclxuXHJcbiAgLy8gRFBJX0hpZ2hsaWdodGVkRGF0YSwgaGF2aW5nIHR5cGUgSGlnaGxpZ2h0ZWREYXRhUHJlc01vZGVsXHJcbiAgSGlnaGxpZ2h0ZWREYXRhID0gJ2hpZ2hsaWdodGVkRGF0YScsXHJcblxyXG4gIC8vIERQSV9Ob2RlLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsXHJcbiAgTm9kZSA9ICdub2RlJyxcclxuXHJcbiAgLy8gRFBJX05vZGVzLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsW11cclxuICBOb2RlcyA9ICdub2RlcycsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZE5vZGVzLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsW11cclxuICBTZWxlY3RlZE5vZGVzID0gJ3NlbGVjdGVkTm9kZXMnLFxyXG5cclxuICAvLyBEUElfVXNlckFjdGlvbiwgaGF2aW5nIHR5cGUgQWN0aW9uUHJlc01vZGVsXHJcbiAgVXNlckFjdGlvbiA9ICd1c2VyQWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1VzZXJBY3Rpb25zLCBoYXZpbmcgdHlwZSBBY3Rpb25QcmVzTW9kZWxbXVxyXG4gIFVzZXJBY3Rpb25zID0gJ3VzZXJBY3Rpb25zJyxcclxuXHJcbiAgLy8gRFBJX0xpbmtTcGVjLCBoYXZpbmcgdHlwZSBMaW5rU3BlY1ByZXNNb2RlbFxyXG4gIExpbmtTcGVjID0gJ2xpbmtTcGVjJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNwZWNpZmljYXRpb25Nb2RlbCwgaGF2aW5nIHR5cGUgQWN0aW9uU3BlY2lmaWNhdGlvblByZXNNb2RlbFxyXG4gIEFjdGlvblNwZWNpZmljYXRpb25Nb2RlbCA9ICdhY3Rpb25TcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0xpbmtTcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBMaW5rU3BlY2lmaWNhdGlvblByZXNNb2RlbFxyXG4gIExpbmtTcGVjaWZpY2F0aW9uID0gJ2xpbmtTcGVjaWZpY2F0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NjcmlwdERlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBTY3JpcHREZXNjcmlwdGlvblByZXNNb2RlbFxyXG4gIFNjcmlwdERlc2NyaXB0aW9uID0gJ3NjcmlwdERlc2NyaXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0FjdGlvblNvdXJjZSwgaGF2aW5nIHR5cGUgQWN0aW9uU291cmNlUHJlc01vZGVsXHJcbiAgQWN0aW9uU291cmNlID0gJ2FjdGlvblNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9GaWVsZEV4cHJJdGVtLCBoYXZpbmcgdHlwZSBGaWVsZEV4cHJJdGVtUHJlc01vZGVsXHJcbiAgRmllbGRFeHBySXRlbSA9ICdmaWVsZEV4cHJlc3Npb25JdGVtJyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkRXhwclZlY3RvciwgaGF2aW5nIHR5cGUgRmllbGRFeHBySXRlbVByZXNNb2RlbFtdXHJcbiAgRmllbGRFeHByVmVjdG9yID0gJ2ZpZWxkRXhwcmVzc2lvblZlY3RvcicsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25Db21ib0l0ZW0sIGhhdmluZyB0eXBlIEFjdGlvbkNvbWJvSXRlbVByZXNNb2RlbFxyXG4gIEFjdGlvbkNvbWJvSXRlbSA9ICdhY3Rpb25Db21ib0l0ZW0nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uQ29tYm9WZWN0b3IsIGhhdmluZyB0eXBlIEFjdGlvbkNvbWJvSXRlbVByZXNNb2RlbFtdXHJcbiAgQWN0aW9uQ29tYm9WZWN0b3IgPSAnYWN0aW9uQ29tYm9WZWN0b3InLFxyXG5cclxuICAvLyBEUElfQWN0aW9uU291cmNlQ29tYm8sIGhhdmluZyB0eXBlIEFjdGlvblNvdXJjZUNvbWJvUHJlc01vZGVsXHJcbiAgQWN0aW9uU291cmNlQ29tYm8gPSAnYWN0aW9uU291cmNlQ29tYm8nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uRGVzdENvbWJvLCBoYXZpbmcgdHlwZSBBY3Rpb25Db21ib1ByZXNNb2RlbFxyXG4gIEFjdGlvbkRlc3RDb21ibyA9ICdhY3Rpb25EZXN0Q29tYm8nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uRmllbGRMaXN0LCBoYXZpbmcgdHlwZSBBY3Rpb25GaWVsZExpc3RQcmVzTW9kZWxcclxuICBBY3Rpb25GaWVsZExpc3QgPSAnYWN0aW9uRmllbGRMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0VkaXRCcnVzaEFjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdEJydXNoQWN0aW9uUHJlc01vZGVsXHJcbiAgRWRpdEJydXNoQWN0aW9uID0gJ2VkaXRCcnVzaEFjdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVBY3Rpb25Tb3VyY2UsIGhhdmluZyB0eXBlIFVwZGF0ZUFjdGlvblNvdXJjZVByZXNNb2RlbFxyXG4gIFVwZGF0ZUFjdGlvblNvdXJjZSA9ICd1cGRhdGVBY3Rpb25Tb3VyY2UnLFxyXG5cclxuICAvLyBEUElfVXBkYXRlQnJ1c2hBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZUJydXNoQWN0aW9uUHJlc01vZGVsXHJcbiAgVXBkYXRlQnJ1c2hBY3Rpb24gPSAndXBkYXRlQnJ1c2hBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uV2FybmluZ3MsIGhhdmluZyB0eXBlIEFjdGlvbldhcm5pbmdzUHJlc01vZGVsXHJcbiAgQWN0aW9uV2FybmluZ3MgPSAnYWN0aW9uV2FybmluZ3MnLFxyXG5cclxuICAvLyBEUElfRWRpdEh5cGVybGlua0FjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdEh5cGVybGlua0FjdGlvblByZXNNb2RlbFxyXG4gIEVkaXRIeXBlcmxpbmtBY3Rpb24gPSAnZWRpdEh5cGVybGlua0FjdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVIeXBlcmxpbmtBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZUh5cGVybGlua0FjdGlvblByZXNNb2RlbFxyXG4gIFVwZGF0ZUh5cGVybGlua0FjdGlvbiA9ICd1cGRhdGVIeXBlcmxpbmtBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfRWRpdFNoZWV0TGlua0FjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdFNoZWV0TGlua0FjdGlvblByZXNNb2RlbFxyXG4gIEVkaXRTaGVldExpbmtBY3Rpb24gPSAnZWRpdFNoZWV0bGlua0FjdGlvbicsXHJcblxyXG4gIC8vIERQSV9VcGRhdGVTaGVldExpbmtBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZVNoZWV0TGlua0FjdGlvblByZXNNb2RlbFxyXG4gIFVwZGF0ZVNoZWV0TGlua0FjdGlvbiA9ICd1cGRhdGVTaGVldGxpbmtBY3Rpb24nLFxyXG5cclxuICAvLyBEUElfQWN0aW9uSXRlbSwgaGF2aW5nIHR5cGUgQWN0aW9uSXRlbVByZXNNb2RlbFxyXG4gIEFjdGlvbkl0ZW0gPSAnYWN0aW9uSXRlbScsXHJcblxyXG4gIC8vIERQSV9BY3Rpb25JdGVtTGlzdCwgaGF2aW5nIHR5cGUgQWN0aW9uSXRlbVByZXNNb2RlbFtdXHJcbiAgQWN0aW9uSXRlbUxpc3QgPSAnYWN0aW9uSXRlbUxpc3QnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlZ21lbnQsIGhhdmluZyB0eXBlIERhdGFTZWdtZW50UHJlc01vZGVsXHJcbiAgRGF0YVNlZ21lbnQgPSAnZGF0YVNlZ21lbnQnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlZ21lbnRzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFTZWdtZW50UHJlc01vZGVsKVxyXG4gIERhdGFTZWdtZW50cyA9ICdkYXRhU2VnbWVudHMnLFxyXG5cclxuICAvLyBEUElfRGF0YURpY3Rpb25hcnksIGhhdmluZyB0eXBlIERhdGFEaWN0aW9uYXJ5UHJlc01vZGVsXHJcbiAgRGF0YURpY3Rpb25hcnkgPSAnZGF0YURpY3Rpb25hcnknLFxyXG5cclxuICAvLyBEUElfVml6RGF0YSwgaGF2aW5nIHR5cGUgVml6RGF0YVByZXNNb2RlbFxyXG4gIFZpekRhdGEgPSAndml6RGF0YScsXHJcblxyXG4gIC8vIERQSV9WaXpDb2x1bW4sIGhhdmluZyB0eXBlIFZpekNvbHVtblByZXNNb2RlbFxyXG4gIFZpekNvbHVtbiA9ICd2aXpDb2x1bW4nLFxyXG5cclxuICAvLyBEUElfVml6Q29sdW1ucywgaGF2aW5nIHR5cGUgVml6Q29sdW1uUHJlc01vZGVsW11cclxuICBWaXpDb2x1bW5zID0gJ3ZpekNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfVml6RGF0YUNvbHVtbiwgaGF2aW5nIHR5cGUgVml6RGF0YUNvbHVtblByZXNNb2RlbFxyXG4gIFZpekRhdGFDb2x1bW4gPSAndml6RGF0YUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9WaXpEYXRhQ29sdW1ucywgaGF2aW5nIHR5cGUgVml6RGF0YUNvbHVtblByZXNNb2RlbFtdXHJcbiAgVml6RGF0YUNvbHVtbnMgPSAndml6RGF0YUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfVml6UGFuZUNvbHVtbiwgaGF2aW5nIHR5cGUgVml6UGFuZUNvbHVtblByZXNNb2RlbFxyXG4gIFZpelBhbmVDb2x1bW4gPSAndml6UGFuZUNvbHVtbicsXHJcblxyXG4gIC8vIERQSV9WaXpQYW5lQ29sdW1ucywgaGF2aW5nIHR5cGUgVml6UGFuZUNvbHVtblByZXNNb2RlbFtdXHJcbiAgVml6UGFuZUNvbHVtbnMgPSAndml6UGFuZUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUGFuZUNvbHVtbnMsIGhhdmluZyB0eXBlIFBhbmVDb2x1bW5zUHJlc01vZGVsXHJcbiAgUGFuZUNvbHVtbnMgPSAncGFuZUNvbHVtbnMnLFxyXG5cclxuICAvLyBEUElfUGFuZUNvbHVtbnNMaXN0LCBoYXZpbmcgdHlwZSBQYW5lQ29sdW1uc1ByZXNNb2RlbFtdXHJcbiAgUGFuZUNvbHVtbnNMaXN0ID0gJ3BhbmVDb2x1bW5zTGlzdCcsXHJcblxyXG4gIC8vIERQSV9QYW5lQ29sdW1uc0RhdGEsIGhhdmluZyB0eXBlIFBhbmVDb2x1bW5zRGF0YVByZXNNb2RlbFxyXG4gIFBhbmVDb2x1bW5zRGF0YSA9ICdwYW5lQ29sdW1uc0RhdGEnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyQ29udGV4dCwgaGF2aW5nIHR5cGUgRmlsdGVyQ29udGV4dFByZXNNb2RlbFxyXG4gIEZpbHRlckNvbnRleHQgPSAnZmlsdGVyQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9VYmVyVGlwUGFuZURhdGEsIGhhdmluZyB0eXBlIFViZXJUaXBQYW5lRGF0YVByZXNNb2RlbFxyXG4gIFViZXJUaXBQYW5lRGF0YSA9ICd1YmVydGlwUGFuZURhdGEnLFxyXG5cclxuICAvLyBEUElfVWJlclRpcFBhbmVEYXRhcywgaGF2aW5nIHR5cGUgVWJlclRpcFBhbmVEYXRhUHJlc01vZGVsW11cclxuICBVYmVyVGlwUGFuZURhdGFzID0gJ3ViZXJ0aXBQYW5lRGF0YXMnLFxyXG5cclxuICAvLyBEUElfVWJlclRpcERhdGEsIGhhdmluZyB0eXBlIFViZXJUaXBEYXRhUHJlc01vZGVsXHJcbiAgVWJlclRpcERhdGEgPSAndWJlcnRpcERhdGEnLFxyXG5cclxuICAvLyBEUElfUmVmTGluZVRpcCwgaGF2aW5nIHR5cGUgUmVmTGluZVRpcFByZXNNb2RlbFxyXG4gIFJlZkxpbmVUaXAgPSAncmVmTGluZVRpcCcsXHJcblxyXG4gIC8vIERQSV9SZWZMaW5lVGlwcywgaGF2aW5nIHR5cGUgUmVmTGluZVRpcFByZXNNb2RlbFtdXHJcbiAgUmVmTGluZVRpcHMgPSAncmVmTGluZVRpcHMnLFxyXG5cclxuICAvLyBEUElfTnVtZXJpY0JpbiwgaGF2aW5nIHR5cGUgTnVtZXJpY0JpblByZXNNb2RlbFxyXG4gIE51bWVyaWNCaW4gPSAnbnVtZXJpY0JpbicsXHJcblxyXG4gIC8vIERQSV9OdW1lcmljQmluRGlhbG9nLCBoYXZpbmcgdHlwZSBOdW1lcmljQmluRGlhbG9nUHJlc01vZGVsXHJcbiAgTnVtZXJpY0JpbkRpYWxvZyA9ICdudW1lcmljQmluRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX0RvbWFpblJhbmdlLCBoYXZpbmcgdHlwZSBEb21haW5SYW5nZVByZXNNb2RlbFxyXG4gIERvbWFpblJhbmdlID0gJ2RvbWFpblJhbmdlJyxcclxuXHJcbiAgLy8gRFBJX0JpblNpemVJbmZvLCBoYXZpbmcgdHlwZSBCaW5TaXplSW5mb1ByZXNNb2RlbFxyXG4gIEJpblNpemVJbmZvID0gJ2JpblNpemVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0RldGFpbGVkRXJyb3JEaWFsb2csIGhhdmluZyB0eXBlIERldGFpbGVkRXJyb3JQcmVzTW9kZWxcclxuICBEZXRhaWxlZEVycm9yRGlhbG9nID0gJ2RldGFpbGVkRXJyb3JEaWFsb2cnLFxyXG5cclxuICAvLyBEUElfRHJhZ1NvdXJjZVBvc2l0aW9uLCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BQb3NpdGlvblByZXNNb2RlbFxyXG4gIERyYWdTb3VyY2VQb3NpdGlvbiA9ICdzaGVsZkRyYWdTb3VyY2VQb3NpdGlvbicsXHJcblxyXG4gIC8vIERQSV9Ecm9wVGFyZ2V0UG9zaXRpb24sIGhhdmluZyB0eXBlIFNoZWxmRHJvcFBvc2l0aW9uUHJlc01vZGVsXHJcbiAgRHJvcFRhcmdldFBvc2l0aW9uID0gJ3NoZWxmRHJvcFRhcmdldFBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcFBvc2l0aW9uLCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BQb3NpdGlvblByZXNNb2RlbFxyXG4gIFNoZWxmRHJvcFBvc2l0aW9uID0gJ3NoZWxmRHJvcFBvc2l0aW9uJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcFBvc2l0aW9ucywgaGF2aW5nIHR5cGUgU2hlbGZEcm9wUG9zaXRpb25QcmVzTW9kZWxbXVxyXG4gIFNoZWxmRHJvcFBvc2l0aW9ucyA9ICdzaGVsZkRyb3BQb3NpdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2hlbGZEcm9wTW9kZWwsIGhhdmluZyB0eXBlIFNoZWxmRHJvcFByZXNNb2RlbFxyXG4gIFNoZWxmRHJvcE1vZGVsID0gJ3NoZWxmRHJvcE1vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NoZWxmRHJvcE1vZGVscywgaGF2aW5nIHR5cGUgU2hlbGZEcm9wUHJlc01vZGVsW11cclxuICBTaGVsZkRyb3BNb2RlbHMgPSAnc2hlbGZEcm9wTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0RyYWcsIGhhdmluZyB0eXBlIERyYWdQcmVzTW9kZWxcclxuICBEcmFnID0gJ2RyYWcnLFxyXG5cclxuICAvLyBEUElfU2NlbmVFbGVtZW50LCBoYXZpbmcgdHlwZSBTY2VuZUVsZW1lbnRQcmVzTW9kZWxcclxuICBTY2VuZUVsZW1lbnQgPSAnc2NlbmVFbGVtZW50JyxcclxuXHJcbiAgLy8gRFBJX1NjZW5lRWxlbWVudHMsIGhhdmluZyB0eXBlIFNjZW5lRWxlbWVudFByZXNNb2RlbFtdXHJcbiAgU2NlbmVFbGVtZW50cyA9ICdzY2VuZUVsZW1lbnRzJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyVHlwZSwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJUeXBlXHJcbiAgUXVpY2tGaWx0ZXJUeXBlID0gJ3F1aWNrRmlsdGVyVHlwZScsXHJcblxyXG4gIC8vIERQSV9DYXRNb2RlLCBoYXZpbmcgdHlwZSBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZVxyXG4gIENhdE1vZGUgPSAnY2F0ZWdvcmljYWxNb2RlJyxcclxuXHJcbiAgLy8gRFBJX0NhdEN0cmwsIGhhdmluZyB0eXBlIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsXHJcbiAgQ2F0Q3RybCA9ICdjYXRlZ29yaWNhbENvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfUXVhbnRNb2RlLCBoYXZpbmcgdHlwZSBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVcclxuICBRdWFudE1vZGUgPSAncXVhbnRpdGF0aXZlTW9kZScsXHJcblxyXG4gIC8vIERQSV9RdWFudEN0cmwsIGhhdmluZyB0eXBlIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybFxyXG4gIFF1YW50Q3RybCA9ICdxdWFudGl0YXRpdmVDb250cm9sJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVDb21tb24sIGhhdmluZyB0eXBlIFpvbmVDb21tb25QcmVzTW9kZWxcclxuICBab25lQ29tbW9uID0gJ3pvbmVDb21tb24nLFxyXG5cclxuICAvLyBEUElfWm9uZUNvbW1vbkxpc3RJdGVtcywgaGF2aW5nIHR5cGUgWm9uZUNvbW1vblByZXNNb2RlbFtdXHJcbiAgWm9uZUNvbW1vbkxpc3RJdGVtcyA9ICd6b25lQ29tbW9uTGlzdEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1pvbmUsIGhhdmluZyB0eXBlIFpvbmVQcmVzTW9kZWxcclxuICBab25lID0gJ3pvbmUnLFxyXG5cclxuICAvLyBEUElfWm9uZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgWm9uZVByZXNNb2RlbClcclxuICBab25lcyA9ICd6b25lcycsXHJcblxyXG4gIC8vIERQSV9JbWFnZVpvbmUsIGhhdmluZyB0eXBlIEltYWdlWm9uZVByZXNNb2RlbFxyXG4gIEltYWdlWm9uZSA9ICdpbWFnZVpvbmUnLFxyXG5cclxuICAvLyBEUElfV2ViWm9uZSwgaGF2aW5nIHR5cGUgV2ViWm9uZVByZXNNb2RlbFxyXG4gIFdlYlpvbmUgPSAnd2ViWm9uZScsXHJcblxyXG4gIC8vIERQSV9BZGRJblpvbmUsIGhhdmluZyB0eXBlIEFkZEluWm9uZVByZXNNb2RlbFxyXG4gIEFkZEluWm9uZSA9ICdhZGRJblpvbmUnLFxyXG5cclxuICAvLyBEUElfQnV0dG9uWm9uZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQnV0dG9uWm9uZVByZXNNb2RlbFxyXG4gIEJ1dHRvblpvbmVQcmVzTW9kZWwgPSAnYnV0dG9uWm9uZScsXHJcblxyXG4gIC8vIERQSV9CdXR0b25Db25maWdEaWFsb2csIGhhdmluZyB0eXBlIEJ1dHRvbkNvbmZpZ0RpYWxvZ1ByZXNNb2RlbFxyXG4gIEJ1dHRvbkNvbmZpZ0RpYWxvZyA9ICdidXR0b25Db25maWdEaWFsb2cnLFxyXG5cclxuICAvLyBEUElfWm9uZUVkZ2VNb3ZlVHlwZSwgaGF2aW5nIHR5cGUgWm9uZUVkZ2VNb3ZlXHJcbiAgWm9uZUVkZ2VNb3ZlVHlwZSA9ICd6b25lRWRnZU1vdmVUeXBlJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVTaWRlLCBoYXZpbmcgdHlwZSBTaWRlVHlwZVxyXG4gIFpvbmVTaWRlID0gJ3pvbmVTaWRlJyxcclxuXHJcbiAgLy8gRFBJX1NuYXBQb2ludCwgaGF2aW5nIHR5cGUgU25hcFBvaW50UHJlc01vZGVsXHJcbiAgU25hcFBvaW50ID0gJ3NuYXBQb2ludCcsXHJcblxyXG4gIC8vIERQSV9TbmFwUG9pbnRzLCBoYXZpbmcgdHlwZSBTbmFwUG9pbnRQcmVzTW9kZWxbXVxyXG4gIFNuYXBQb2ludHMgPSAnc25hcFBvaW50cycsXHJcblxyXG4gIC8vIERQSV9UYXJnZXRQcmV2aWV3UGFpciwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BUYXJnZXRQcmV2aWV3UGFpclByZXNNb2RlbFxyXG4gIFRhcmdldFByZXZpZXdQYWlyID0gJ3RhcmdldFByZXZpZXdQYWlyJyxcclxuXHJcbiAgLy8gRFBJX1RhcmdldFByZXZpZXdQYWlycywgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BUYXJnZXRQcmV2aWV3UGFpclByZXNNb2RlbFtdXHJcbiAgVGFyZ2V0UHJldmlld1BhaXJzID0gJ3RhcmdldFByZXZpZXdQYWlycycsXHJcblxyXG4gIC8vIERQSV9Db250YWluZXJHdWlkZSwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BDb250YWluZXJHdWlkZVByZXNNb2RlbFxyXG4gIENvbnRhaW5lckd1aWRlID0gJ2NvbnRhaW5lckd1aWRlJyxcclxuXHJcbiAgLy8gRFBJX0NvbnRhaW5lckd1aWRlcywgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BDb250YWluZXJHdWlkZVByZXNNb2RlbFtdXHJcbiAgQ29udGFpbmVyR3VpZGVzID0gJ2NvbnRhaW5lckd1aWRlcycsXHJcblxyXG4gIC8vIERQSV9ab25lQm9yZGVyLCBoYXZpbmcgdHlwZSBEcmFnRHJvcFpvbmVCb3JkZXJQcmVzTW9kZWxcclxuICBab25lQm9yZGVyID0gJ3pvbmVCb3JkZXInLFxyXG5cclxuICAvLyBEUElfWm9uZUJvcmRlcnMsIGhhdmluZyB0eXBlIERyYWdEcm9wWm9uZUJvcmRlclByZXNNb2RlbFtdXHJcbiAgWm9uZUJvcmRlcnMgPSAnem9uZUJvcmRlcnMnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkRHJhZ0Ryb3AsIGhhdmluZyB0eXBlIERhc2hib2FyZERyYWdEcm9wUHJlc01vZGVsXHJcbiAgRGFzaGJvYXJkRHJhZ0Ryb3AgPSAnem9uZURyYWdEcm9wJyxcclxuXHJcbiAgLy8gRFBJX0RyYWdab25lUmVzaXplLCBoYXZpbmcgdHlwZSBEcmFnWm9uZVJlc2l6ZVByZXNNb2RlbFxyXG4gIERyYWdab25lUmVzaXplID0gJ3pvbmVSZXNpemUnLFxyXG5cclxuICAvLyBEUElfRGFzaGJvYXJkVGV4dCwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIERhc2hib2FyZFRleHQgPSAnZGFzaGJvYXJkVGV4dCcsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRUaXRsZSwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIERhc2hib2FyZFRpdGxlID0gJ2Rhc2hib2FyZFRpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1F1aWNrRmlsdGVyVGl0bGUsIGhhdmluZyB0eXBlIFRleHRSZWdpb25QcmVzTW9kZWxcclxuICBRdWlja0ZpbHRlclRpdGxlID0gJ3F1aWNrRmlsdGVyVGl0bGUnLFxyXG5cclxuICAvLyBEUElfVmlzdWFsQ2FwdGlvbiwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIFZpc3VhbENhcHRpb24gPSAndmlzdWFsQ2FwdGlvbicsXHJcblxyXG4gIC8vIERQSV9WaXN1YWxUaXRsZSwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIFZpc3VhbFRpdGxlID0gJ3Zpc3VhbFRpdGxlJyxcclxuXHJcbiAgLy8gRFBJX1pvbmVUaXRsZVJlZ2lvbiwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvblByZXNNb2RlbFxyXG4gIFpvbmVUaXRsZVJlZ2lvbiA9ICd6b25lVGl0bGUnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3RPcHRpb25zLCBoYXZpbmcgdHlwZSBGb3JlY2FzdFByZXNNb2RlbFxyXG4gIEZvcmVjYXN0T3B0aW9ucyA9ICdmb3JlY2FzdE9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRm9yZWNhc3REZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgRm9yZWNhc3REZXNjcmliZVByZXNNb2RlbFxyXG4gIEZvcmVjYXN0RGVzY3JpcHRpb24gPSAnZm9yZWNhc3REZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Xb3JrZ3JvdXBQdWJsaXNoT2JqZWN0LCBoYXZpbmcgdHlwZSBXb3JrZ3JvdXBQdWJsaXNoT2JqZWN0UHJlc01vZGVsXHJcbiAgV29ya2dyb3VwUHVibGlzaE9iamVjdCA9ICdwdWJsaXNoRGF0YVNvdXJjZScsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoUGVybWlzc2lvbnNTdW1tYXJ5LCBoYXZpbmcgdHlwZSBQdWJsaXNoUGVybWlzc2lvbnNTdW1tYXJ5UHJlc01vZGVsXHJcbiAgUHVibGlzaFBlcm1pc3Npb25zU3VtbWFyeSA9ICdwdWJsaXNoUGVybWlzc2lvbnNTdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0NoZWNrTmFtZVJlc3VsdHMsIGhhdmluZyB0eXBlIENoZWNrTmFtZVJlc3VsdHNQcmVzTW9kZWxcclxuICBDaGVja05hbWVSZXN1bHRzID0gJ2NoZWNrTmFtZVJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfVmFsaWRhdGVQdWJsaXNoVmlld3NSZXN1bHQsIGhhdmluZyB0eXBlIFZhbGlkYXRlUHVibGlzaFZpZXdzUmVzdWx0UHJlc01vZGVsXHJcbiAgVmFsaWRhdGVQdWJsaXNoVmlld3NSZXN1bHQgPSAndmFsaWRhdGVQdWJsaXNoVmlld3NSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MsIGhhdmluZyB0eXBlIFB1Ymxpc2hBdXRoZW50aWNhdGlvblNldHRpbmdzUHJlc01vZGVsXHJcbiAgUHVibGlzaEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MgPSAncHVibGlzaEF1dGhlbnRpY2F0aW9uU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfTWFuYWdlRGF0YXNvdXJjZXMsIGhhdmluZyB0eXBlIE1hbmFnZURhdGFzb3VyY2VzUHJlc01vZGVsXHJcbiAgTWFuYWdlRGF0YXNvdXJjZXMgPSAnbWFuYWdlRGF0YXNvdXJjZXMnLFxyXG5cclxuICAvLyBEUElfQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3MsIGhhdmluZyB0eXBlIENyZWRlbnRpYWxzQXV0aFNldHRpbmdzUHJlc01vZGVsXHJcbiAgQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3MgPSAnY3JlZGVudGlhbHNBdXRoU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3MgPSAnY29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25DcmVkZW50aWFsc0F1dGhTZXR0aW5nc0xpc3QsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25DcmVkZW50aWFsc0F1dGhTZXR0aW5nc1ByZXNNb2RlbFtdXHJcbiAgQ29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzTGlzdCA9ICdjb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hEYXRhc291cmNlRnJvbVdvcmtib29rSW5mbywgaGF2aW5nIHR5cGUgUHVibGlzaERhdGFzb3VyY2VGcm9tV29ya2Jvb2tJbmZvUHJlc01vZGVsXHJcbiAgUHVibGlzaERhdGFzb3VyY2VGcm9tV29ya2Jvb2tJbmZvID0gJ3B1Ymxpc2hEYXRhc291cmNlRnJvbVdvcmtib29rSW5mbycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoRGF0YXNvdXJjZXNGcm9tV29ya2Jvb2tJbmZvLCBoYXZpbmcgdHlwZSBQdWJsaXNoRGF0YXNvdXJjZUZyb21Xb3JrYm9va0luZm9QcmVzTW9kZWxbXVxyXG4gIFB1Ymxpc2hEYXRhc291cmNlc0Zyb21Xb3JrYm9va0luZm8gPSAncHVibGlzaERhdGFzb3VyY2VzRnJvbVdvcmtib29rSW5mbycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoU2hlZXQsIGhhdmluZyB0eXBlIFB1Ymxpc2hTaGVldFByZXNNb2RlbFxyXG4gIFB1Ymxpc2hTaGVldCA9ICdwdWJsaXNoU2hlZXQnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaFNoZWV0cywgaGF2aW5nIHR5cGUgUHVibGlzaFNoZWV0UHJlc01vZGVsW11cclxuICBQdWJsaXNoU2hlZXRzID0gJ3B1Ymxpc2hTaGVldHMnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaE9iamVjdFZpZXdzLCBoYXZpbmcgdHlwZSBQdWJsaXNoT2JqZWN0Vmlld3NQcmVzTW9kZWxcclxuICBQdWJsaXNoT2JqZWN0Vmlld3MgPSAncHVibGlzaE9iamVjdFZpZXdzJyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hPYmplY3RQdWJsaXNoU2hlZXRSZXN1bHRzLCBoYXZpbmcgdHlwZSBQdWJsaXNoT2JqZWN0UHVibGlzaFNoZWV0UmVzdWx0c1ByZXNNb2RlbFxyXG4gIFB1Ymxpc2hPYmplY3RQdWJsaXNoU2hlZXRSZXN1bHRzID0gJ3B1Ymxpc2hPYmplY3RQdWJsaXNoU2hlZXRSZXN1bHRzJyxcclxuXHJcbiAgLy8gRFBJX1JlZnJlc2hFeHRyYWN0U2NoZWR1bGluZ1NldHRpbmdzLCBoYXZpbmcgdHlwZSBSZWZyZXNoRXh0cmFjdFNjaGVkdWxpbmdTZXR0aW5nc1ByZXNNb2RlbFxyXG4gIFJlZnJlc2hFeHRyYWN0U2NoZWR1bGluZ1NldHRpbmdzID0gJ3JlZnJlc2hFeHRyYWN0U2NoZWR1bGluZ1NldHRpbmdzJyxcclxuXHJcbiAgLy8gRFBJX1NldFJlZnJlc2hFeHRyYWN0U2NoZWR1bGVSZXN1bHQsIGhhdmluZyB0eXBlIFNldFJlZnJlc2hFeHRyYWN0U2NoZWR1bGVSZXN1bHRQcmVzTW9kZWxcclxuICBTZXRSZWZyZXNoRXh0cmFjdFNjaGVkdWxlUmVzdWx0ID0gJ3NldFJlZnJlc2hFeHRyYWN0U2NoZWR1bGVSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfQ2hlY2tQdWJsaXNoT2JqZWN0TmFtZVdhcm5pbmdzUmVzdWx0cywgaGF2aW5nIHR5cGUgQ2hlY2tQdWJsaXNoT2JqZWN0TmFtZVdhcm5pbmdzUmVzdWx0c1ByZXNNb2RlbFxyXG4gIENoZWNrUHVibGlzaE9iamVjdE5hbWVXYXJuaW5nc1Jlc3VsdHMgPSAnY2hlY2tQdWJsaXNoT2JqZWN0TmFtZVdhcm5pbmdzUmVzdWx0cycsXHJcblxyXG4gIC8vIERQSV9QdWJsaXNoRGF0YXNvdXJjZU9uV29ya2Jvb2tQdWJsaXNoUmVzdWx0cywgaGF2aW5nIHR5cGUgUHVibGlzaERhdGFzb3VyY2VPbldvcmtib29rUHVibGlzaFJlc3VsdHNQcmVzTW9kZWxcclxuICBQdWJsaXNoRGF0YXNvdXJjZU9uV29ya2Jvb2tQdWJsaXNoUmVzdWx0cyA9ICdwdWJsaXNoRGF0YXNvdXJjZU9uV29ya2Jvb2tQdWJsaXNoUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hEYXRhU291cmNlUmVzdWx0LCBoYXZpbmcgdHlwZSBQdWJsaXNoRGF0YVNvdXJjZVJlc3VsdFByZXNNb2RlbFxyXG4gIFB1Ymxpc2hEYXRhU291cmNlUmVzdWx0ID0gJ3B1Ymxpc2hEYXRhU291cmNlUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1B1Ymxpc2hXYXJuaW5nTWVzc2FnZSwgaGF2aW5nIHR5cGUgUHVibGlzaFdhcm5pbmdNZXNzYWdlUHJlc01vZGVsXHJcbiAgUHVibGlzaFdhcm5pbmdNZXNzYWdlID0gJ3B1Ymxpc2hXYXJuaW5nTWVzc2FnZScsXHJcblxyXG4gIC8vIERQSV9NdXN0RG93bmdyYWRlVG9QdWJsaXNoV2FybmluZ01lc3NhZ2VQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFB1Ymxpc2hXYXJuaW5nTWVzc2FnZVByZXNNb2RlbFxyXG4gIE11c3REb3duZ3JhZGVUb1B1Ymxpc2hXYXJuaW5nTWVzc2FnZVByZXNNb2RlbCA9ICdtdXN0RG93bmdyYWRlVG9QdWJsaXNoV2FybmluZ01lc3NhZ2VQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUHVibGlzaFNlbGVjdGVkQXR0cmlidXRlcywgaGF2aW5nIHR5cGUgUHVibGlzaFNlbGVjdGVkQXR0cmlidXRlc1ByZXNNb2RlbFxyXG4gIFB1Ymxpc2hTZWxlY3RlZEF0dHJpYnV0ZXMgPSAncHVibGlzaFNlbGVjdGVkQXR0cmlidXRlcycsXHJcblxyXG4gIC8vIERQSV9BdXRvc2F2ZUZpbGUsIGhhdmluZyB0eXBlIEF1dG9zYXZlRmlsZVByZXNNb2RlbFxyXG4gIEF1dG9zYXZlRmlsZSA9ICdhdXRvc2F2ZUZpbGUnLFxyXG5cclxuICAvLyBEUElfQXV0b3NhdmVGaWxlcywgaGF2aW5nIHR5cGUgQXV0b3NhdmVGaWxlUHJlc01vZGVsW11cclxuICBBdXRvc2F2ZUZpbGVzID0gJ2F1dG9zYXZlRmlsZXMnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25Hcm91cCwgaGF2aW5nIHR5cGUgRnVuY3Rpb25Hcm91cFxyXG4gIEZ1bmN0aW9uR3JvdXAgPSAnZnVuY0dycCcsXHJcblxyXG4gIC8vIERQSV9GdW5jdGlvbkdyb3VwcywgaGF2aW5nIHR5cGUgRnVuY3Rpb25Hcm91cFtdXHJcbiAgRnVuY3Rpb25Hcm91cHMgPSAnZnVuY0dycHMnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25BcmdUeXBlLCBoYXZpbmcgdHlwZSBGdW5jdGlvbkFyZ1R5cGVcclxuICBGdW5jdGlvbkFyZ1R5cGUgPSAnZnVuY0FyZ1R5cGUnLFxyXG5cclxuICAvLyBEUElfRnVuY3Rpb25BcmdUeXBlcywgaGF2aW5nIHR5cGUgRnVuY3Rpb25BcmdUeXBlW11cclxuICBGdW5jdGlvbkFyZ1R5cGVzID0gJ2Z1bmNBcmdUeXBlcycsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGlvblN0eWxlLCBoYXZpbmcgdHlwZSBDYWxjU3R5bGVcclxuICBDYWxjdWxhdGlvblN0eWxlID0gJ2NhbGN1bGF0aW9uU3R5bGUnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRpb24sIGhhdmluZyB0eXBlIENhbGN1bGF0aW9uUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRpb24gPSAnY2FsY3VsYXRpb24nLFxyXG5cclxuICAvLyBEUElfVHlwZUluUGlsbCwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25QcmVzTW9kZWxcclxuICBUeXBlSW5QaWxsID0gJ3R5cGVJblBpbGwnLFxyXG5cclxuICAvLyBEUElfQ2FsY0Vycm9ySW5mbywgaGF2aW5nIHR5cGUgQ2FsY0Vycm9ySW5mb1ByZXNNb2RlbFxyXG4gIENhbGNFcnJvckluZm8gPSAnZXJyb3JJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFcnJvckluZm9zLCBoYXZpbmcgdHlwZSBDYWxjRXJyb3JJbmZvUHJlc01vZGVsW11cclxuICBDYWxjRXJyb3JJbmZvcyA9ICdlcnJvckluZm9MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1YWx0aW9uVmFsaWRhdGlvbiwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25WYWxpZGF0aW9uUHJlc01vZGVsXHJcbiAgQ2FsY3VhbHRpb25WYWxpZGF0aW9uID0gJ2NhbGN1bGF0aW9uVmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uRnVuY3Rpb24sIGhhdmluZyB0eXBlIEV4cHJlc3Npb25GdW5jdGlvblByZXNNb2RlbFxyXG4gIEV4cHJlc3Npb25GdW5jdGlvbiA9ICdleHByZXNzaW9uRnVuYycsXHJcblxyXG4gIC8vIERQSV9FeHByZXNzaW9uRnVuY3Rpb25zLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uRnVuY3Rpb25QcmVzTW9kZWxbXVxyXG4gIEV4cHJlc3Npb25GdW5jdGlvbnMgPSAnZXhwcmVzc2lvbkZ1bmNMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0V4cHJlc3Npb25GdW5jdGlvbnNQTSwgaGF2aW5nIHR5cGUgRXhwcmVzc2lvbkZ1bmN0aW9uc1ByZXNNb2RlbFxyXG4gIEV4cHJlc3Npb25GdW5jdGlvbnNQTSA9ICdleHByZXNzaW9uRnVuY1BtJyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlVG9rZW4sIGhhdmluZyB0eXBlIFN0eWxlVG9rZW5QcmVzTW9kZWxcclxuICBTdHlsZVRva2VuID0gJ3N0eWxlVG9rZW4nLFxyXG5cclxuICAvLyBEUElfU3R5bGVUb2tlbnMsIGhhdmluZyB0eXBlIFN0eWxlVG9rZW5QcmVzTW9kZWxbXVxyXG4gIFN0eWxlVG9rZW5zID0gJ3N0eWxlVG9rZW5MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBDYWxjRWRpdG9yVGV4dFNlbGVjdGlvblByZXNNb2RlbFxyXG4gIENhbGNFZGl0b3JUZXh0U2VsZWN0aW9uID0gJ2NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0F1dG9Db21wbGV0ZUl0ZW1UeXBlLCBoYXZpbmcgdHlwZSBBdXRvQ29tcGxldGVJdGVtVHlwZVxyXG4gIEF1dG9Db21wbGV0ZUl0ZW1UeXBlID0gJ2F1dG9jb21wbGV0ZVR5cGUnLFxyXG5cclxuICAvLyBEUElfQXV0b0NvbXBsZXRlSXRlbSwgaGF2aW5nIHR5cGUgQXV0b0NvbXBsZXRlSXRlbVByZXNNb2RlbFxyXG4gIEF1dG9Db21wbGV0ZUl0ZW0gPSAnYXV0b2NvbXBsZXRlSXRlbScsXHJcblxyXG4gIC8vIERQSV9BdXRvQ29tcGxldGVJdGVtcywgaGF2aW5nIHR5cGUgQXV0b0NvbXBsZXRlSXRlbVByZXNNb2RlbFtdXHJcbiAgQXV0b0NvbXBsZXRlSXRlbXMgPSAnYXV0b2NvbXBsZXRlSXRlbUxpc3QnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRpb25BdXRvQ29tcGxldGVDb250ZXh0TWVudSwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRpb25BdXRvQ29tcGxldGVDb250ZXh0TWVudVByZXNNb2RlbFxyXG4gIENhbGN1bGF0aW9uQXV0b0NvbXBsZXRlQ29udGV4dE1lbnUgPSAnY2FsY3VsYXRpb25BdXRvY29tcGxldGVDb250ZXh0TWVudScsXHJcblxyXG4gIC8vIERQSV9DYWxjQXBwbHlSZXN1bHQsIGhhdmluZyB0eXBlIENhbGNBcHBseVJlc3VsdFxyXG4gIENhbGNBcHBseVJlc3VsdCA9ICdjYWxjdWxhdGlvbkFwcGx5UmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX1JhbXBCb3JkZXJTdHlsZWRCb3gsIGhhdmluZyB0eXBlIFN0eWxlZEJveFByZXNNb2RlbFxyXG4gIFJhbXBCb3JkZXJTdHlsZWRCb3ggPSAncmFtcEJvcmRlclN0eWxlZEJveCcsXHJcblxyXG4gIC8vIERQSV9TdHlsZWRCb3gsIGhhdmluZyB0eXBlIFN0eWxlZEJveFByZXNNb2RlbFxyXG4gIFN0eWxlZEJveCA9ICdzdHlsZWRCb3gnLFxyXG5cclxuICAvLyBEUElfR2xvYmFsU3R5bGVkQm94LCBoYXZpbmcgdHlwZSBTdHlsZWRCb3hQcmVzTW9kZWxcclxuICBHbG9iYWxTdHlsZWRCb3ggPSAnZ2xvYmFsU3R5bGVkQm94JyxcclxuXHJcbiAgLy8gRFBJX1N0eWxlQ29udGV4dCwgaGF2aW5nIHR5cGUgU3R5bGVDb250ZXh0UHJlc01vZGVsXHJcbiAgU3R5bGVDb250ZXh0ID0gJ3N0eWxlQ29udGV4dCcsXHJcblxyXG4gIC8vIERQSV9DdXJyZW50VGV4dFN0eWxlLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcclxuICBDdXJyZW50VGV4dFN0eWxlID0gJ2N1cnJlbnRUZXh0U3R5bGUnLFxyXG5cclxuICAvLyBEUElfTGFiZWxUZXh0U3R5bGUsIGhhdmluZyB0eXBlIFRleHRTdHlsZVByZXNNb2RlbFxyXG4gIExhYmVsVGV4dFN0eWxlID0gJ2xhYmVsVGV4dFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX09yaWdpbmFsVGV4dFN0eWxlLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcclxuICBPcmlnaW5hbFRleHRTdHlsZSA9ICdvcmlnaW5hbFRleHRTdHlsZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZFRleHRTdHlsZU1vZGVsLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcclxuICBTZWxlY3RlZFRleHRTdHlsZU1vZGVsID0gJ3NlbGVjdGVkVGV4dFN0eWxlTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU3dhdGNoVGV4dFN0eWxlTW9kZWwsIGhhdmluZyB0eXBlIFRleHRTdHlsZVByZXNNb2RlbFxyXG4gIFN3YXRjaFRleHRTdHlsZU1vZGVsID0gJ3N3YXRjaFRleHRTdHlsZScsXHJcblxyXG4gIC8vIERQSV9UZXh0U3R5bGVNb2RlbCwgaGF2aW5nIHR5cGUgVGV4dFN0eWxlUHJlc01vZGVsXHJcbiAgVGV4dFN0eWxlTW9kZWwgPSAndGV4dFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX1RpdGxlU3R5bGVNb2RlbCwgaGF2aW5nIHR5cGUgVGV4dFN0eWxlUHJlc01vZGVsXHJcbiAgVGl0bGVTdHlsZU1vZGVsID0gJ3RpdGxlU3R5bGVNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Qcm9wZXJ0eUJhZywgaGF2aW5nIHR5cGUgUHJvcGVydHlCYWdQcmVzTW9kZWxcclxuICBQcm9wZXJ0eUJhZyA9ICdwcm9wQmFnV3JhcHBlcicsXHJcblxyXG4gIC8vIERQSV9QcmVzTW9kZWxNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgUHJvcGVydHlCYWdQcmVzTW9kZWwpXHJcbiAgUHJlc01vZGVsTWFwID0gJ3ByZXNNb2RlbE1hcCcsXHJcblxyXG4gIC8vIERQSV9QcmVzZW50YXRpb25MYXllck5vdGlmaWNhdGlvbnMsIGhhdmluZyB0eXBlIFByZXNNb2RlbE1hcFByZXNNb2RlbFxyXG4gIFByZXNlbnRhdGlvbkxheWVyTm90aWZpY2F0aW9ucyA9ICdwcmVzZW50YXRpb25MYXllck5vdGlmaWNhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfU2Vjb25kYXJ5SW5mbywgaGF2aW5nIHR5cGUgUHJlc01vZGVsTWFwUHJlc01vZGVsXHJcbiAgU2Vjb25kYXJ5SW5mbyA9ICdzZWNvbmRhcnlJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NsaWVudERhc2hib2FyZFVJTWV0cmljLCBoYXZpbmcgdHlwZSBDbGllbnREYXNoYm9hcmRVSU1ldHJpY1ByZXNNb2RlbFxyXG4gIENsaWVudERhc2hib2FyZFVJTWV0cmljID0gJ2NsaWVudERhc2hib2FyZFVpTWV0cmljJyxcclxuXHJcbiAgLy8gRFBJX0NsaWVudERhc2hib2FyZFVJTWV0cmljcywgaGF2aW5nIHR5cGUgQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNQcmVzTW9kZWxbXVxyXG4gIENsaWVudERhc2hib2FyZFVJTWV0cmljcyA9ICdjbGllbnREYXNoYm9hcmRVaU1ldHJpY3MnLFxyXG5cclxuICAvLyBEUElfQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNDb250YWluZXIsIGhhdmluZyB0eXBlIENsaWVudERhc2hib2FyZFVJTWV0cmljQ29udGFpbmVyUHJlc01vZGVsXHJcbiAgQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNDb250YWluZXIgPSAnY2xpZW50RGFzaGJvYXJkVWlNZXRyaWNDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfRXh0U3ZjQ29uZmlnLCBoYXZpbmcgdHlwZSBFeHRTdmNDb25maWdQcmVzTW9kZWxcclxuICBFeHRTdmNDb25maWcgPSAnZXh0U3ZjQ29uZmlnJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5Ym9hcmRTaGVldEl0ZW0sIGhhdmluZyB0eXBlIFN0b3J5Ym9hcmRTaGVldEl0ZW1QcmVzTW9kZWxcclxuICBTdG9yeWJvYXJkU2hlZXRJdGVtID0gJ3N0b3J5Ym9hcmRTaGVldEl0ZW0nLFxyXG5cclxuICAvLyBEUElfU3Rvcnlib2FyZFNoZWV0SXRlbXMsIGhhdmluZyB0eXBlIFN0b3J5Ym9hcmRTaGVldEl0ZW1QcmVzTW9kZWxbXVxyXG4gIFN0b3J5Ym9hcmRTaGVldEl0ZW1zID0gJ3N0b3J5Ym9hcmRTaGVldEl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX1N0b3J5Ym9hcmRTaGVldExpc3QsIGhhdmluZyB0eXBlIFN0b3J5Ym9hcmRTaGVldExpc3RQcmVzTW9kZWxcclxuICBTdG9yeWJvYXJkU2hlZXRMaXN0ID0gJ3N0b3J5Ym9hcmRTaGVldExpc3QnLFxyXG5cclxuICAvLyBEUElfRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbSwgaGF2aW5nIHR5cGUgRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbVByZXNNb2RlbFxyXG4gIEZpdFRvU3RvcnlCb2FyZE9wdGlvbkl0ZW0gPSAnZml0VG9TdG9yeWJvYXJkT3B0aW9uSXRlbScsXHJcblxyXG4gIC8vIERQSV9GaXRUb1N0b3J5Qm9hcmRPcHRpb25JdGVtcywgaGF2aW5nIHR5cGUgRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbVByZXNNb2RlbFtdXHJcbiAgRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbXMgPSAnZml0VG9TdG9yeWJvYXJkT3B0aW9uSXRlbXMnLFxyXG5cclxuICAvLyBEUElfRml0VG9TdG9yeUJvYXJkT3B0aW9uTGlzdCwgaGF2aW5nIHR5cGUgRml0VG9TdG9yeUJvYXJkT3B0aW9uTGlzdFByZXNNb2RlbFxyXG4gIEZpdFRvU3RvcnlCb2FyZE9wdGlvbkxpc3QgPSAnZml0VG9TdG9yeWJvYXJkT3B0aW9uTGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50TmF2SXRlbSwgaGF2aW5nIHR5cGUgU3RvcnlQb2ludE5hdkl0ZW1QcmVzTW9kZWxcclxuICBTdG9yeVBvaW50TmF2SXRlbSA9ICdzdG9yeXBvaW50TmF2SXRlbScsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50TmF2SXRlbXMsIGhhdmluZyB0eXBlIFN0b3J5UG9pbnROYXZJdGVtUHJlc01vZGVsW11cclxuICBTdG9yeVBvaW50TmF2SXRlbXMgPSAnc3Rvcnlwb2ludE5hdkl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZE5hdiwgaGF2aW5nIHR5cGUgRmxpcGJvYXJkTmF2UHJlc01vZGVsXHJcbiAgRmxpcGJvYXJkTmF2ID0gJ2ZsaXBib2FyZE5hdicsXHJcblxyXG4gIC8vIERQSV9TY3JvbGxCYXJTdHlsZSwgaGF2aW5nIHR5cGUgU2Nyb2xsQmFyU3R5bGVQcmVzTW9kZWxcclxuICBTY3JvbGxCYXJTdHlsZSA9ICdzY3JvbGxCYXJTdHlsZScsXHJcblxyXG4gIC8vIERQSV9EYXNoYm9hcmRab25lTGF5b3V0UGFuZSwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkWm9uZUxheW91dFBhbmVQcmVzTW9kZWxcclxuICBEYXNoYm9hcmRab25lTGF5b3V0UGFuZSA9ICdkYXNoYm9hcmRab25lTGF5b3V0UGFuZScsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RlZFN0b3J5UG9pbnRTdHlsZSwgaGF2aW5nIHR5cGUgU3RvcnlQb2ludENhcHRpb25TdHlsZVByZXNNb2RlbFxyXG4gIFNlbGVjdGVkU3RvcnlQb2ludFN0eWxlID0gJ3NlbGVjdGVkU3RvcnlQb2ludFN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX1Vuc2VsZWN0ZWRTdG9yeVBvaW50U3R5bGUsIGhhdmluZyB0eXBlIFN0b3J5UG9pbnRDYXB0aW9uU3R5bGVQcmVzTW9kZWxcclxuICBVbnNlbGVjdGVkU3RvcnlQb2ludFN0eWxlID0gJ3Vuc2VsZWN0ZWRTdG9yeVBvaW50U3R5bGUnLFxyXG5cclxuICAvLyBEUElfRmxpcGJvYXJkTmF2U3R5bGUsIGhhdmluZyB0eXBlIEZsaXBib2FyZE5hdlN0eWxlUHJlc01vZGVsXHJcbiAgRmxpcGJvYXJkTmF2U3R5bGUgPSAnZmxpcGJvYXJkTmF2U3R5bGUnLFxyXG5cclxuICAvLyBEUElfU3RvcnlQb2ludCwgaGF2aW5nIHR5cGUgU3RvcnlQb2ludFByZXNNb2RlbFxyXG4gIFN0b3J5UG9pbnQgPSAnc3RvcnlQb2ludCcsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBvaW50cywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBTdG9yeVBvaW50UHJlc01vZGVsKVxyXG4gIFN0b3J5UG9pbnRzID0gJ3N0b3J5UG9pbnRzJyxcclxuXHJcbiAgLy8gRFBJX0ZsaXBib2FyZCwgaGF2aW5nIHR5cGUgRmxpcGJvYXJkUHJlc01vZGVsXHJcbiAgRmxpcGJvYXJkID0gJ2ZsaXBib2FyZCcsXHJcblxyXG4gIC8vIERQSV9TdG9yeVBhaXIsIGhhdmluZyB0eXBlIFN0b3J5UGFpclByZXNNb2RlbFxyXG4gIFN0b3J5UGFpciA9ICdzdG9yeVBhaXInLFxyXG5cclxuICAvLyBEUElfU3RvcnlQYWlycywgaGF2aW5nIHR5cGUgU3RvcnlQYWlyUHJlc01vZGVsW11cclxuICBTdG9yeVBhaXJzID0gJ3N0b3J5UGFpcnMnLFxyXG5cclxuICAvLyBEUElfU3Rvcnlib2FyZFBNLCBoYXZpbmcgdHlwZSBTdG9yeWJvYXJkUHJlc01vZGVsXHJcbiAgU3Rvcnlib2FyZFBNID0gJ3N0b3J5Ym9hcmRQbScsXHJcblxyXG4gIC8vIERQSV9IaURwaUljb25EaWN0aW9uYXJ5LCBoYXZpbmcgdHlwZSBJbWFnZUNvbGxlY3Rpb25QcmVzTW9kZWxcclxuICBIaURwaUljb25EaWN0aW9uYXJ5ID0gJ2hpRHBpSWNvbkRpY3Rpb25hcnknLFxyXG5cclxuICAvLyBEUElfSWNvbkRpY3Rpb25hcnksIGhhdmluZyB0eXBlIEltYWdlQ29sbGVjdGlvblByZXNNb2RlbFxyXG4gIEljb25EaWN0aW9uYXJ5ID0gJ2ljb25EaWN0aW9uYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0ljb25SZXNvdXJjZURpY3Rpb25hcnksIGhhdmluZyB0eXBlIEltYWdlUmVzb3VyY2VDb2xsZWN0aW9uUHJlc01vZGVsXHJcbiAgSWNvblJlc291cmNlRGljdGlvbmFyeSA9ICdpY29uUmVzRGljdGlvbmFyeScsXHJcblxyXG4gIC8vIERQSV9EYXRhUHJldmlld1dpbmRvd01lc3NhZ2UsIGhhdmluZyB0eXBlIERhdGFQcmV2aWV3V2luZG93TWVzc2FnZVByZXNNb2RlbFxyXG4gIERhdGFQcmV2aWV3V2luZG93TWVzc2FnZSA9ICdkYXRhUHJldmlld1dpbmRvd01lc3NhZ2UnLFxyXG5cclxuICAvLyBEUElfRGF0YVNvdXJjZURhdGEsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VEYXRhUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZURhdGEgPSAnZGF0YVNyY0RhdGEnLFxyXG5cclxuICAvLyBEUElfRGF0YVNvdXJjZVNvcnQsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VTb3J0UHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZVNvcnQgPSAnZGF0YVNyY1NvcnQnLFxyXG5cclxuICAvLyBEUElfQ29sdW1uSW5mbywgaGF2aW5nIHR5cGUgRFNDb2x1bW5JbmZvUHJlc01vZGVsXHJcbiAgQ29sdW1uSW5mbyA9ICdjb2x1bW5JbmZvJyxcclxuXHJcbiAgLy8gRFBJX0NvbHVtbkluZm9zLCBoYXZpbmcgdHlwZSBEU0NvbHVtbkluZm9QcmVzTW9kZWxbXVxyXG4gIENvbHVtbkluZm9zID0gJ2NvbHVtbkluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFGb3JtYXR0ZXIsIGhhdmluZyB0eXBlIERWRm9ybWF0dGVyXHJcbiAgRGF0YUZvcm1hdHRlciA9ICdkYXRhRm9ybWF0dGVyJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgSm9pbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgSm9pbkRlc2NyaXB0aW9uID0gJ2pvaW5EZXNjcmlwdGlvbicsXHJcblxyXG4gIC8vIERQSV9Kb2luRGVzY3JpcHRpb25zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIEpvaW5EZXNjcmlwdGlvblByZXNNb2RlbClcclxuICBKb2luRGVzY3JpcHRpb25zID0gJ2pvaW5EZXNjcmlwdGlvbnMnLFxyXG5cclxuICAvLyBEUElfRmlsZVRhYmxlSW5mbywgaGF2aW5nIHR5cGUgRmlsZVRhYmxlSW5mb1ByZXNNb2RlbFxyXG4gIEZpbGVUYWJsZUluZm8gPSAnZmlsZVRhYmxlSW5mbycsXHJcblxyXG4gIC8vIERQSV9GaWVsZE1hcHBpbmcsIGhhdmluZyB0eXBlIEZpZWxkTWFwcGluZ1ByZXNNb2RlbFxyXG4gIEZpZWxkTWFwcGluZyA9ICdmaWVsZE1hcHBpbmcnLFxyXG5cclxuICAvLyBEUElfRmllbGRNYXBwaW5nRGF0YSwgaGF2aW5nIHR5cGUgRmllbGRNYXBwaW5nRGF0YVByZXNNb2RlbFxyXG4gIEZpZWxkTWFwcGluZ0RhdGEgPSAnZmllbGRNYXBwaW5nRGF0YScsXHJcblxyXG4gIC8vIERQSV9GaWVsZE1hcHBpbmdEYXRhVmVjdG9yLCBoYXZpbmcgdHlwZSBGaWVsZE1hcHBpbmdEYXRhUHJlc01vZGVsW11cclxuICBGaWVsZE1hcHBpbmdEYXRhVmVjdG9yID0gJ2ZpZWxkTWFwcGluZ0RhdGFWZWN0b3InLFxyXG5cclxuICAvLyBEUElfRnJhbWVGaW5kZXIsIGhhdmluZyB0eXBlIEZyYW1lRmluZGVyUHJlc01vZGVsXHJcbiAgRnJhbWVGaW5kZXIgPSAnZnJhbWVGaW5kZXInLFxyXG5cclxuICAvLyBEUElfU2hlZXRMaW5rRmllbGRNYXBwaW5nLCBoYXZpbmcgdHlwZSBTaGVldExpbmtGaWVsZE1hcHBpbmdQcmVzTW9kZWxcclxuICBTaGVldExpbmtGaWVsZE1hcHBpbmcgPSAnc2hlZXRMaW5rRmllbGRNYXBwaW5nJyxcclxuXHJcbiAgLy8gRFBJX1VuaW9uSW5mbywgaGF2aW5nIHR5cGUgVW5pb25JbmZvUHJlc01vZGVsXHJcbiAgVW5pb25JbmZvID0gJ3VuaW9uSW5mbycsXHJcblxyXG4gIC8vIERQSV9VbmlvblRhYmxlSW5mbywgaGF2aW5nIHR5cGUgVW5pb25UYWJsZUluZm9QcmVzTW9kZVxyXG4gIFVuaW9uVGFibGVJbmZvID0gJ3VuaW9uVGFibGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1VuaW9uVGFibGVJbmZvcywgaGF2aW5nIHR5cGUgVW5pb25UYWJsZUluZm9QcmVzTW9kZWxbXVxyXG4gIFVuaW9uVGFibGVJbmZvcyA9ICd1bmlvblRhYmxlSW5mb3MnLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblBCVW5pb25JbmZvLCBoYXZpbmcgdHlwZSBQQlVuaW9uSW5mb1ByZXNNb2RlbFxyXG4gIENvbm5lY3Rpb25QQlVuaW9uSW5mbyA9ICdjb25uZWN0aW9uUGJ1bmlvbkluZm8nLFxyXG5cclxuICAvLyBEUElfQ29ubmVjdGlvblBCVW5pb25JbmZvcywgaGF2aW5nIHR5cGUgUEJVbmlvbkluZm9QcmVzTW9kZWxbXVxyXG4gIENvbm5lY3Rpb25QQlVuaW9uSW5mb3MgPSAnY29ubmVjdGlvblBidW5pb25JbmZvcycsXHJcblxyXG4gIC8vIERQSV9Kb2luQ2xhdXNlLCBoYXZpbmcgdHlwZSBKb2luQ2xhdXNlUHJlc01vZGVsXHJcbiAgSm9pbkNsYXVzZSA9ICdqb2luQ2xhdXNlJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5DbGF1c2VzLCBoYXZpbmcgdHlwZSBKb2luQ2xhdXNlUHJlc01vZGVsW11cclxuICBKb2luQ2xhdXNlcyA9ICdqb2luQ2xhdXNlcycsXHJcblxyXG4gIC8vIERQSV9Kb2luVmFsaWRhdGlvblJlc3VsdCwgaGF2aW5nIHR5cGUgSm9pblZhbGlkYXRpb25SZXN1bHRQcmVzTW9kZWxcclxuICBKb2luVmFsaWRhdGlvblJlc3VsdCA9ICdqb2luVmFsaWRhdGlvblJlc3VsdCcsXHJcblxyXG4gIC8vIERQSV9Kb2luVGFibGVJbmZvLCBoYXZpbmcgdHlwZSBKb2luVGFibGVJbmZvUHJlc01vZGVsXHJcbiAgSm9pblRhYmxlSW5mbyA9ICdqb2luVGFibGVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckluZm8sIGhhdmluZyB0eXBlIEpvaW5UYWJsZUluZm9QcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJJbmZvID0gJ3BhcmFtZXRlckluZm8nLFxyXG5cclxuICAvLyBEUElfSm9pblRhYmxlSW5mb3MsIGhhdmluZyB0eXBlIEpvaW5UYWJsZUluZm9QcmVzTW9kZWxbXVxyXG4gIEpvaW5UYWJsZUluZm9zID0gJ2pvaW5UYWJsZUluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0pvaW5PbkNhbGNJbmZvLCBoYXZpbmcgdHlwZSBKb2luT25DYWxjSW5mb1ByZXNNb2RlbFxyXG4gIEpvaW5PbkNhbGNJbmZvID0gJ2pvaW5PbkNhbGNJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU3VtbWFyeVByZXNNb2RlbFxyXG4gIENvbm5lY3Rpb25TdW1tYXJ5ID0gJ2Nvbm5lY3Rpb25TdW1tYXJ5JyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25TdW1tYXJpZXMsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25TdW1tYXJ5UHJlc01vZGVsW11cclxuICBDb25uZWN0aW9uU3VtbWFyaWVzID0gJ2Nvbm5lY3Rpb25TdW1tYXJpZXMnLFxyXG5cclxuICAvLyBEUElfVG9wTGV2ZWxDb25uZWN0aW9uRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIFRvcExldmVsQ29ubmVjdGlvbkRlc2NyaXB0aW9uUHJlc01vZGVsXHJcbiAgVG9wTGV2ZWxDb25uZWN0aW9uRGVzY3JpcHRpb24gPSAndG9wTGV2ZWxDb25uZWN0aW9uRGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBEUElfRGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlcywgaGF2aW5nIHR5cGUgRGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlc1ByZXNNb2RlbFxyXG4gIERhdGFDb25uZWN0aW9uVGFibGVWaWV3TWVzc2FnZXMgPSAnZGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlcycsXHJcblxyXG4gIC8vIERQSV9UZXh0VHJhbnNmb3JtU2NyaXB0LCBoYXZpbmcgdHlwZSBUZXh0VHJhbnNmb3JtU2NyaXB0UHJlc01vZGVsXHJcbiAgVGV4dFRyYW5zZm9ybVNjcmlwdCA9ICd0ZXh0VHJhbnNmb3JtU2NyaXB0JyxcclxuXHJcbiAgLy8gRFBJX0NhbGVuZGFyRGF0ZU9wdGlvbnMsIGhhdmluZyB0eXBlIENhbGVuZGFyRGF0ZU9wdGlvbnNQcmVzTW9kZWxcclxuICBDYWxlbmRhckRhdGVPcHRpb25zID0gJ2NhbGVuZGFyRGF0ZU9wdGlvbnMnLFxyXG5cclxuICAvLyBEUElfR29Ub1dvcmtzaGVldFRvb2x0aXBQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEdvVG9Xb3Jrc2hlZXRUb29sdGlwUHJlc01vZGVsXHJcbiAgR29Ub1dvcmtzaGVldFRvb2x0aXBQcmVzTW9kZWwgPSAnZ29Ub1dvcmtzaGVldFRvb2x0aXBQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVGFibGVDbGVhbmluZ1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVGFibGVDbGVhbmluZ1ByZXNNb2RlbFxyXG4gIFRhYmxlQ2xlYW5pbmdQcmVzTW9kZWwgPSAndGFibGVDbGVhbmluZ1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QaXZvdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUGl2b3RQcmVzTW9kZWxcclxuICBQaXZvdFByZXNNb2RlbCA9ICdwaXZvdFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QaXZvdFRyZWVJdGVtUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBQaXZvdFRyZWVJdGVtUHJlc01vZGVsXHJcbiAgUGl2b3RUcmVlSXRlbVByZXNNb2RlbCA9ICdwaXZvdFRyZWVJdGVtUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1Bpdm90VHJlZUl0ZW1zLCBoYXZpbmcgdHlwZSBQaXZvdFRyZWVJdGVtUHJlc01vZGVsW11cclxuICBQaXZvdFRyZWVJdGVtcyA9ICdwaXZvdFRyZWVJdGVtc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QaXZvdERpc3BsYXksIGhhdmluZyB0eXBlIFBpdm90RGlzcGxheVByZXNNb2RlbFxyXG4gIFBpdm90RGlzcGxheSA9ICdwaXZvdERpc3BsYXknLFxyXG5cclxuICAvLyBEUElfUGl2b3RUYWcsIGhhdmluZyB0eXBlIE5hbWVDb2x1bW5zUGFpclByZXNNb2RlbFxyXG4gIFBpdm90VGFnID0gJ3Bpdm90VGFnJyxcclxuXHJcbiAgLy8gRFBJX1Bpdm90R3JvdXBzLCBoYXZpbmcgdHlwZSBOYW1lQ29sdW1uc1BhaXJQcmVzTW9kZWxbXVxyXG4gIFBpdm90R3JvdXBzID0gJ3Bpdm90R3JvdXBzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VEcm9wZG93biwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZURyb3Bkb3duUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZURyb3Bkb3duID0gJ2RhdGFTb3VyY2VEcm9wZG93bicsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uRHJvcGRvd24sIGhhdmluZyB0eXBlIENvbm5lY3Rpb25Ecm9wZG93blByZXNNb2RlbFxyXG4gIENvbm5lY3Rpb25Ecm9wZG93biA9ICdjb25uZWN0aW9uRHJvcGRvd24nLFxyXG5cclxuICAvLyBEUElfQWN0aXZpdHlFdmVudCwgaGF2aW5nIHR5cGUgQWN0aXZpdHlFdmVudFByZXNNb2RlbFxyXG4gIEFjdGl2aXR5RXZlbnQgPSAnYWN0aXZpdHlFdmVudCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb24sIGhhdmluZyB0eXBlIFVJQXV0b21hdGlvblByZXNNb2RlbFxyXG4gIFVJQXV0b21hdGlvbiA9ICd1aUF1dG9tYXRpb24nLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSW5kZXgsIGhhdmluZyB0eXBlIFVJQXV0b21hdGlvbkluZGV4UHJlc01vZGVsXHJcbiAgVUlBdXRvbWF0aW9uSW5kZXggPSAndWlBdXRvbWF0aW9uSW5kZXgnLFxyXG5cclxuICAvLyBEUElfVUlBdXRvbWF0aW9uSW5kZXhMaXN0LCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25JbmRleFByZXNNb2RlbFtdXHJcbiAgVUlBdXRvbWF0aW9uSW5kZXhMaXN0ID0gJ3VpQXV0b21hdGlvbkluZGV4TGlzdCcsXHJcblxyXG4gIC8vIERQSV9VSUF1dG9tYXRpb25Db21wb25lbnRJbmZvLCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25Db21wb25lbnRJbmZvUHJlc01vZGVsXHJcbiAgVUlBdXRvbWF0aW9uQ29tcG9uZW50SW5mbyA9ICd1aUF1dG9tYXRpb25Db21wb25lbnRJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1VJQXV0b21hdGlvbkNvbXBvbmVudEluZm9MaXN0LCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25Db21wb25lbnRJbmZvUHJlc01vZGVsW11cclxuICBVSUF1dG9tYXRpb25Db21wb25lbnRJbmZvTGlzdCA9ICd1aUF1dG9tYXRpb25Db21wb25lbnRJbmZvTGlzdCcsXHJcblxyXG4gIC8vIERQSV9HZW9tZXRyeSwgaGF2aW5nIHR5cGUgR2VvbWV0cnlQcmVzTW9kZWxcclxuICBHZW9tZXRyeSA9ICdnZW9tZXRyeScsXHJcblxyXG4gIC8vIERQSV9NdWx0aVBvaW50LCBoYXZpbmcgdHlwZSBNdWx0aVBvaW50UHJlc01vZGVsXHJcbiAgTXVsdGlQb2ludCA9ICdtdWx0aVBvaW50JyxcclxuXHJcbiAgLy8gRFBJX011bHRpTGluZSwgaGF2aW5nIHR5cGUgTXVsdGlMaW5lUHJlc01vZGVsXHJcbiAgTXVsdGlMaW5lID0gJ211bHRpTGluZScsXHJcblxyXG4gIC8vIERQSV9NdWx0aVBvbHlnb24sIGhhdmluZyB0eXBlIE11bHRpUG9seWdvblByZXNNb2RlbFxyXG4gIE11bHRpUG9seWdvbiA9ICdtdWx0aVBvbHlnb24nLFxyXG5cclxuICAvLyBEUElfUG9seWdvbiwgaGF2aW5nIHR5cGUgUG9seWdvblByZXNNb2RlbFxyXG4gIFBvbHlnb24gPSAncG9seWdvbicsXHJcblxyXG4gIC8vIERQSV9Qb2x5Z29uTGlzdCwgaGF2aW5nIHR5cGUgUG9seWdvblByZXNNb2RlbFtdXHJcbiAgUG9seWdvbkxpc3QgPSAncG9seWdvbkxpc3QnLFxyXG5cclxuICAvLyBEUElfTGluZSwgaGF2aW5nIHR5cGUgTGluZVByZXNNb2RlbFxyXG4gIExpbmUgPSAnbGluZScsXHJcblxyXG4gIC8vIERQSV9MaW5lTGlzdCwgaGF2aW5nIHR5cGUgTGluZVByZXNNb2RlbFtdXHJcbiAgTGluZUxpc3QgPSAnbGluZUxpc3QnLFxyXG5cclxuICAvLyBEUElfVGFiYmVkQXV0aGVudGljYXRpb24sIGhhdmluZyB0eXBlIFRhYmJlZEF1dGhlbnRpY2F0aW9uUHJlc01vZGVsXHJcbiAgVGFiYmVkQXV0aGVudGljYXRpb24gPSAndGFiYmVkQXV0aGVudGljYXRpb24nLFxyXG5cclxuICAvLyBEUElfVGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvLCBoYXZpbmcgdHlwZSBUYWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm9QcmVzTW9kZWxcclxuICBUYWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm8gPSAndGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1RhYmJlZEF1dGhlbnRpY2F0aW9uVGFiSW5mb3MsIGhhdmluZyB0eXBlIFRhYmJlZEF1dGhlbnRpY2F0aW9uVGFiSW5mb1ByZXNNb2RlbFtdXHJcbiAgVGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvcyA9ICd0YWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm9zJyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGUsIGhhdmluZyB0eXBlIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVQcmVzTW9kZWxcclxuICBHZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGUnLFxyXG5cclxuICAvLyBEUElfR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZUxpc3QsIGhhdmluZyB0eXBlIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVQcmVzTW9kZWxbXVxyXG4gIEdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVMaXN0ID0gJ2dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hSZXN1bHRzLCBoYXZpbmcgdHlwZSBHZW9ncmFwaGljU2VhcmNoUHJlc01vZGVsXHJcbiAgR2VvZ3JhcGhpY1NlYXJjaFJlc3VsdHMgPSAnZ2VvZ3JhcGhpY1NlYXJjaFJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfUGFyYW1JbmZvLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJJbmZvUHJlc01vZGVsXHJcbiAgUGFyYW1JbmZvID0gJ3BhcmFtSW5mbycsXHJcblxyXG4gIC8vIERQSV9QYXJhbUluZm9zLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJJbmZvUHJlc01vZGVsW11cclxuICBQYXJhbUluZm9zID0gJ3BhcmFtSW5mb3MnLFxyXG5cclxuICAvLyBEUElfUGFyYW1OYW1lc3BhY2VJbmZvLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJOYW1lc3BhY2VJbmZvSW5mb1ByZXNNb2RlbFxyXG4gIFBhcmFtTmFtZXNwYWNlSW5mbyA9ICdwYXJhbU5hbWVzcGFjZUluZm8nLFxyXG5cclxuICAvLyBEUElfUGFyYW1OYW1lc3BhY2VJbmZvcywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyTmFtZXNwYWNlSW5mb1ByZXNNb2RlbFtdXHJcbiAgUGFyYW1OYW1lc3BhY2VJbmZvcyA9ICdwYXJhbU5hbWVzcGFjZUluZm9zJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtUmVnaXN0cnlJbmZvLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJSZWdpc3RyeUluZm9QcmVzTW9kZWxcclxuICBQYXJhbVJlZ2lzdHJ5SW5mbyA9ICdwYXJhbVJlZ2lzdHJ5SW5mbycsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlUHJvcGVydGllcywgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZVByb3BlcnRpZXNQcmVzTW9kZWxcclxuICBEYXRhU291cmNlUHJvcGVydGllcyA9ICdjb25uZWN0aW9uUHJvcGVydGllcycsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblR5cGVQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uVHlwZVByZXNNb2RlbCA9ICdjb25uZWN0aW9uVHlwZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Db25uZWN0aW9uVHlwZXMsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UeXBlUHJlc01vZGVsW11cclxuICBDb25uZWN0aW9uVHlwZXMgPSAnY29ubmVjdGlvblR5cGVzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3Rpb25UeXBlR3JvdXBQcmVzTW9kZWwsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UeXBlR3JvdXBQcmVzTW9kZWxcclxuICBDb25uZWN0aW9uVHlwZUdyb3VwUHJlc01vZGVsID0gJ2Nvbm5lY3Rpb25UeXBlR3JvdXBQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU2F2ZWREYXRhU291cmNlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTYXZlZERhdGFTb3VyY2VQcmVzTW9kZWxcclxuICBTYXZlZERhdGFTb3VyY2VQcmVzTW9kZWwgPSAnc2F2ZWREYXRhc291cmNlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NhdmVkRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIFNhdmVkRGF0YVNvdXJjZVByZXNNb2RlbFtdXHJcbiAgU2F2ZWREYXRhU291cmNlcyA9ICdzYXZlZERhdGFzb3VyY2VzJyxcclxuXHJcbiAgLy8gRFBJX1NhdmVkRGF0YVNvdXJjZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFNhdmVkRGF0YVNvdXJjZXNQcmVzTW9kZWxcclxuICBTYXZlZERhdGFTb3VyY2VzUHJlc01vZGVsID0gJ3NhdmVkRGF0YXNvdXJjZXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfT3BlblBhbmVJdGVtUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBPcGVuUGFuZUl0ZW1QcmVzTW9kZWxcclxuICBPcGVuUGFuZUl0ZW1QcmVzTW9kZWwgPSAnb3BlblBhbmVJdGVtUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX09wZW5QYW5lSXRlbXMsIGhhdmluZyB0eXBlIE9wZW5QYW5lSXRlbVByZXNNb2RlbFtdXHJcbiAgT3BlblBhbmVJdGVtcyA9ICdvcGVuUGFuZUl0ZW1zJyxcclxuXHJcbiAgLy8gRFBJX09wZW5QYW5lSXRlbXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIE9wZW5QYW5lSXRlbXNQcmVzTW9kZWxcclxuICBPcGVuUGFuZUl0ZW1zUHJlc01vZGVsID0gJ29wZW5QYW5lSXRlbXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVWYWx1ZSwgaGF2aW5nIHR5cGUgVmFyaWFibGVWYWx1ZVByZXNNb2RlbFxyXG4gIFZhcmlhYmxlVmFsdWUgPSAndmFyaWFibGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9WYXJpYWJsZVZhbHVlcywgaGF2aW5nIHR5cGUgVmFyaWFibGVWYWx1ZVByZXNNb2RlbFtdXHJcbiAgVmFyaWFibGVWYWx1ZXMgPSAndmFyaWFibGVWYWx1ZXMnLFxyXG5cclxuICAvLyBEUElfU2VydmVyVmFyaWFibGVWYWx1ZSwgaGF2aW5nIHR5cGUgU2VydmVyVmFyaWFibGVWYWx1ZVByZXNNb2RlbFxyXG4gIFNlcnZlclZhcmlhYmxlVmFsdWUgPSAnc2VydmVyVmFyaWFibGVWYWx1ZScsXHJcblxyXG4gIC8vIERQSV9FZGl0YWJsZVZhcmlhYmxlVmFsdWUsIGhhdmluZyB0eXBlIEVkaXRhYmxlVmFyaWFibGVWYWx1ZVByZXNNb2RlbFxyXG4gIEVkaXRhYmxlVmFyaWFibGVWYWx1ZSA9ICdlZGl0YWJsZVZhcmlhYmxlVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2VydmVyVmFyaWFibGVNZXRhZGF0YSwgaGF2aW5nIHR5cGUgU2VydmVyVmFyaWFibGVNZXRhZGF0YVByZXNNb2RlbFxyXG4gIFNlcnZlclZhcmlhYmxlTWV0YWRhdGEgPSAnc2VydmVyVmFyaWFibGVNZXRhZGF0YScsXHJcblxyXG4gIC8vIERQSV9Qcm9tcHRWYXJpYWJsZSwgaGF2aW5nIHR5cGUgUHJvbXB0VmFyaWFibGVQcmVzTW9kZWxcclxuICBQcm9tcHRWYXJpYWJsZSA9ICdwcm9tcHRWYXJpYWJsZScsXHJcblxyXG4gIC8vIERQSV9Qcm9tcHRWYXJpYWJsZXMsIGhhdmluZyB0eXBlIFByb21wdFZhcmlhYmxlUHJlc01vZGVsW11cclxuICBQcm9tcHRWYXJpYWJsZXMgPSAncHJvbXB0VmFyaWFibGVzJyxcclxuXHJcbiAgLy8gRFBJX1ZhcmlhYmxlUHJvbXB0RGlhbG9nLCBoYXZpbmcgdHlwZSBWYXJpYWJsZVByb21wdERpYWxvZ1ByZXNNb2RlbFxyXG4gIFZhcmlhYmxlUHJvbXB0RGlhbG9nID0gJ3ZhcmlhYmxlUHJvbXB0RGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX1ZhcmlhYmxlVmFsdWVPcGVyYXRpb24sIGhhdmluZyB0eXBlIFZhcmlhYmxlVmFsdWVPcGVyYXRpb25QcmVzTW9kZWxcclxuICBWYXJpYWJsZVZhbHVlT3BlcmF0aW9uID0gJ3ZhcmlhYmxlVmFsdWVPcGVyYXRpb24nLFxyXG5cclxuICAvLyBEUElfVmFyaWFibGVWYWx1ZU9wZXJhdGlvbnMsIGhhdmluZyB0eXBlIFZhcmlhYmxlVmFsdWVPcGVyYXRpb25QcmVzTW9kZWxbXVxyXG4gIFZhcmlhYmxlVmFsdWVPcGVyYXRpb25zID0gJ3ZhcmlhYmxlVmFsdWVPcGVyYXRpb25zJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlT3B0aW9uc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVGFibGVPcHRpb25zUHJlc01vZGVsXHJcbiAgVGFibGVPcHRpb25zUHJlc01vZGVsID0gJ3RhYmxlT3B0aW9uc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DbGllbnRJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBDbGllbnRJbmZvUHJlc01vZGVsXHJcbiAgQ2xpZW50SW5mb1ByZXNNb2RlbCA9ICdjbGllbnRJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlYXVGaWxlSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVGFibGVhdUZpbGVJbmZvUHJlc01vZGVsXHJcbiAgVGFibGVhdUZpbGVJbmZvUHJlc01vZGVsID0gJ3RhYmxlYXVGaWxlSW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9EZWJ1Z2dpbmdJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEZWJ1Z2dpbmdJbmZvUHJlc01vZGVsXHJcbiAgRGVidWdnaW5nSW5mb1ByZXNNb2RlbCA9ICdkZWJ1Z2dpbmdJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1J1bm5pbmdUaHJlYWRJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBSdW5uaW5nVGhyZWFkSW5mb1ByZXNNb2RlbFxyXG4gIFJ1bm5pbmdUaHJlYWRJbmZvUHJlc01vZGVsID0gJ3J1bm5pbmdUaHJlYWRJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0Fib3V0RGlhbG9nSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQWJvdXREaWFsb2dJbmZvUHJlc01vZGVsXHJcbiAgQWJvdXREaWFsb2dJbmZvUHJlc01vZGVsID0gJ2Fib3V0RGlhbG9nSW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9IeWJyaWRVSVNob3djYXNlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBIeWJyaWRVSVNob3djYXNlUHJlc01vZGVsXHJcbiAgSHlicmlkVUlTaG93Y2FzZVByZXNNb2RlbCA9ICdoeWJyaWRVaVNob3djYXNlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX01lbnVDb25maWd1cmF0aW9uLCBoYXZpbmcgdHlwZSBNZW51Q29uZmlndXJhdGlvblByZXNNb2RlbFxyXG4gIE1lbnVDb25maWd1cmF0aW9uID0gJ21lbnVDb25maWd1cmF0aW9uJyxcclxuXHJcbiAgLy8gRFBJX01lbnVJdGVtLCBoYXZpbmcgdHlwZSBNZW51SXRlbVByZXNNb2RlbFxyXG4gIE1lbnVJdGVtID0gJ21lbnVJdGVtJyxcclxuXHJcbiAgLy8gRFBJX01lbnVJdGVtTW9kZWxzLCBoYXZpbmcgdHlwZSBNZW51SXRlbVByZXNNb2RlbFtdXHJcbiAgTWVudUl0ZW1Nb2RlbHMgPSAnbWVudUl0ZW1Nb2RlbHMnLFxyXG5cclxuICAvLyBEUElfRGVmYXVsdFRleHRGb3JtYXQsIGhhdmluZyB0eXBlIERlZmF1bHRUZXh0Rm9ybWF0UHJlc01vZGVsXHJcbiAgRGVmYXVsdFRleHRGb3JtYXQgPSAnZGVmYXVsdFRleHRGb3JtYXQnLFxyXG5cclxuICAvLyBEUElfTWFwQm94U2VydmVySW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTWFwQm94U2VydmVySW5mb1ByZXNNb2RlbFxyXG4gIE1hcEJveFNlcnZlckluZm9QcmVzTW9kZWwgPSAnbWFwYm94U2VydmVySW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9XTVNTZXJ2ZXJJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBXTVNTZXJ2ZXJJbmZvUHJlc01vZGVsXHJcbiAgV01TU2VydmVySW5mb1ByZXNNb2RlbCA9ICd3bXNTZXJ2ZXJJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX01hcFNvdXJjZUNvbmZsaWN0UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBNYXBTb3VyY2VDb25mbGljdFByZXNNb2RlbFxyXG4gIE1hcFNvdXJjZUNvbmZsaWN0UHJlc01vZGVsID0gJ21hcFNvdXJjZUNvbmZsaWN0UHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0VudW1lcmF0ZWRTZXREaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEVudW1lcmF0ZWRTZXREaWFsb2dQcmVzTW9kZWxcclxuICBFbnVtZXJhdGVkU2V0RGlhbG9nUHJlc01vZGVsID0gJ2VudW1lcmF0ZWRTZXREaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRWRpdEFsaWFzZXNEaWFsb2csIGhhdmluZyB0eXBlIEVkaXRBbGlhc2VzRGlhbG9nUHJlc01vZGVsXHJcbiAgRWRpdEFsaWFzZXNEaWFsb2cgPSAnZWRpdEFsaWFzZXNEaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWxpYXNlc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQWxpYXNlc1ByZXNNb2RlbFxyXG4gIEFsaWFzZXNQcmVzTW9kZWwgPSAnYWxpYXNlc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DbGVhckFsaWFzZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFsaWFzZXNQcmVzTW9kZWxcclxuICBDbGVhckFsaWFzZXNQcmVzTW9kZWwgPSAnY2xlYXJBbGlhc2VzUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX05ld0FsaWFzZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIE5ld0FsaWFzZXNQcmVzTW9kZWxcclxuICBOZXdBbGlhc2VzUHJlc01vZGVsID0gJ25ld0FsaWFzZXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWxpYXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFsaWFzUHJlc01vZGVsXHJcbiAgQWxpYXNQcmVzTW9kZWwgPSAnYWxpYXNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWxpYXNJdGVtLCBoYXZpbmcgdHlwZSBBbGlhc0l0ZW1QcmVzTW9kZWxcclxuICBBbGlhc0l0ZW0gPSAnYWxpYXNJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0R1cGxpY2F0ZUFsaWFzSXRlbSwgaGF2aW5nIHR5cGUgQWxpYXNJdGVtUHJlc01vZGVsXHJcbiAgRHVwbGljYXRlQWxpYXNJdGVtID0gJ2R1cGxpY2F0ZUFsaWFzSXRlbScsXHJcblxyXG4gIC8vIERQSV9BbGlhc0xpc3QsIGhhdmluZyB0eXBlIEFsaWFzSXRlbVByZXNNb2RlbFtdXHJcbiAgQWxpYXNMaXN0ID0gJ2FsaWFzTGlzdCcsXHJcblxyXG4gIC8vIERQSV9BbGlhc1Jlc3VsdEl0ZW0sIGhhdmluZyB0eXBlIEFsaWFzUmVzdWx0SXRlbVByZXNNb2RlbFxyXG4gIEFsaWFzUmVzdWx0SXRlbSA9ICdhbGlhc1Jlc3VsdEl0ZW0nLFxyXG5cclxuICAvLyBEUElfQWxpYXNSZXN1bHRMaXN0LCBoYXZpbmcgdHlwZSBBbGlhc1Jlc3VsdEl0ZW1QcmVzTW9kZWxbXVxyXG4gIEFsaWFzUmVzdWx0TGlzdCA9ICdhbGlhc1Jlc3VsdExpc3QnLFxyXG5cclxuICAvLyBEUElfQWxpYXNSZXN1bHRzLCBoYXZpbmcgdHlwZSBBbGlhc1Jlc3VsdHNQcmVzTW9kZWxcclxuICBBbGlhc1Jlc3VsdHMgPSAnYWxpYXNSZXN1bHRzJyxcclxuXHJcbiAgLy8gRFBJX0VkaXRTZXREaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEVkaXRTZXREaWFsb2dQcmVzTW9kZWxcclxuICBFZGl0U2V0RGlhbG9nUHJlc01vZGVsID0gJ2VkaXRTZXREaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ29uZmlybWF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBDb25maXJtYXRpb25QcmVzTW9kZWxcclxuICBDb25maXJtYXRpb25QcmVzTW9kZWwgPSAnY29uZmlybWF0aW9uUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX05vdGlmaWNhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTm90aWZpY2F0aW9uUHJlc01vZGVsXHJcbiAgTm90aWZpY2F0aW9uUHJlc01vZGVsID0gJ25vdGlmaWNhdGlvblByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9SZXRhcmdldERhdGFTb3VyY2VEaWFsb2dQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFJldGFyZ2V0RGF0YVNvdXJjZURpYWxvZ1ByZXNNb2RlbFxyXG4gIFJldGFyZ2V0RGF0YVNvdXJjZURpYWxvZ1ByZXNNb2RlbCA9ICdyZXRhcmdldERhdGFzb3VyY2VEaWFsb2dQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfU2hhcmVkRmlsdGVyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaGFyZWRGaWx0ZXJQcmVzTW9kZWxcclxuICBTaGFyZWRGaWx0ZXJQcmVzTW9kZWwgPSAnc2hhcmVkRmlsdGVyUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NoYXJlZEZpbHRlcldvcmtzaGVldEluZm8sIGhhdmluZyB0eXBlIFNoYXJlZEZpbHRlcldvcmtzaGVldEluZm9QcmVzTW9kZWxcclxuICBTaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvID0gJ3NoYXJlZEZpbHRlcldvcmtzaGVldEluZm8nLFxyXG5cclxuICAvLyBEUElfU2hhcmVkRmlsdGVyV29ya3NoZWV0SW5mb0xpc3QsIGhhdmluZyB0eXBlIFNoYXJlZEZpbHRlcldvcmtzaGVldEluZm9QcmVzTW9kZWxbXVxyXG4gIFNoYXJlZEZpbHRlcldvcmtzaGVldEluZm9MaXN0ID0gJ3NoYXJlZEZpbHRlcldvcmtzaGVldEluZm9MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0ZpZWxkUGlja2VyVHJlZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsXHJcbiAgRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsID0gJ2ZpZWxkUGlja2VyVHJlZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9GaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxTb3VyY2UsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFxyXG4gIEZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFNvdXJjZSA9ICdmaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxTb3VyY2UnLFxyXG5cclxuICAvLyBEUElfRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsVGFyZ2V0LCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxUYXJnZXQgPSAnZmllbGRQaWNrZXJUcmVlUHJlc01vZGVsVGFyZ2V0JyxcclxuXHJcbiAgLy8gRFBJX0Vycm9ySW5mbywgaGF2aW5nIHR5cGUgRXJyb3JJbmZvUHJlc01vZGVsXHJcbiAgRXJyb3JJbmZvID0gJ2Vycm9ySW5mb1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DdXN0b21TcGxpdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ3VzdG9tU3BsaXRQcmVzTW9kZWxcclxuICBDdXN0b21TcGxpdFByZXNNb2RlbCA9ICdjdXN0b21TcGxpdFByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QYWdlU2V0dXAsIGhhdmluZyB0eXBlIFBhZ2VTZXR1cFByZXNNb2RlbFxyXG4gIFBhZ2VTZXR1cCA9ICdwYWdlU2V0dXAnLFxyXG5cclxuICAvLyBEUElfU2VydmVyQ29ubmVjdFN0YXR1cywgaGF2aW5nIHR5cGUgU2VydmVyQ29ubmVjdGlvblN0YXR1c1xyXG4gIFNlcnZlckNvbm5lY3RTdGF0dXMgPSAnc2VydmVyQ29ubmVjdGlvblN0YXR1cycsXHJcblxyXG4gIC8vIERQSV9HZXRGaWx0ZXJJdGVtc1Jlc3BvbnNlLCBoYXZpbmcgdHlwZSBHZXRGaWx0ZXJJdGVtc1Jlc3BvbnNlUHJlc01vZGVsXHJcbiAgR2V0RmlsdGVySXRlbXNSZXNwb25zZSA9ICdnZXRGaWx0ZXJJdGVtc1Jlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFJlc3BvbnNlLCBoYXZpbmcgdHlwZSBGaWx0ZXJTZWFyY2hSZXNwb25zZVByZXNNb2RlbFxyXG4gIEZpbHRlclNlYXJjaFJlc3BvbnNlID0gJ2ZpbHRlclNlYXJjaFJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNlYXJjaFdpdGhJbmRleFJlc3BvbnNlLCBoYXZpbmcgdHlwZSBGaWx0ZXJTZWFyY2hXaXRoSW5kZXhSZXNwb25zZVByZXNNb2RlbFxyXG4gIEZpbHRlclNlYXJjaFdpdGhJbmRleFJlc3BvbnNlID0gJ2ZpbHRlclNlYXJjaFdpdGhJbmRleFJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0ZpbHRlclNob3dDaGlsZHJlblJlc3BvbnNlLCBoYXZpbmcgdHlwZSBGaWx0ZXJTaG93Q2hpbGRyZW5SZXNwb25zZVByZXNNb2RlbFxyXG4gIEZpbHRlclNob3dDaGlsZHJlblJlc3BvbnNlID0gJ2ZpbHRlclNob3dDaGlsZHJlblJlc3BvbnNlJyxcclxuXHJcbiAgLy8gRFBJX0VkaXREYXRhU2VydmVyQ29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdERhdGFTZXJ2ZXJDb25uZWN0aW9uUHJlc01vZGVsXHJcbiAgRWRpdERhdGFTZXJ2ZXJDb25uZWN0aW9uID0gJ2VkaXREYXRhU2VydmVyQ29ubmVjdGlvbicsXHJcblxyXG4gIC8vIERQSV9JbWFnZXNFZGl0LCBoYXZpbmcgdHlwZSBJbWFnZXNFZGl0UHJlc01vZGVsXHJcbiAgSW1hZ2VzRWRpdCA9ICdpbWFnZXNFZGl0JyxcclxuXHJcbiAgLy8gRFBJX0JhY2tncm91bmRJbWFnZSwgaGF2aW5nIHR5cGUgQmFja2dyb3VuZEltYWdlUHJlc01vZGVsXHJcbiAgQmFja2dyb3VuZEltYWdlID0gJ2JhY2tncm91bmRJbWFnZScsXHJcblxyXG4gIC8vIERQSV9CYWNrZ3JvdW5kSW1hZ2VzLCBoYXZpbmcgdHlwZSBCYWNrZ3JvdW5kSW1hZ2VQcmVzTW9kZWxbXVxyXG4gIEJhY2tncm91bmRJbWFnZXMgPSAnYmFja2dyb3VuZEltYWdlcycsXHJcblxyXG4gIC8vIERQSV9QcmVkaWNhdGUsIGhhdmluZyB0eXBlIFByZWRpY2F0ZVByZXNNb2RlbFxyXG4gIFByZWRpY2F0ZSA9ICdwcmVkaWNhdGUnLFxyXG5cclxuICAvLyBEUElfUHJlZGljYXRlcywgaGF2aW5nIHR5cGUgUHJlZGljYXRlUHJlc01vZGVsW11cclxuICBQcmVkaWNhdGVzID0gJ3ByZWRpY2F0ZXMnLFxyXG5cclxuICAvLyBEUElfSW1hZ2VzRWRpdFJlc3VsdCwgaGF2aW5nIHR5cGUgSW1hZ2VzRWRpdFJlc3VsdFByZXNNb2RlbFxyXG4gIEltYWdlc0VkaXRSZXN1bHQgPSAnaW1hZ2VzRWRpdFJlc3VsdCcsXHJcblxyXG4gIC8vIERQSV9Tb3J0RGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTb3J0RGlhbG9nUHJlc01vZGVsXHJcbiAgU29ydERpYWxvZ1ByZXNNb2RlbCA9ICdzb3J0RGlhbG9nUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0NvbXBvdW5kVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBDb21wb3VuZFRhYmxlQ2FsY3VsYXRpb25QcmVzTW9kZWxcclxuICBDb21wb3VuZFRhYmxlQ2FsYyA9ICdjb21wb3VuZFRhYmxlQ2FsY3VsYXRpb25QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGN1bGF0aW9uUHJlc01vZGVsXHJcbiAgVGFibGVDYWxjID0gJ3RhYmxlQ2FsY3VsYXRpb25QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfVGFibGVDYWxjcywgaGF2aW5nIHR5cGUgVGFibGVDYWxjdWxhdGlvblByZXNNb2RlbFtdXHJcbiAgVGFibGVDYWxjcyA9ICd0YWJsZUNhbGN1bGF0aW9uUHJlc01vZGVscycsXHJcblxyXG4gIC8vIERQSV9UYWJsZUNhbGNJZGVudGlmaWVyLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNJZGVudGlmaWVyUHJlc01vZGVsXHJcbiAgVGFibGVDYWxjSWRlbnRpZmllciA9ICd0YWJsZUNhbGNJZGVudGlmaWVyJyxcclxuXHJcbiAgLy8gRFBJX05lc3RlZFRhYmxlQ2FsY0luZm8sIGhhdmluZyB0eXBlIE5lc3RlZFRhYmxlQ2FsY0luZm9QcmVzTW9kZWxcclxuICBOZXN0ZWRUYWJsZUNhbGNJbmZvID0gJ25lc3RlZFRhYmxlQ2FsY0luZm8nLFxyXG5cclxuICAvLyBEUElfTmVzdGVkVGFibGVDYWxjSW5mb3MsIGhhdmluZyB0eXBlIE5lc3RlZFRhYmxlQ2FsY0luZm9QcmVzTW9kZWxbXVxyXG4gIE5lc3RlZFRhYmxlQ2FsY0luZm9zID0gJ25lc3RlZFRhYmxlQ2FsY0luZm9zJyxcclxuXHJcbiAgLy8gRFBJX09yZGVyaW5nLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNPcmRlcmluZ1ByZXNNb2RlbFxyXG4gIE9yZGVyaW5nID0gJ3RhYmxlQ2FsY09yZGVyaW5nUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0N1bXVsYXRpdmUsIGhhdmluZyB0eXBlIEN1bXVsYXRpdmVUYWJsZUNhbGNQcmVzTW9kZWxcclxuICBDdW11bGF0aXZlID0gJ2N1bXVsYXRpdmVUYWJsZUNhbGNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmVmZXJlbmNlT3B0aW9ucywgaGF2aW5nIHR5cGUgVGFibGVDYWxjUmVmZXJlbmNlT3B0aW9uc1ByZXNNb2RlbFxyXG4gIFJlZmVyZW5jZU9wdGlvbnMgPSAndGFibGVDYWxjUmVmZXJlbmNlT3B0aW9uc1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9EaWZmZXJlbmNlLCBoYXZpbmcgdHlwZSBEaWZmZXJlbmNlVGFibGVDYWxjUHJlc01vZGVsXHJcbiAgRGlmZmVyZW5jZSA9ICdkaWZmZXJlbmNlVGFibGVDYWxjUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1dpbmRvdywgaGF2aW5nIHR5cGUgV2luZG93VGFibGVDYWxjUHJlc01vZGVsXHJcbiAgV2luZG93ID0gJ3dpbmRvd1RhYmxlQ2FsY1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9QZXJjZW50VG90YWwsIGhhdmluZyB0eXBlIFBlcmNlbnRUb3RhbFRhYmxlQ2FsY1ByZXNNb2RlbFxyXG4gIFBlcmNlbnRUb3RhbCA9ICdwZXJjZW50VG90YWxUYWJsZUNhbGNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmFuaywgaGF2aW5nIHR5cGUgUmFua1RhYmxlQ2FsY1ByZXNNb2RlbFxyXG4gIFJhbmsgPSAncmFua1RhYmxlQ2FsY1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DdXN0b20sIGhhdmluZyB0eXBlIEN1c3RvbVRhYmxlQ2FsY1ByZXNNb2RlbFxyXG4gIEN1c3RvbSA9ICdjdXN0b21UYWJsZUNhbGNQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfV2ViRGF0YVVybCwgaGF2aW5nIHR5cGUgV2ViRGF0YVVybFByZXNNb2RlbFxyXG4gIFdlYkRhdGFVcmwgPSAnd2ViRGF0YVVybCcsXHJcblxyXG4gIC8vIERQSV9WaXNpdGVkV2ViRGF0YUNvbm5lY3RvcnMsIGhhdmluZyB0eXBlIFdlYkRhdGFVcmxQcmVzTW9kZWxbXVxyXG4gIFZpc2l0ZWRXZWJEYXRhQ29ubmVjdG9ycyA9ICd2aXNpdGVkV2ViRGF0YUNvbm5lY3RvcnMnLFxyXG5cclxuICAvLyBEUElfV2ViRGF0YVNlc3Npb25VcmxzLCBoYXZpbmcgdHlwZSBXZWJEYXRhVXJsUHJlc01vZGVsW11cclxuICBXZWJEYXRhU2Vzc2lvblVybHMgPSAnd2ViRGF0YVNlc3Npb25VcmxzJyxcclxuXHJcbiAgLy8gRFBJX1dlYkRhdGFVcmxzLCBoYXZpbmcgdHlwZSBXZWJEYXRhVXJsUHJlc01vZGVsW11cclxuICBXZWJEYXRhVXJscyA9ICd3ZWJEYXRhVXJscycsXHJcblxyXG4gIC8vIERQSV9GaWVsZFBpY2tlciwgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJQcmVzTW9kZWxcclxuICBGaWVsZFBpY2tlciA9ICdmaWVsZFBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9EZXNjcmliZUZpZWxkLCBoYXZpbmcgdHlwZSBEZXNjcmliZUZpZWxkUHJlc01vZGVsXHJcbiAgRGVzY3JpYmVGaWVsZCA9ICdkZXNjcmliZUZpZWxkJyxcclxuXHJcbiAgLy8gRFBJX1Nob3dEYXRhUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaG93RGF0YVByZXNNb2RlbFxyXG4gIFNob3dEYXRhUHJlc01vZGVsID0gJ3Nob3dEYXRhUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFUYWJsZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2hvd0RhdGFUYWJsZVByZXNNb2RlbFxyXG4gIERhdGFUYWJsZVByZXNNb2RlbCA9ICdkYXRhVGFibGVQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRGF0YVRhYmxlUHJlc01vZGVscywgaGF2aW5nIHR5cGUgU2hvd0RhdGFUYWJsZVByZXNNb2RlbFtdXHJcbiAgRGF0YVRhYmxlUHJlc01vZGVscyA9ICdkYXRhVGFibGVQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX1N1bW1hcnlUYWJsZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFNob3dEYXRhVGFibGVQcmVzTW9kZWxbXVxyXG4gIFN1bW1hcnlUYWJsZVByZXNNb2RlbHMgPSAnc3VtbWFyeVRhYmxlUHJlc01vZGVscycsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoQWxsRXh0cmFjdHNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFJlZnJlc2hBbGxFeHRyYWN0c1ByZXNNb2RlbFxyXG4gIFJlZnJlc2hBbGxFeHRyYWN0c1ByZXNNb2RlbCA9ICdyZWZlc2hBbGxFeHRyYWN0c1ByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9SZWZyZXNoRXh0cmFjdERhdGFTb3VyY2VQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFJlZnJlc2hFeHRyYWN0RGF0YVNvdXJjZVByZXNNb2RlbFxyXG4gIFJlZnJlc2hFeHRyYWN0RGF0YVNvdXJjZVByZXNNb2RlbCA9ICdyZWZyZXNoRXh0cmFjdERhdGFzb3VyY2VQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfUmVmcmVzaEV4dHJhY3REYXRhU291cmNlTGlzdCwgaGF2aW5nIHR5cGUgUmVmcmVzaEV4dHJhY3REYXRhU291cmNlUHJlc01vZGVsW11cclxuICBSZWZyZXNoRXh0cmFjdERhdGFTb3VyY2VMaXN0ID0gJ3JlZnJlc2hFeHRyYWN0RGF0YXNvdXJjZUxpc3QnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEV4dHJhY3RIaXN0b3J5UHJlc01vZGVsXHJcbiAgRXh0cmFjdEhpc3RvcnlQcmVzTW9kZWwgPSAnZXh0cmFjdEhpc3RvcnlQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfRXh0cmFjdEhpc3RvcnlJdGVtUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBFeHRyYWN0SGlzdG9yeUl0ZW1QcmVzTW9kZWxcclxuICBFeHRyYWN0SGlzdG9yeUl0ZW1QcmVzTW9kZWwgPSAnZXh0cmFjdEhpc3RvcnlJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0V4dHJhY3RIaXN0b3J5TGlzdCwgaGF2aW5nIHR5cGUgRXh0cmFjdEhpc3RvcnlJdGVtUHJlc01vZGVsW11cclxuICBFeHRyYWN0SGlzdG9yeUxpc3QgPSAnZXh0cmFjdEhpc3RvcnlMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFQcm92aWRlclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRGF0YVByb3ZpZGVyUHJlc01vZGVsXHJcbiAgRGF0YVByb3ZpZGVyUHJlc01vZGVsID0gJ2RhdGFQcm92aWRlclByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRJdGVtLCBoYXZpbmcgdHlwZSBGb3JtYXRJdGVtUHJlc01vZGVsXHJcbiAgRm9ybWF0SXRlbSA9ICdmb3JtYXRJdGVtJyxcclxuXHJcbiAgLy8gRFBJX0Zvcm1hdEl0ZW1MaXN0LCBoYXZpbmcgdHlwZSBGb3JtYXRJdGVtUHJlc01vZGVsW11cclxuICBGb3JtYXRJdGVtTGlzdCA9ICdmb3JtYXRJdGVtTGlzdCcsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRDb250YWluZXIsIGhhdmluZyB0eXBlIEZvcm1hdENvbnRhaW5lclByZXNNb2RlbFxyXG4gIEZvcm1hdENvbnRhaW5lciA9ICdmb3JtYXRDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfRm9ybWF0UGFuZSwgaGF2aW5nIHR5cGUgRm9ybWF0UGFuZVByZXNNb2RlbFxyXG4gIEZvcm1hdFBhbmUgPSAnZm9ybWF0UGFuZScsXHJcblxyXG4gIC8vIERQSV9Gb3JtYXRTZWN0aW9uLCBoYXZpbmcgdHlwZSBGb3JtYXRTZWN0aW9uUHJlc01vZGVsXHJcbiAgRm9ybWF0U2VjdGlvbiA9ICdmb3JtYXRTZWN0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0NvbGxhcHNpYmxlU2VjdGlvbiwgaGF2aW5nIHR5cGUgQ29sbGFwc2libGVTZWN0aW9uUHJlc01vZGVsXHJcbiAgQ29sbGFwc2libGVTZWN0aW9uID0gJ2NvbGxhcHNpYmxlU2VjdGlvbicsXHJcblxyXG4gIC8vIERQSV9Db21wb3NpdGVDb250YWluZXIsIGhhdmluZyB0eXBlIENvbXBvc2l0ZUNvbnRhaW5lclByZXNNb2RlbFxyXG4gIENvbXBvc2l0ZUNvbnRhaW5lciA9ICdjb21wb3NpdGVDb250YWluZXInLFxyXG5cclxuICAvLyBEUElfVW5pdENvbnRhaW5lciwgaGF2aW5nIHR5cGUgVW5pdENvbnRhaW5lclByZXNNb2RlbFxyXG4gIFVuaXRDb250YWluZXIgPSAndW5pdENvbnRhaW5lcicsXHJcblxyXG4gIC8vIERQSV9UYWJHcm91cCwgaGF2aW5nIHR5cGUgVGFiR3JvdXBQcmVzTW9kZWxcclxuICBUYWJHcm91cCA9ICd0YWJHcm91cCcsXHJcblxyXG4gIC8vIERQSV9UYWIsIGhhdmluZyB0eXBlIFRhYlByZXNNb2RlbFxyXG4gIFRhYiA9ICd0YWInLFxyXG5cclxuICAvLyBEUElfRm9ybWF0Q29udHJvbCwgaGF2aW5nIHR5cGUgRm9ybWF0Q29udHJvbFByZXNNb2RlbFxyXG4gIEZvcm1hdENvbnRyb2wgPSAnZm9ybWF0Q29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9UZXh0Q29udHJvbCwgaGF2aW5nIHR5cGUgVGV4dENvbnRyb2xQcmVzTW9kZWxcclxuICBUZXh0Q29udHJvbCA9ICd0ZXh0Q29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9OdW1lcmljQ29udHJvbCwgaGF2aW5nIHR5cGUgTnVtZXJpY0NvbnRyb2xQcmVzTW9kZWxcclxuICBOdW1lcmljQ29udHJvbCA9ICdudW1lcmljQ29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9Db2xvckNvbnRyb2wsIGhhdmluZyB0eXBlIENvbG9yQ29udHJvbFByZXNNb2RlbFxyXG4gIENvbG9yQ29udHJvbCA9ICdjb2xvckNvbnRyb2wnLFxyXG5cclxuICAvLyBEUElfVG9nZ2xlQ29udHJvbCwgaGF2aW5nIHR5cGUgVG9nZ2xlQ29udHJvbFByZXNNb2RlbFxyXG4gIFRvZ2dsZUNvbnRyb2wgPSAndG9nZ2xlQ29udHJvbCcsXHJcblxyXG4gIC8vIERQSV9TZWxlY3RvckNvbnRyb2wsIGhhdmluZyB0eXBlIFNlbGVjdG9yQ29udHJvbFByZXNNb2RlbFxyXG4gIFNlbGVjdG9yQ29udHJvbCA9ICdlbnVtU3RyaW5nU3R5bGUnLFxyXG5cclxuICAvLyBEUElfU3RhdHNBbmFseXRpY1NwZWMsIGhhdmluZyB0eXBlIFN0YXRzQW5hbHl0aWNTcGVjUHJlc01vZGVsXHJcbiAgU3RhdHNBbmFseXRpY1NwZWMgPSAnc3RhdHNBbmFseXRpY1NwZWMnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclNwZWMsIGhhdmluZyB0eXBlIENsdXN0ZXJTcGVjUHJlc01vZGVsXHJcbiAgQ2x1c3RlclNwZWMgPSAnY2x1c3RlcmluZ1NwZWMnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclJlc3VsdHMsIGhhdmluZyB0eXBlIENsdXN0ZXJSZXN1bHRzUHJlc01vZGVsXHJcbiAgQ2x1c3RlclJlc3VsdHMgPSAnY2x1c3RlclJlc3VsdHMnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlclVuaXQsIGhhdmluZyB0eXBlIENsdXN0ZXJVbml0UHJlc01vZGVsXHJcbiAgQ2x1c3RlclVuaXQgPSAnY2x1c3RlcicsXHJcblxyXG4gIC8vIERQSV9DbHVzdGVyVW5pdHMsIGhhdmluZyB0eXBlIENsdXN0ZXJVbml0UHJlc01vZGVsW11cclxuICBDbHVzdGVyVW5pdHMgPSAnY2x1c3RlclVuaXRQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJGaWVsZEFOT1ZBLCBoYXZpbmcgdHlwZSBDbHVzdGVyRmllbGRBTk9WQVByZXNNb2RlbFxyXG4gIENsdXN0ZXJGaWVsZEFOT1ZBID0gJ2NsdXN0ZXJGaWVsZEFub3ZhJyxcclxuXHJcbiAgLy8gRFBJX0NsdXN0ZXJGaWVsZEFOT1ZBVGFibGUsIGhhdmluZyB0eXBlIENsdXN0ZXJGaWVsZEFOT1ZBUHJlc01vZGVsW11cclxuICBDbHVzdGVyRmllbGRBTk9WQVRhYmxlID0gJ2NsdXN0ZXJGaWVsZEFub3ZhVGFibGVQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlckVkaXQsIGhhdmluZyB0eXBlIENsdXN0ZXJFZGl0UHJlc01vZGVsXHJcbiAgQ2x1c3RlckVkaXQgPSAnY2x1c3RlckVkaXRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ2x1c3RlckRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBDbHVzdGVyRGVzY3JpYmVQcmVzTW9kZWxcclxuICBDbHVzdGVyRGVzY3JpcHRpb24gPSAnY2x1c3RlckRlc2NyaXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX091dGxpZXJSZXN1bHRzLCBoYXZpbmcgdHlwZSBPdXRsaWVyUmVzdWx0c1ByZXNNb2RlbFxyXG4gIE91dGxpZXJSZXN1bHRzID0gJ291dGxpZXJSZXN1bHRzJyxcclxuXHJcbiAgLy8gRFBJX0Nvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHQsIGhhdmluZyB0eXBlIENvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHRQcmVzTW9kZWxcclxuICBDb25uZWN0VG9EYXRhU2VydmVyU291cmNlUmVzdWx0ID0gJ2Nvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHQnLFxyXG5cclxuICAvLyBEUElfRGF0YVNlcnZlckNvbm5lY3Rpb25SZXR1cm5TdGF0dXMsIGhhdmluZyB0eXBlIENvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VSZXN1bHRQcmVzTW9kZWxcclxuICBEYXRhU2VydmVyQ29ubmVjdGlvblJldHVyblN0YXR1cyA9ICdkYXRhU2VydmVyQ29ubmVjdGlvblJldHVyblN0YXR1cycsXHJcblxyXG4gIC8vIERQSV9XZWJRdWFudGl0YXRpdmVDb2xvckRpYWxvZywgaGF2aW5nIHR5cGUgV2ViUXVhbnRpdGF0aXZlQ29sb3JEaWFsb2dQcmVzTW9kZWxcclxuICBXZWJRdWFudGl0YXRpdmVDb2xvckRpYWxvZyA9ICdxdWFudGl0YXRpdmVDb2xvckRpYWxvZycsXHJcblxyXG4gIC8vIERQSV9XZWJDYXRlZ29yaWNhbENvbG9yRGlhbG9nLCBoYXZpbmcgdHlwZSBXZWJDYXRlZ29yaWNhbENvbG9yRGlhbG9nUHJlc01vZGVsXHJcbiAgV2ViQ2F0ZWdvcmljYWxDb2xvckRpYWxvZyA9ICdjYXRlZ29yaWNhbENvbG9yRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX1dlYlNhdmVEYXRhc291cmNlRGlhbG9nLCBoYXZpbmcgdHlwZSBXZWJTYXZlRGF0YXNvdXJjZURpYWxvZ1ByZXNNb2RlbFxyXG4gIFdlYlNhdmVEYXRhc291cmNlRGlhbG9nID0gJ3NhdmVEYXRhc291cmNlRGlhbG9nJyxcclxuXHJcbiAgLy8gRFBJX0JvcmRlclN0eWxlU3BlYywgaGF2aW5nIHR5cGUgU3R5bGVTcGVjUHJlc01vZGVsXHJcbiAgQm9yZGVyU3R5bGVTcGVjID0gJ2JvcmRlclN0eWxlU3BlYycsXHJcblxyXG4gIC8vIERQSV9IYWxvU3R5bGVTcGVjLCBoYXZpbmcgdHlwZSBTdHlsZVNwZWNQcmVzTW9kZWxcclxuICBIYWxvU3R5bGVTcGVjID0gJ2hhbG9TdHlsZVNwZWMnLFxyXG5cclxuICAvLyBEUElfTWFya3NDb2xvclViZXJFZmZlY3RzLCBoYXZpbmcgdHlwZSBNYXJrc0NvbG9yVWJlckVmZmVjdHNQcmVzTW9kZWxcclxuICBNYXJrc0NvbG9yVWJlckVmZmVjdHMgPSAnbWFya3NDb2xvclViZXJFZmZlY3RzJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsQ29sb3JFbmNvZGluZywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvckVuY29kaW5nUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxDb2xvckVuY29kaW5nID0gJ2NhdGVnb3JpY2FsQ29sb3JFbmNvZGluZycsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbFNoYXBlRW5jb2RpbmcsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2hhcGVFbmNvZGluZ1ByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsU2hhcGVFbmNvZGluZyA9ICdjYXRlZ29yaWNhbFNoYXBlRW5jb2RpbmcnLFxyXG5cclxuICAvLyBEUElfU2hhcGVQYWxldHRlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaGFwZVBhbGV0dGVQcmVzTW9kZWxcclxuICBTaGFwZVBhbGV0dGVQcmVzTW9kZWwgPSAnc2hhcGVQYWxldHRlUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX1NoYXBlUGFsZXR0ZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFNoYXBlUGFsZXR0ZVByZXNNb2RlbFtdXHJcbiAgU2hhcGVQYWxldHRlUHJlc01vZGVscyA9ICdzaGFwZVBhbGV0dGVQcmVzTW9kZWxzJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VEYXRlUHJvcGVydGllcywgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZURhdGVQcm9wZXJ0aWVzUHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZURhdGVQcm9wZXJ0aWVzID0gJ2RhdGFzb3VyY2VEYXRlUHJvcGVydGllcycsXHJcblxyXG4gIC8vIERQSV9EYXRlUHJvcGVydGllc0RhdGVGb3JtYXQsIGhhdmluZyB0eXBlIERhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdFByZXNNb2RlbFxyXG4gIERhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdCA9ICdkYXRlUHJvcGVydGllc0RhdGVGb3JtYXQnLFxyXG5cclxuICAvLyBEUElfRGF0ZVByb3BlcnRpZXNEYXRlRm9ybWF0cywgaGF2aW5nIHR5cGUgRGF0ZVByb3BlcnRpZXNEYXRlRm9ybWF0UHJlc01vZGVsW11cclxuICBEYXRlUHJvcGVydGllc0RhdGVGb3JtYXRzID0gJ2RhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdHMnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5U2VsZWN0LCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZWxlY3RNb2RlbFxyXG4gIEhpZXJhcmNoeVNlbGVjdCA9ICdoaWVyYXJjaHlTZWxlY3QnLFxyXG5cclxuICAvLyBEUElfSGllcmFyY2h5U2VsZWN0TWVtYmVyLCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZWxlY3RNZW1iZXJQcmVzTW9kZWxcclxuICBIaWVyYXJjaHlTZWxlY3RNZW1iZXIgPSAnaGllcmFyY2h5U2VsZWN0TWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeVNlbGVjdE1lbWJlckxpc3QsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNlbGVjdE1lbWJlclByZXNNb2RlbFtdXHJcbiAgSGllcmFyY2h5U2VsZWN0TWVtYmVyTGlzdCA9ICdoaWVyYXJjaHlTZWxlY3RNZW1iZXJMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0hpZXJhcmNoeVNldERlZmF1bHRNZW1iZXIsIGhhdmluZyB0eXBlIEhpZXJhcmNoeVNldERlZmF1bHRNZW1iZXJQcmVzTW9kZWxcclxuICBIaWVyYXJjaHlTZXREZWZhdWx0TWVtYmVyID0gJ2hpZXJhcmNoeVNldERlZmF1bHRNZW1iZXInLFxyXG5cclxuICAvLyBEUElfU2VtaVN0cnVjdFNjaGVtYSwgaGF2aW5nIHR5cGUgU2VtaVN0cnVjdFNjaGVtYVByZXNNb2RlbFxyXG4gIFNlbWlTdHJ1Y3RTY2hlbWEgPSAnc2VtaVN0cnVjdFNjaGVtYScsXHJcblxyXG4gIC8vIERQSV9TZW1pU3RydWN0U2NoZW1hTWVtYmVyLCBoYXZpbmcgdHlwZSBTZW1pU3RydWN0U2NoZW1hTWVtYmVyUHJlc01vZGVsXHJcbiAgU2VtaVN0cnVjdFNjaGVtYU1lbWJlciA9ICdzZW1pU3RydWN0U2NoZW1hTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX1NlbWlTdHJ1Y3RTY2hlbWFNZW1iZXJMaXN0LCBoYXZpbmcgdHlwZSBTZW1pU3RydWN0U2NoZW1hTWVtYmVyUHJlc01vZGVsW11cclxuICBTZW1pU3RydWN0U2NoZW1hTWVtYmVyTGlzdCA9ICdzZW1pU3RydWN0U2NoZW1hTWVtYmVyTGlzdCcsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJFZGl0SW5mbywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyRWRpdEluZm9QcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJFZGl0SW5mbyA9ICdwYXJhbWV0ZXJFZGl0SW5mbycsXHJcblxyXG4gIC8vIERQSV9Qcm9kdWN0UGFyYW1ldGVySW5mbywgaGF2aW5nIHR5cGUgUHJvZHVjdFBhcmFtZXRlckluZm9QcmVzTW9kZWxcclxuICBQcm9kdWN0UGFyYW1ldGVySW5mbyA9ICdwcm9kdWN0UGFyYW1ldGVySW5mbycsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWREYXRhc291cmNlRmllbGQsIGhhdmluZyB0eXBlIENhcHRpb25lZERhdGFzb3VyY2VJbmZvUHJlc01vZGVsXHJcbiAgQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkID0gJ2NhcHRpb25lZERhdGFzb3VyY2VGaWVsZCcsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWREYXRhc291cmNlRmllbGRzLCBoYXZpbmcgdHlwZSBDYXB0aW9uZWREYXRhc291cmNlSW5mb1ByZXNNb2RlbFtdXHJcbiAgQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkcyA9ICdjYXB0aW9uZWREYXRhc291cmNlRmllbGRzJyxcclxuXHJcbiAgLy8gRFBJX0VkaXRlZFBhcmFtZXRlclJhbmdlRG9tYWluLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJSYW5nZURvbWFpblByZXNNb2RlbFxyXG4gIEVkaXRlZFBhcmFtZXRlclJhbmdlRG9tYWluID0gJ2VkaXRlZFBhcmFtZXRlclJhbmdlRG9tYWluJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlclJhbmdlRG9tYWluLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJSYW5nZURvbWFpblByZXNNb2RlbFxyXG4gIFBhcmFtZXRlclJhbmdlRG9tYWluID0gJ3BhcmFtZXRlclJhbmdlRG9tYWluJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckxpc3REb21haW4sIGhhdmluZyB0eXBlIFBhcmFtZXRlckxpc3REb21haW5QcmVzTW9kZWxcclxuICBQYXJhbWV0ZXJMaXN0RG9tYWluID0gJ3BhcmFtZXRlckxpc3REb21haW4nLFxyXG5cclxuICAvLyBEUElfUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlciwgaGF2aW5nIHR5cGUgUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlclByZXNNb2RlbFxyXG4gIFBhcmFtZXRlckxpc3REb21haW5NZW1iZXIgPSAncGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcicsXHJcblxyXG4gIC8vIERQSV9QYXJhbWV0ZXJMaXN0RG9tYWluTWVtYmVycywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlclByZXNNb2RlbFtdXHJcbiAgUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcnMgPSAncGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcnMnLFxyXG5cclxuICAvLyBEUElfSW5kZXhlZERvbWFpbk1lbWJlciwgaGF2aW5nIHR5cGUgSW5kZXhlZERvbWFpbk1lbWJlclByZXNNb2RlbFxyXG4gIEluZGV4ZWREb21haW5NZW1iZXIgPSAnaW5kZXhlZERvbWFpbk1lbWJlcicsXHJcblxyXG4gIC8vIERQSV9JbmRleGVkRG9tYWluTWVtYmVycywgaGF2aW5nIHR5cGUgSW5kZXhlZERvbWFpbk1lbWJlclByZXNNb2RlbFtdXHJcbiAgSW5kZXhlZERvbWFpbk1lbWJlcnMgPSAnaW5kZXhlZERvbWFpbk1lbWJlcnMnLFxyXG5cclxuICAvLyBEUElfTmV3SW5kZXhlZERvbWFpbk1lbWJlcnMsIGhhdmluZyB0eXBlIEluZGV4ZWREb21haW5NZW1iZXJQcmVzTW9kZWxbXVxyXG4gIE5ld0luZGV4ZWREb21haW5NZW1iZXJzID0gJ25ld0luZGV4ZWREb21haW5NZW1iZXJzJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlckxpc3REb21haW5EaWZmLCBoYXZpbmcgdHlwZSBwYXJhbWV0ZXItbGlzdC1kb21haW4tZGlmZlxyXG4gIFBhcmFtZXRlckxpc3REb21haW5EaWZmID0gJ3BhcmFtZXRlckxpc3REb21haW5EaWZmJyxcclxuXHJcbiAgLy8gRFBJX0luZGV4UmFuZ2UsIGhhdmluZyB0eXBlIEluZGV4UmFuZ2VQcmVzTW9kZWxcclxuICBJbmRleFJhbmdlID0gJ2luZGV4UmFuZ2UnLFxyXG5cclxuICAvLyBEUElfSW5kZXhSYW5nZXMsIGhhdmluZyB0eXBlIEluZGV4UmFuZ2VQcmVzTW9kZWxbXVxyXG4gIEluZGV4UmFuZ2VzID0gJ2luZGV4UmFuZ2VzJyxcclxuXHJcbiAgLy8gRFBJX0NhdGVnb3JpY2FsRmluZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaW5kUHJlc01vZGVsXHJcbiAgQ2F0ZWdvcmljYWxGaW5kID0gJ2NhdGVnb3JpY2FsRmluZCcsXHJcblxyXG4gIC8vIERQSV9DYXB0aW9uZWREYXRhVmFsdWUsIGhhdmluZyB0eXBlIENhcHRpb25lZERhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIENhcHRpb25lZERhdGFWYWx1ZSA9ICdjYXB0aW9uZWREYXRhVmFsdWUnLFxyXG5cclxuICAvLyBEUElfU2VsZWN0ZWRWYWx1ZUNhcHRpb24sIGhhdmluZyB0eXBlIENhcHRpb25lZERhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIFNlbGVjdGVkVmFsdWVDYXB0aW9uID0gJ3NlbGVjdGVkVmFsdWVDYXB0aW9uJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZUNhcHRpb25MaXN0LCBoYXZpbmcgdHlwZSBDYXB0aW9uZWREYXRhVmFsdWVQcmVzTW9kZWxbXVxyXG4gIERhdGFWYWx1ZUNhcHRpb25MaXN0ID0gJ2RhdGFWYWx1ZUNhdHBpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX1JhbmdlRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBSYW5nZURhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIFJhbmdlRGF0YVZhbHVlID0gJ3JhbmdlRGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX1BhcmFtZXRlclJhbmdlRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBSYW5nZURhdGFWYWx1ZVByZXNNb2RlbFxyXG4gIFBhcmFtZXRlclJhbmdlRGF0YVZhbHVlID0gJ3BhcmFtZXRlclJhbmdlRGF0YVZhbHVlJyxcclxuXHJcbiAgLy8gRFBJX0RhdGFWYWx1ZVJhbmdlQ2FwdGlvbnMsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlQ2FwdGlvbnNQcmVzTW9kZWxcclxuICBEYXRhVmFsdWVSYW5nZUNhcHRpb25zID0gJ2RhdGFWYWx1ZVJhbmdlQ2FwdGlvbnMnLFxyXG5cclxuICAvLyBEUElfSW5kZXBlbmRlbnREaW1lbnNpb24sIGhhdmluZyB0eXBlIEluZGVwZW5kZW50RGltZW5zaW9uUHJlc01vZGVsXHJcbiAgSW5kZXBlbmRlbnREaW1lbnNpb24gPSAnaW5kZXBlbmRlbnREaW1lbnNpb24nLFxyXG5cclxuICAvLyBEUElfSW5kZXBlbmRlbnREaW1lbnNpb25zLCBoYXZpbmcgdHlwZSBJbmRlcGVuZGVudERpbWVuc2lvblByZXNNb2RlbFtdXHJcbiAgSW5kZXBlbmRlbnREaW1lbnNpb25zID0gJ2luZGVwZW5kZW50RGltZW5zaW9ucycsXHJcblxyXG4gIC8vIERQSV9BdHRyaWJ1dGVQZXJzcGVjdGl2ZSwgaGF2aW5nIHR5cGUgUGVyc3BlY3RpdmVQcmVzTW9kZWxcclxuICBBdHRyaWJ1dGVQZXJzcGVjdGl2ZSA9ICdhdHRyaWJ1dGVQZXJzcGVjdGl2ZScsXHJcblxyXG4gIC8vIERQSV9DdWJlUGVyc3BlY3RpdmUsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlUHJlc01vZGVsXHJcbiAgQ3ViZVBlcnNwZWN0aXZlID0gJ2N1YmVQZXJzcGVjdGl2ZScsXHJcblxyXG4gIC8vIERQSV9BdHRyaWJ1dGVQZXJzcGVjdGl2ZXMsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlUHJlc01vZGVsW11cclxuICBBdHRyaWJ1dGVQZXJzcGVjdGl2ZXMgPSAnYXR0cmlidXRlUGVyc3BlY3RpdmVzJyxcclxuXHJcbiAgLy8gRFBJX0NhbGN1bGF0ZWRNZW1iZXJzRm9yRWRpdGluZ1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRWRpdENhbGN1bGF0ZWRNZW1iZXJzUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRlZE1lbWJlcnNGb3JFZGl0aW5nUHJlc01vZGVsID0gJ2NhbGN1bGF0ZWRNZW1iZXJzRm9yRWRpdGluZ1ByZXNtb2RlbCcsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGVkTWVtYmVyLCBoYXZpbmcgdHlwZSBDYWxjdWxhdGVkTWVtYmVyUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRlZE1lbWJlciA9ICdjYWxjdWxhdGVkTWVtYmVyJyxcclxuXHJcbiAgLy8gRFBJX05ld0NhbGN1bGF0ZWRNZW1iZXIsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJQcmVzTW9kZWxcclxuICBOZXdDYWxjdWxhdGVkTWVtYmVyID0gJ25ld0NhbGN1bGF0ZWRNZW1iZXInLFxyXG5cclxuICAvLyBEUElfVXBkYXRlZENhbGN1bGF0ZWRNZW1iZXIsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJQcmVzTW9kZWxcclxuICBVcGRhdGVkQ2FsY3VsYXRlZE1lbWJlciA9ICd1cGRhdGVkQ2FsY3VsYXRlZE1lbWJlcicsXHJcblxyXG4gIC8vIERQSV9DYWxjdWxhdGVkTWVtYmVyc0xpc3QsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJQcmVzTW9kZWxbXVxyXG4gIENhbGN1bGF0ZWRNZW1iZXJzTGlzdCA9ICdjYWxjdWxhdGVkTWVtYmVyc0xpc3QnLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUl0ZW0sIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJIaWVyYXJjaHlJdGVtUHJlc01vZGVsXHJcbiAgQ2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUl0ZW0gPSAnY2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUl0ZW0nLFxyXG5cclxuICAvLyBEUElfQ2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUxpc3QsIGhhdmluZyB0eXBlIENhbGN1bGF0ZWRNZW1iZXJIaWVyYXJjaHlJdGVtUHJlc01vZGVsW11cclxuICBDYWxjdWxhdGVkTWVtYmVySGllcmFyY2h5TGlzdCA9ICdjYWxjdWxhdGVkTWVtYmVySGllcmFyY2h5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9TdW1tYXJ5Q2FyZFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU3VtbWFyeUNhcmRQcmVzTW9kZWxcclxuICBTdW1tYXJ5Q2FyZFByZXNNb2RlbCA9ICdzdW1tYXJ5Q2FyZCcsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlU3VtbWFyeSwgaGF2aW5nIHR5cGUgTWVhc3VyZVN1bW1hcnlQcmVzTW9kZWxcclxuICBNZWFzdXJlU3VtbWFyeSA9ICdtZWFzdXJlU3VtbWFyeScsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlU3VtbWFyeUxpc3QsIGhhdmluZyB0eXBlIE1lYXN1cmVTdW1tYXJ5UHJlc01vZGVsW11cclxuICBNZWFzdXJlU3VtbWFyeUxpc3QgPSAnbWVhc3VyZVN1bW1hcnlMaXN0JyxcclxuXHJcbiAgLy8gRFBJX0Fubm90YXRpb25QcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFubm90YXRpb25QcmVzTW9kZWxcclxuICBBbm5vdGF0aW9uUHJlc01vZGVsID0gJ2Fubm90YXRpb24nLFxyXG5cclxuICAvLyBEUElfQW5ub3RhdGlvbkxpc3QsIGhhdmluZyB0eXBlIEFubm90YXRpb25QcmVzTW9kZWxbXVxyXG4gIEFubm90YXRpb25MaXN0ID0gJ2Fubm90YXRpb25MaXN0JyxcclxuXHJcbiAgLy8gRFBJX0Fubm90YXRpb25TaGFwZVN0eWxlLCBoYXZpbmcgdHlwZSBBbm5vdGF0aW9uU2hhcGVTdHlsZVByZXNNb2RlbFxyXG4gIEFubm90YXRpb25TaGFwZVN0eWxlID0gJ2Fubm90YXRpb25TaGFwZVN0eWxlJyxcclxuXHJcbiAgLy8gRFBJX1RlbGVtZXRyeSwgaGF2aW5nIHR5cGUgVGVsZW1ldHJ5UHJlc01vZGVsXHJcbiAgVGVsZW1ldHJ5ID0gJ3RlbGVtZXRyeScsXHJcblxyXG4gIC8vIERQSV9EYXRhU291cmNlVGVsZW1ldHJ5LCBoYXZpbmcgdHlwZSBEYXRhU291cmNlVGVsZW1ldHJ5UHJlc01vZGVsXHJcbiAgRGF0YVNvdXJjZVRlbGVtZXRyeSA9ICdkYXRhU291cmNlVGVsZW1ldHJ5JyxcclxuXHJcbiAgLy8gRFBJX0RhdGFTb3VyY2VUZWxlbWV0cnlMaXN0LCBoYXZpbmcgdHlwZSBEYXRhU291cmNlVGVsZW1ldHJ5UHJlc01vZGVsW11cclxuICBEYXRhU291cmNlVGVsZW1ldHJ5TGlzdCA9ICdkYXRhU291cmNlVGVsZW1ldHJ5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9WaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5LCBoYXZpbmcgdHlwZSBWaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5UHJlc01vZGVsXHJcbiAgVmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeSA9ICd2aXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5JyxcclxuXHJcbiAgLy8gRFBJX1Zpc3VhbFNwZWNpZmljYXRpb25UZWxlbWV0cnlMaXN0LCBoYXZpbmcgdHlwZSBWaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5UHJlc01vZGVsW11cclxuICBWaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5TGlzdCA9ICd2aXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5TGlzdCcsXHJcblxyXG4gIC8vIERQSV9VbmRlcmx5aW5nRGF0YVRhYmxlLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsXHJcbiAgVW5kZXJseWluZ0RhdGFUYWJsZSA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlJyxcclxuXHJcbiAgLy8gRFBJX1VuZGVybHlpbmdEYXRhVGFibGVzLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsW11cclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlcyA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlcycsXHJcblxyXG4gIC8vIERQSV9VbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uUHJlc01vZGVsXHJcbiAgVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtbiA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uJyxcclxuXHJcbiAgLy8gRFBJX1VuZGVybHlpbmdEYXRhVGFibGVDb2x1bW5zLCBoYXZpbmcgdHlwZSBVbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uUHJlc01vZGVsW11cclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1ucyA9ICd1bmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9QYWdlQ2FjaGVJRCwgaGF2aW5nIHR5cGUgUGFnZUNhY2hlSURQcmVzTW9kZWxcclxuICBQYWdlQ2FjaGVJRCA9ICdwYWdlQ2FjaGVJZCcsXHJcblxyXG4gIC8vIERQSV9SZWxhdGlvbmFsUGFnZUNhY2hlSUQsIGhhdmluZyB0eXBlIFBhZ2VDYWNoZUlEUHJlc01vZGVsXHJcbiAgUmVsYXRpb25hbFBhZ2VDYWNoZUlEID0gJ3JlbGF0aW9uYWxQYWdlQ2FjaGVJZCcsXHJcblxyXG4gIC8vIERQSV9TZWFyY2hSZXN1bHRzQ2FjaGVJRCwgaGF2aW5nIHR5cGUgUGFnZUNhY2hlSURQcmVzTW9kZWxcclxuICBTZWFyY2hSZXN1bHRzQ2FjaGVJRCA9ICdzZWFyY2hSZXN1bHRzQ2FjaGVJZCcsXHJcblxyXG4gIC8vIERQSV9QYWdlSW5mbywgaGF2aW5nIHR5cGUgUGFnZUluZm9QcmVzTW9kZWxcclxuICBQYWdlSW5mbyA9ICdwYWdlSW5mbycsXHJcblxyXG4gIC8vIERQSV9Sb3dDb2xQYWlyLCBoYXZpbmcgdHlwZSBSb3dDb2xQYWlyUHJlc01vZGVsXHJcbiAgUm93Q29sUGFpciA9ICdyb3dDb2xQYWlyJyxcclxuXHJcbiAgLy8gRFBJX1RvcExlZnRSb3dDb2wsIGhhdmluZyB0eXBlIFJvd0NvbFBhaXJQcmVzTW9kZWxcclxuICBUb3BMZWZ0Um93Q29sID0gJ3RvcExlZnRSb3dDb2wnLFxyXG5cclxuICAvLyBEUElfQm90UmlnaHRSb3dDb2wsIGhhdmluZyB0eXBlIFJvd0NvbFBhaXJQcmVzTW9kZWxcclxuICBCb3RSaWdodFJvd0NvbCA9ICdib3RSaWdodFJvd0NvbCcsXHJcblxyXG4gIC8vIERQSV9Sb3dDb2xQYWlycywgaGF2aW5nIHR5cGUgUm93Q29sUGFpclByZXNNb2RlbFtdXHJcbiAgUm93Q29sUGFpcnMgPSAncm93Q29sUGFpcnMnLFxyXG5cclxuICAvLyBEUElfVGFibGVWaWV3Q2FjaGVJbmZvLCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdDYWNoZVByZXNNb2RlbFxyXG4gIFRhYmxlVmlld0NhY2hlSW5mbyA9ICd0YWJsZVZpZXdDYWNoZUluZm8nLFxyXG5cclxuICAvLyBEUElfVGFibGVWaWV3SW5mbywgaGF2aW5nIHR5cGUgdGFibGVWaWV3SW5mb1ByZXNNb2RlbFxyXG4gIFRhYmxlVmlld0luZm8gPSAndGFibGVWaWV3SW5mbycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdDb2x1bW5JbmZvLCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdDb2x1bW5JbmZvUHJlc01vZGVsXHJcbiAgVGFibGVWaWV3Q29sdW1uSW5mbyA9ICd0YWJsZVZpZXdDb2x1bW5JbmZvJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVmlld0NvbHVtbnMsIGhhdmluZyB0eXBlIFRhYmxlVmlld0NvbHVtbkluZm9QcmVzTW9kZWxbXVxyXG4gIFRhYmxlVmlld0NvbHVtbnMgPSAndGFibGVWaWV3Q29sdW1ucycsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdQYWdlSXRlbSwgaGF2aW5nIHR5cGUgVGFibGVWaWV3UGFnZUl0ZW1QcmVzTW9kZWxcclxuICBUYWJsZVZpZXdQYWdlSXRlbSA9ICd0YWJsZVZpZXdQYWdlSXRlbScsXHJcblxyXG4gIC8vIERQSV9UYWJsZVZpZXdQYWdlQ29sdW1ucywgaGF2aW5nIHR5cGUgVGFibGVWaWV3UGFnZUl0ZW1QcmVzTW9kZWxbXVxyXG4gIFRhYmxlVmlld1BhZ2VDb2x1bW5zID0gJ3RhYmxlVmlld1BhZ2VDb2x1bW5zJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVmlld1BhZ2VSb3csIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VSb3dQcmVzTW9kZWxcclxuICBUYWJsZVZpZXdQYWdlUm93ID0gJ3RhYmxlVmlld1BhZ2VSb3cnLFxyXG5cclxuICAvLyBEUElfVGFibGVWaWV3UGFnZVJvd3MsIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VSb3dQcmVzTW9kZWxbXVxyXG4gIFRhYmxlVmlld1BhZ2VSb3dzID0gJ3RhYmxlVmlld1BhZ2VSb3dzJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlVmlld1BhZ2UsIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VQcmVzTW9kZWxcclxuICBUYWJsZVZpZXdQYWdlID0gJ3RhYmxlVmlld1BhZ2UnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlciwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlclByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsVmFsdWVQaWNrZXIgPSAnY2F0ZWdvcmljYWxWYWx1ZVBpY2tlcicsXHJcblxyXG4gIC8vIERQSV9Bbm5vdGF0aW9uU2hhcGVCb3JkZXJTdHlsZSwgaGF2aW5nIHR5cGUgTGluZVN0eWxlUHJlc01vZGVsXHJcbiAgQW5ub3RhdGlvblNoYXBlQm9yZGVyU3R5bGUgPSAnYW5ub3RhdGlvblNoYXBlQm9yZGVyU3R5bGUnLFxyXG5cclxuICAvLyBEUElfQW5vdGF0aW9uU2hhcGVTdHJva2VTdHlsZSwgaGF2aW5nIHR5cGUgTGluZVN0eWxlUHJlc01vZGVsXHJcbiAgQW5vdGF0aW9uU2hhcGVTdHJva2VTdHlsZSA9ICdhbm5vdGF0aW9uU2hhcGVTdHJva2VTdHlsZScsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbkVkaXRvclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxCaW5FZGl0b3JQcmVzTW9kZWxcclxuICBDYXRlZ29yaWNhbEJpbkVkaXRvclByZXNNb2RlbCA9ICdjYXRlZ29yaWNhbEJpbkVkaXRvcicsXHJcblxyXG4gIC8vIERQSV9DYXRlZ29yaWNhbEJpbkl0ZW0sIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQmluSXRlbVByZXNNb2RlbFxyXG4gIENhdGVnb3JpY2FsQmluSXRlbSA9ICdjYXRlZ29yaWNhbEJpbkl0ZW1QcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQ2F0ZWdvcmljYWxCaW5JdGVtcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxCaW5JdGVtUHJlc01vZGVsW11cclxuICBDYXRlZ29yaWNhbEJpbkl0ZW1zID0gJ2NhdGVnb3JpY2FsQmluSXRlbVByZXNNb2RlbHMnLFxyXG5cclxuICAvLyBEUElfTWVhc3VyZVBpY2tlckZpZWxkSW5mbywgaGF2aW5nIHR5cGUgTWVhc3VyZVBpY2tlckZpZWxkSW5mb1ByZXNNb2RlbFxyXG4gIE1lYXN1cmVQaWNrZXJGaWVsZEluZm8gPSAnbWVhc3VyZVBpY2tlckZpZWxkSW5mbycsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlUGlja2VyRmllbGRzLCBoYXZpbmcgdHlwZSBNZWFzdXJlUGlja2VyRmllbGRJbmZvUHJlc01vZGVsW11cclxuICBNZWFzdXJlUGlja2VyRmllbGRzID0gJ21lYXN1cmVQaWNrZXJGaWVsZHMnLFxyXG5cclxuICAvLyBEUElfTWVhc3VyZUFnZ3JlZ2F0aW9uSW5mbywgaGF2aW5nIHR5cGUgTWVhc3VyZUFnZ3JlZ2F0aW9uSW5mb1ByZXNNb2RlbFxyXG4gIE1lYXN1cmVBZ2dyZWdhdGlvbkluZm8gPSAnbWVhc3VyZUFnZ3JlZ2F0aW9uSW5mbycsXHJcblxyXG4gIC8vIERQSV9NZWFzdXJlQWdncmVnYXRpb25zLCBoYXZpbmcgdHlwZSBNZWFzdXJlQWdncmVnYXRpb25JbmZvUHJlc01vZGVsW11cclxuICBNZWFzdXJlQWdncmVnYXRpb25zID0gJ21lYXN1cmVBZ2dyZWdhdGlvbnMnLFxyXG5cclxuICAvLyBEUElfVHVwbGVQYWlyLCBoYXZpbmcgdHlwZSBUdXBsZVBhaXJQcmVzTW9kZWxcclxuICBUdXBsZVBhaXIgPSAndHVwbGVQYWlyJyxcclxuXHJcbiAgLy8gRFBJX0RpbWVuc2lvbkJvdW5kLCBoYXZpbmcgdHlwZSBEaW1lbnNpb25Cb3VuZFByZXNNb2RlbFxyXG4gIERpbWVuc2lvbkJvdW5kID0gJ2RpbWVuc2lvbkJvdW5kJyxcclxuXHJcbiAgLy8gRFBJX1BlcnNwZWN0aXZlQm91bmRzLCBoYXZpbmcgdHlwZSBEaW1lbnNpb25Cb3VuZFByZXNNb2RlbFtdXHJcbiAgUGVyc3BlY3RpdmVCb3VuZHMgPSAncGVyc3BlY3RpdmVCb3VuZHMnLFxyXG5cclxuICAvLyBEUElfRmlsdGVyUGVyc3BlY3RpdmVJbmZvUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBGaWx0ZXJQZXJzcGVjdGl2ZUluZm9QcmVzTW9kZWxcclxuICBGaWx0ZXJQZXJzcGVjdGl2ZUluZm9QcmVzTW9kZWwgPSAnZmlsdGVyUGVyc3BlY3RpdmVJbmZvJyxcclxuXHJcbiAgLy8gRFBJX1RhYmxlUmVsZXZhbmNlLCBoYXZpbmcgdHlwZSBUYWJsZVJlbGV2YW5jZVByZXNNb2RlbFxyXG4gIFRhYmxlUmVsZXZhbmNlID0gJ3RhYmxlUmVsZXZhbmNlJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBBZGRJblJlZ2lzdHJhdGlvblByZXNNb2RlbFxyXG4gIEFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsID0gJ2FkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsTGlzdCwgaGF2aW5nIHR5cGUgQWRkSW5SZWdpc3RyYXRpb25QcmVzTW9kZWxbXVxyXG4gIEFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsTGlzdCA9ICdhZGRJblJlZ2lzdHJhdGlvblByZXNNb2RlbExpc3QnLFxyXG5cclxuICAvLyBEUElfQWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXQsIGhhdmluZyB0eXBlIEFkZEluRGFzaGJvYXJkV2lkZ2V0UHJlc01vZGVsXHJcbiAgQWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXQgPSAnYWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWRkSW5JbnN0YW5jZSwgaGF2aW5nIHR5cGUgQWRkSW5JbnN0YW5jZVByZXNNb2RlbFxyXG4gIEFkZEluSW5zdGFuY2UgPSAnYWRkSW5JbnN0YW5jZVByZXNNb2RlbCcsXHJcblxyXG4gIC8vIERQSV9BZGRJbkxvY2F0b3IsIGhhdmluZyB0eXBlIEFkZEluTG9jYXRvclByZXNNb2RlbFxyXG4gIEFkZEluTG9jYXRvciA9ICdhZGRJbkxvY2F0b3JQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWRkSW5Db250ZXh0LCBoYXZpbmcgdHlwZSBBZGRJbkNvbnRleHRcclxuICBBZGRJbkNvbnRleHQgPSAnYWRkSW5Db250ZXh0JyxcclxuXHJcbiAgLy8gRFBJX0FkZEluTW9kZSwgaGF2aW5nIHR5cGUgQWRkSW5Nb2RlXHJcbiAgQWRkSW5Nb2RlID0gJ2FkZEluTW9kZScsXHJcblxyXG4gIC8vIERQSV9TZXRBeGlzRGF0YVZhbHVlUmVzdWx0LCBoYXZpbmcgdHlwZSBTZXRBeGlzRGF0YVZhbHVlUmVzdWx0XHJcbiAgU2V0QXhpc0RhdGFWYWx1ZVJlc3VsdCA9ICdzZXRBeGlzRGF0YVZhbHVlUmVzdWx0JyxcclxuXHJcbiAgLy8gRFBJX0F4aXNFeHRlbnRTdGFydFR5cGUsIGhhdmluZyB0eXBlIEF4aXNFeHRlbnRUeXBlXHJcbiAgQXhpc0V4dGVudFN0YXJ0VHlwZSA9ICdheGlzRXh0ZW50U3RhcnRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNFeHRlbnRFbmRUeXBlLCBoYXZpbmcgdHlwZSBBeGlzRXh0ZW50VHlwZVxyXG4gIEF4aXNFeHRlbnRFbmRUeXBlID0gJ2F4aXNFeHRlbnRFbmRUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0F4aXNFeHRlbnRzVHlwZSwgaGF2aW5nIHR5cGUgQXhpc0V4dGVudFR5cGVcclxuICBBeGlzRXh0ZW50c1R5cGUgPSAnYXhpc0V4dGVudHNUeXBlJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluRW52aXJvbm1lbnQsIGhhdmluZyB0eXBlIEFkZEluRW52aXJvbm1lbnRQcmVzTW9kZWxcclxuICBBZGRJbkVudmlyb25tZW50ID0gJ2FkZEluRW52aXJvbm1lbnRQcmVzTW9kZWwnLFxyXG5cclxuICAvLyBEUElfQWRkSW5EYXNoYm9hcmRJbmZvLCBoYXZpbmcgdHlwZSBBZGRJbkRhc2hib2FyZEluZm9QcmVzTW9kZWxcclxuICBBZGRJbkRhc2hib2FyZEluZm8gPSAnYWRkSW5EYXNoYm9hcmRJbmZvUHJlc01vZGVsJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluU2V0dGluZ3NJbmZvLCBoYXZpbmcgdHlwZSBBZGRJblNldHRpbmdzSW5mb1ByZXNNb2RlbFxyXG4gIEFkZEluU2V0dGluZ3NJbmZvID0gJ2FkZEluU2V0dGluZ3NJbmZvJyxcclxuXHJcbiAgLy8gRFBJX0FkZEluQm9vdHN0cmFwSW5mbywgaGF2aW5nIHR5cGUgQWRkSW5Cb290c3RyYXBJbmZvUHJlc01vZGVsXHJcbiAgQWRkSW5Cb290c3RyYXBJbmZvID0gJ2FkZEluQm9vdHN0cmFwSW5mbycsXHJcblxyXG4gIC8vIERQSV9BZGRJbkRlYnVnU2V0dGluZ3MsIGhhdmluZyB0eXBlIEFkZEluRGVidWdTZXR0aW5nc1ByZXNNb2RlbFxyXG4gIEFkZEluRGVidWdTZXR0aW5ncyA9ICdhZGRJbkRlYnVnU2V0dGluZ3MnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHQsIGhhdmluZyB0eXBlIFJpY2hUZXh0UHJlc01vZGVsXHJcbiAgUmljaFRleHQgPSAncmljaFRleHQnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRLZXl3b3JkU3ViTGlzdCwgaGF2aW5nIHR5cGUgUmljaFRleHRLZXl3b3JkU3ViTGlzdFByZXNNb2RlbFxyXG4gIFJpY2hUZXh0S2V5d29yZFN1Ykxpc3QgPSAncmljaFRleHRLZXl3b3Jkc1N1Ymxpc3QnLFxyXG5cclxuICAvLyBEUElfUmljaFRleHRLZXl3b3JkU3ViTGlzdHMsIGhhdmluZyB0eXBlIFJpY2hUZXh0S2V5d29yZFN1Ykxpc3RQcmVzTW9kZWxbXVxyXG4gIFJpY2hUZXh0S2V5d29yZFN1Ykxpc3RzID0gJ3JpY2hUZXh0S2V5d29yZFN1Ymxpc3RzJyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0S2V5d29yZExpc3QsIGhhdmluZyB0eXBlIFJpY2hUZXh0S2V5d29yZExpc3RQcmVzTW9kZWxcclxuICBSaWNoVGV4dEtleXdvcmRMaXN0ID0gJ3JpY2hUZXh0S2V5d29yZHNMaXN0JyxcclxuXHJcbiAgLy8gRFBJX1JpY2hUZXh0QmxvY2tTdHlsZSwgaGF2aW5nIHR5cGUgUmljaFRleHRCbG9ja1N0eWxlUHJlc01vZGVsXHJcbiAgUmljaFRleHRCbG9ja1N0eWxlID0gJ3JpY2hUZXh0QmxvY2tTdHlsZScsXHJcblxyXG4gIC8vIERQSV9SaWNoVGV4dENvbnRlbnRTdHlsZSwgaGF2aW5nIHR5cGUgUmljaFRleHRDb250ZW50U3R5bGVQcmVzTW9kZWxcclxuICBSaWNoVGV4dENvbnRlbnRTdHlsZSA9ICdyaWNoVGV4dENvbnRlbnRTdHlsZSdcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2dlbi1zcmMvcHJlc2xheWVyL1BhcmFtcy50c1xuICoqLyIsImltcG9ydCB7IFBhcmFtZXRlcklkIGFzIEFwaSwgVmVyYklkIGFzIEFwaVZlcmJJZCwgVmVyc2lvbk51bWJlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERvY0NvbW1hbmRzIGFzIFByZXNMYXllckRvY0NvbW1hbmRJZCxcclxuICBTcnZDb21tYW5kcyBhcyBQcmVzTGF5ZXJTcnZDb21tYW5kSWQsXHJcbiAgVUlDb21tYW5kcyBhcyBQcmVzTGF5ZXJVSUNvbW1hbmRJZFxyXG59IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL0NvbW1hbmRJZHMnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUEwgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5IH0gZnJvbSAnLi9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5JztcclxuaW1wb3J0IHsgQ29tbWFuZE5hbWVzcGFjZSwgQ29tbWFuZFBhcmFtZXRlciwgQ29tbWFuZFJlZ2lzdHJhdGlvbiB9IGZyb20gJy4vQ29tbWFuZFJlZ2lzdHJhdGlvbic7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3Rvcnkge1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW5kIHBvcHVsYXRlcyBhIG5ldyBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5IGZvciB0aGUgc3BlY2lmaWMgdmVyc2lvbiBudW1iZXIgcmVxdWVzdGVkXHJcbiAgICpcclxuICAgKiBAc3RhdGljXHJcbiAgICogQHBhcmFtIHtWZXJzaW9uTnVtYmVyfSB2ZXJzaW9uTnVtYmVyXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBydW5uaW5nSW5EZXNrdG9wXHJcbiAgICogQHJldHVybnMge0NvbW1hbmRNYXBwaW5nUmVnaXN0cnl9XHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBjcmVhdGVDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5KHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIsIHJ1bm5pbmdJbkRlc2t0b3A6IGJvb2xlYW4pOiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5IHtcclxuICAgIGxldCByZXN1bHQgPSBuZXcgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeSgpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuSW5pdGlhbGl6ZUV4dGVuc2lvbixcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkluaXRpYWxpemVBZGRJbkluc3RhbmNlLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5FeHRlbnNpb25Mb2NhdG9yLCBQTC5BZGRJbkxvY2F0b3IpIF0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5FeHRlbnNpb25Cb290c3RyYXBJbmZvLCBQTC5BZGRJbkJvb3RzdHJhcEluZm8pKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YSxcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkdldFVuZGVybHlpbmdEYXRhLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JZ25vcmVBbGlhc2VzLCBQTC5JZ25vcmVBbGlhc2VzKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuSWdub3JlU2VsZWN0aW9uLCBQTC5JZ25vcmVTZWxlY3Rpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JbmNsdWRlQWxsQ29sdW1ucywgUEwuSW5jbHVkZUFsbENvbHVtbnMpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5NYXhSb3dzLCBQTC5NYXhSb3dzKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pIF0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5VbmRlcmx5aW5nRGF0YVRhYmxlLCBQTC5VbmRlcmx5aW5nRGF0YVRhYmxlKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuR2V0RGF0YVN1bW1hcnlEYXRhLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0U3VtbWFyeURhdGEsXHJcbiAgICAgIFsgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLklnbm9yZUFsaWFzZXMsIFBMLklnbm9yZUFsaWFzZXMpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JZ25vcmVTZWxlY3Rpb24sIFBMLklnbm9yZVNlbGVjdGlvbiksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5WaXN1YWxJRFBNKSBdLFxyXG4gICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVW5kZXJseWluZ1N1bW1hcnlEYXRhVGFibGUsIFBMLlVuZGVybHlpbmdEYXRhVGFibGUpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXREYXRhU291cmNlRGF0YSxcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkdldERhdGFTb3VyY2VEYXRhLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5EYXRhU291cmNlSWQsIFBMLkRhdGFzb3VyY2UpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5JZ25vcmVBbGlhc2VzLCBQTC5JZ25vcmVBbGlhc2VzKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuTWF4Um93cywgUEwuTWF4Um93cyksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkNvbHVtbnNUb0luY2x1ZGUsIFBMLkZpZWxkRGlzcGxheU5hbWVzKSBdLFxyXG4gICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRGF0YVNvdXJjZURhdGFUYWJsZSwgUEwuVW5kZXJseWluZ0RhdGFUYWJsZSkpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5DYXRlZ29yaWNhbEZpbHRlcixcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJWYWx1ZXMsIFBMLkZpbHRlckFsaWFzZXMpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJVcGRhdGVUeXBlLCBQTC5GaWx0ZXJVcGRhdGVUeXBlKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuSXNFeGNsdWRlTW9kZSwgUEwuRXhjbHVkZSwgdHJ1ZSksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5Xb3Jrc2hlZXQpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5WaXN1YWxJZCwgUEwuRGFzaGJvYXJkKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWVsZE5hbWUsIFBMLkZpZWxkQ2FwdGlvbikpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkFwcGx5UmFuZ2VGaWx0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5SYW5nZUZpbHRlcixcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJSYW5nZU1pbiwgUEwuUmFuZ2VNaW4sIHRydWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJSYW5nZU1heCwgUEwuUmFuZ2VNYXgsIHRydWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWx0ZXJSYW5nZU51bGxPcHRpb24sIFBMLkluY2x1ZGVkLCB0cnVlKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLldvcmtzaGVldCksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5EYXNoYm9hcmQpXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkZpZWxkTmFtZSwgUEwuRmllbGRDYXB0aW9uKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuQ2xlYXJGaWx0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5SZXNldEZpbHRlcixcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5WaXN1YWxJZCwgUEwuV29ya3NoZWV0KSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLkRhc2hib2FyZCldLFxyXG4gICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRmllbGROYW1lLCBQTC5GaWVsZENhcHRpb24pKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXRTZWxlY3RlZE1hcmtzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0U2VsZWN0aW9uRGF0YSxcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pIF0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5TZWxlY3RlZERhdGEsIFBMLlNlbGVjdGlvbkRhdGEpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5HZXRIaWdobGlnaHRlZE1hcmtzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0SGlnaGxpZ2h0ZWREYXRhLFxyXG4gICAgICBbIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5WaXN1YWxJZCwgUEwuVmlzdWFsSURQTSkgXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkhpZ2hsaWdodGVkRGF0YSwgUEwuSGlnaGxpZ2h0ZWREYXRhKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuU2F2ZUV4dGVuc2lvblNldHRpbmdzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuU2F2ZUFkZEluU2V0dGluZ3MsXHJcbiAgICAgIFsgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkV4dGVuc2lvbkxvY2F0b3IsIFBMLkFkZEluTG9jYXRvciksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlNldHRpbmdzVmFsdWVzLCBQTC5BZGRJblNldHRpbmdzKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5FeHRlbnNpb25TZXR0aW5nc0luZm8sIFBMLkFkZEluU2V0dGluZ3NJbmZvKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuR2V0UGFyYW1ldGVyc0ZvclNoZWV0LFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0UGFyYW1ldGVyTW9kZWxzLFxyXG4gICAgICBbXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckluZm9zLCBQTC5QYXJhbWV0ZXJDdHJscykpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkZpbmRQYXJhbWV0ZXIsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5GaW5kUGFyYW1ldGVyTW9kZWwsXHJcbiAgICAgIFsgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckNhcHRpb24sIFBMLkZpZWxkQ2FwdGlvbiwgdHJ1ZSksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckZpZWxkTmFtZSwgUEwuRmllbGROYW1lU3RyaW5nLCB0cnVlKV0sXHJcbiAgICAgIC8vIFdlIG1pZ2h0IG5vdCBnZXQgYSByZXNwb25zZSBpZiB0aGUgcGFyYW1ldGVyIGlzbid0IGZvdW5kXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5QYXJhbWV0ZXJJbmZvLCBQTC5QYXJhbWV0ZXJDdHJsLCB0cnVlKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuQ2hhbmdlUGFyYW1ldGVyVmFsdWUsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5TZXRQYXJhbWV0ZXJWYWx1ZSxcclxuICAgICAgWyBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuUGFyYW1ldGVyRmllbGROYW1lLCBQTC5HbG9iYWxGaWVsZE5hbWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5QYXJhbWV0ZXJWYWx1ZSwgUEwuVmFsdWVTdHIpXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlBhcmFtZXRlckluZm8sIFBMLlBhcmFtZXRlckN0cmwpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5DbGVhclNlbGVjdGVkTWFya3MsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5DbGVhclNlbGVjdGVkTWFya3MsXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pXSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuU2VsZWN0QnlWYWx1ZSxcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLlNlbGVjdEJ5VmFsdWUsXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5TZWxlY3Rpb24sIFBMLlNlbGVjdGlvbiwgdHJ1ZSksXHJcbiAgICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlNlbGVjdGlvblVwZGF0ZVR5cGUsIFBMLlNlbGVjdGlvblVwZGF0ZVR5cGUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCBQTC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCB0cnVlKSxcclxuICAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRGltVmFsU2VsZWN0aW9uTW9kZWxzLCBQTC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHMsIHRydWUpLFxyXG4gICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBQTC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCB0cnVlKV0pKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldERhdGFTb3VyY2VzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0U2NoZW1hLFxyXG4gICAgICBbXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkRhdGFTY2hlbWEsIFBMLkRhdGFTY2hlbWEpKSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb24oXHJcbiAgICAgIEFwaVZlcmJJZC5SZWZyZXNoRGF0YVNvdXJjZSxcclxuICAgICAgKHJ1bm5pbmdJbkRlc2t0b3ApID8gUHJlc0xheWVyVUlDb21tYW5kSWQuUmVmcmVzaERhdGFTb3VyY2VVSSA6IFByZXNMYXllclNydkNvbW1hbmRJZC5SZWZyZXNoRGF0YSxcclxuICAgICAgW25ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5EYXRhU291cmNlSWQsIFBMLkRhdGFzb3VyY2UpXSxcclxuICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAocnVubmluZ0luRGVza3RvcCkgPyBDb21tYW5kTmFtZXNwYWNlLlRhYlVJIDogQ29tbWFuZE5hbWVzcGFjZS5UYWJTcnYpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldEZpbHRlcnMsXHJcbiAgICAgIFByZXNMYXllckRvY0NvbW1hbmRJZC5HZXRXb3Jrc2hlZXRGaWx0ZXJzLFxyXG4gICAgICBbbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5WaXN1YWxJRFBNKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5Xb3Jrc2hlZXRGaWx0ZXJzLCBQTC5GaWx0ZXJzSW5mbykpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldENhdGVnb3JpY2FsRG9tYWluLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0Q2F0ZWdvcmljYWxEb21haW4sXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuVmlzdWFsSWQsIFBMLlZpc3VhbElEUE0pLFxyXG4gICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkZpZWxkSWQsIFBMLkZpZWxkTmFtZSksXHJcbiAgICAgICBuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRG9tYWluVHlwZSwgUEwuRmlsdGVyRG9tYWluVHlwZSldLFxyXG4gICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkNhdGVnb3JpY2FsRG9tYWluLCBQTC5DYXRlZ29yaWNhbERvbWFpbikpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldFJhbmdlRG9tYWluLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0UXVhbnRpdGF0aXZlRG9tYWluLFxyXG4gICAgICBbbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLlZpc3VhbElkLCBQTC5WaXN1YWxJRFBNKSxcclxuICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5GaWVsZElkLCBQTC5GaWVsZE5hbWUpLFxyXG4gICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkRvbWFpblR5cGUsIFBMLkZpbHRlckRvbWFpblR5cGUpXSxcclxuICAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5RdWFudGl0YXRpdmVEb21haW4sIFBMLlF1YW50aXRhdGl2ZURvbWFpbikpKTtcclxuXHJcbiAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbihcclxuICAgICAgQXBpVmVyYklkLkdldEpvaW5EZXNjcmlwdGlvbixcclxuICAgICAgUHJlc0xheWVyRG9jQ29tbWFuZElkLkdldEpvaW5EZXNjcmlwdGlvblByZXNNb2RlbCxcclxuICAgICAgW25ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5EYXRhU291cmNlSWQsIFBMLkRhdGFzb3VyY2UpXSxcclxuICAgICAgbmV3IENvbW1hbmRQYXJhbWV0ZXIoQXBpLkpvaW5EZXNjcmlwdGlvbiwgUEwuSm9pbkRlc2NyaXB0aW9uKSkpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGlWZXJiSWQuR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyaWVzLFxyXG4gICAgICBQcmVzTGF5ZXJEb2NDb21tYW5kSWQuR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uU3VtbWFyeVByZXNNb2RlbHMsXHJcbiAgICAgIFtuZXcgQ29tbWFuZFBhcmFtZXRlcihBcGkuRGF0YVNvdXJjZUlkLCBQTC5EYXRhc291cmNlKV0sXHJcbiAgICAgIG5ldyBDb21tYW5kUGFyYW1ldGVyKEFwaS5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMsIFBMLkNvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcmllcykpKTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS50c1xuICoqLyIsIi8qIHRzbGludDpkaXNhYmxlICovXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXHJcbi8vIGJ5IHJlZ2lzdGVyZWQgcGF0ZW50cyBhbmQgb3RoZXIgYXBwbGljYWJsZSBVLlMuIGFuZCBpbnRlcm5hdGlvbmFsIGxhd3MgYW5kXHJcbi8vIHJlZ3VsYXRpb25zLlxyXG4vL1xyXG4vLyBVbmxpY2Vuc2VkIHVzZSBvZiB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIGlzIHByb2hpYml0ZWQuIFBsZWFzZSByZWZlciB0b1xyXG4vLyB0aGUgTk9USUNFUy50eHQgZmlsZSBmb3IgZnVydGhlciBkZXRhaWxzLlxyXG4vL1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBXQVJOSU5HOiBDb21wdXRlciBnZW5lcmF0ZWQgZmlsZS4gIERvIG5vdCBoYW5kIG1vZGlmeS5cclxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvY29tbWFuZHMtZW51bS10cy50ZW1wbGF0ZScsIHUnLi4vdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWNvcmUvdGVtcC1wcmVzLWxheWVyL2FsbC1jbWQtd3JhcHBlcnMuZGF0YSddXHJcblxyXG5leHBvcnQgZW51bSBEb2NDb21tYW5kcyB7XHJcblxyXG4gICAgLy8gU2F2ZXMgdGhlIHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIGFkZC1pbiBpZFxyXG4gICAgU2F2ZUFkZEluU2V0dGluZ3MgPSAnc2F2ZS1hZGQtaW4tc2V0dGluZ3MnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIHByZXMgbW9kZWwgZm9yIGFuIGFkZC1pbiBpbnN0YW5jZS5cclxuICAgIEdldEFkZEluSW5zdGFuY2VQcmVzTW9kZWwgPSAnZ2V0LWFkZC1pbi1pbnN0YW5jZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBwcmVzIG1vZGVsIGZvciB0aGUgZGFzaGJvYXJkIGF1dGhvcmluZyB3aWRnZXQgZm9yIGFkZC1pbnMuXHJcbiAgICBHZXRBZGRJbkRhc2hib2FyZEF1dGhvcmluZ1dpZGdldFByZXNNb2RlbCA9ICdnZXQtYWRkLWluLWRhc2hib2FyZC1hdXRob3Jpbmctd2lkZ2V0LXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3IgYW4gYWRkLWluIHRvIGluaXRpYWxpemUgaXRzZWxmLlxyXG4gICAgSW5pdGlhbGl6ZUFkZEluSW5zdGFuY2UgPSAnaW5pdGlhbGl6ZS1hZGQtaW4taW5zdGFuY2UnLFxyXG5cclxuICAgIC8vIEVuYWJsZXMgb3IgZGlzYWJsZSBqYXZhc2NyaXB0IGRlYnVnZ2luZyBvZiBhbiBhZGQtaW4uXHJcbiAgICBTZXRBZGRJbkpzRGVidWdnaW5nRW5hYmxlZCA9ICdzZXQtYWRkLWluLWpzLWRlYnVnZ2luZy1lbmFibGVkJyxcclxuXHJcbiAgICAvLyBXaGV0aGVyIG9yIG5vdCB3ZSBzaG91bGQgcGF1c2UgYmVmb3JlIGxvYWRpbmcuIElmIG1pc3NpbmcsIHRvZ2dsZSB0aGUgdmFsdWVcclxuICAgIFNldFBhdXNlQmVmb3JlTG9hZGluZ0FkZEluID0gJ3NldC1wYXVzZS1iZWZvcmUtbG9hZGluZy1hZGQtaW4nLFxyXG5cclxuICAgIC8vIFJlbG9hZHMgdGhlIEFkZC1JbiB3aWRnZXQgYW5kIHdlYiBwYWdlLlxyXG4gICAgUmVsb2FkQWRkSW4gPSAncmVsb2FkLWFkZC1pbicsXHJcblxyXG4gICAgLy8gUmV0cmlldmVzIHRoZSBjb250ZXh0IG1lbnUgZm9yIGEgZGFzaGJvYXJkIGFkZC1pbi5cclxuICAgIEdldEFkZEluWm9uZUNvbnRleHRNZW51ID0gJ2dldC1hZGQtaW4tem9uZS1jb250ZXh0LW1lbnUnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIHByZXMgbW9kZWwgd2hpY2ggaW5kaWNhdGVzIHdoYXQgdGhlIGRlYnVnIHNldHRpbmdzIGZvciBhZGQtaW5zIGlzLlxyXG4gICAgR2V0QWRkSW5EZWJ1Z1NldHRpbmdzUHJlc01vZGVsID0gJ2dldC1hZGQtaW4tZGVidWctc2V0dGluZ3MtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gUHJpbWFyeSB1c2UgaXMgZm9yIGJ1aWxkaW5nIGNvbnRleHQgbWVudXNcclxuICAgIElzU2VsZWN0aW9uQW5FZGl0YWJsZVBhcmFtZXRlciA9ICdpcy1zZWxlY3Rpb24tYW4tZWRpdGFibGUtcGFyYW1ldGVyJyxcclxuXHJcbiAgICAvLyBDaGVjayBpZiBzZWxlY3Rpb24gY2FuIGJlIHVzZWQgYXMgYmFzZSBmb3IgY3JlYXRpbmcgYSBuZXcgcGFyYW1ldGVyLiBQcmltYXJ5IHVzZSBpcyBmb3IgYnVpbGRpbmcgY29udGV4dCBtZW51c1xyXG4gICAgR2V0Q3JlYXRlUGFyYW1ldGVyU3RhdGUgPSAnZ2V0LWNyZWF0ZS1wYXJhbWV0ZXItc3RhdGUnLFxyXG5cclxuICAgIC8vIFVzZXMgRWRpdFBhcmFtZXRlciB0byBnZXQgYW5kIHJldHVybiBpbmZvIGFib3V0IHRoZSBwcmVzbW9kZWwgd2l0aG91dCBtYWludGFpbmluZyB0aGUgY29udHJvbGxlclxyXG4gICAgR2V0UGFyYW1ldGVyRWRpdEluZm8gPSAnZ2V0LXBhcmFtZXRlci1lZGl0LWluZm8nLFxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgdGhlIGNvbnRyb2xsZXIgYW5kIGl0cyBzdG9yZWQgcGFyYW1ldGVyIHRoZW4gcmV0dXJuIGEgcG9wdWxhdGVkIHByZXNtb2RlbFxyXG4gICAgQ3JlYXRlUGFyYW1ldGVyID0gJ2NyZWF0ZS1wYXJhbWV0ZXInLFxyXG5cclxuICAgIC8vIFNhbWUgdW5kZXJseWluZyBsb2dpYyBhcyBDcmVhdGVQYXJhbWV0ZXIgYnV0IGVkaXRzIHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgbmV3IHBhcmFtZXRlclxyXG4gICAgRWRpdFBhcmFtZXRlcl9OZXcgPSAnZWRpdC1wYXJhbWV0ZXItbmV3JyxcclxuXHJcbiAgICAvLyBBZGQgYSBtZW1iZXIgb2YgYSBwYXJhbWV0ZXIgZG9tYWluLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBBZGRQYXJhbWV0ZXJNZW1iZXIgPSAnYWRkLXBhcmFtZXRlci1tZW1iZXInLFxyXG5cclxuICAgIC8vIEVkaXQgYSBtZW1iZXIgb2YgYSBwYXJhbWV0ZXIgZG9tYWluLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBFZGl0UGFyYW1ldGVyTWVtYmVyID0gJ2VkaXQtcGFyYW1ldGVyLW1lbWJlcicsXHJcblxyXG4gICAgLy8gRGVsZXRlIGEgc2VyaWVzIG9mIHJhbmdlcyBvZiBtZW1iZXJzIGZyb20gdGhlIHBhcmFtZXRlciBsaXN0LlxyXG4gICAgRGVsZXRlUGFyYW1ldGVyTWVtYmVycyA9ICdkZWxldGUtcGFyYW1ldGVyLW1lbWJlcnMnLFxyXG5cclxuICAgIC8vIENvcHkgYSBzZXJpZXMgb2YgcmFuZ2VzIG9mIG1lbWJlcnMgb2YgYSBwYXJhbWV0ZXIgbGlzdFxyXG4gICAgQ29weVBhcmFtZXRlck1lbWJlcnMgPSAnY29weS1wYXJhbWV0ZXItbWVtYmVycycsXHJcblxyXG4gICAgLy8gTW92ZSBhIHNlcmllcyBvZiByYW5nZXMgb2YgbWVtYmVycyBvZiBhIHBhcmFtZXRlciBsaXN0XHJcbiAgICBNb3ZlUGFyYW1ldGVyTWVtYmVycyA9ICdtb3ZlLXBhcmFtZXRlci1tZW1iZXJzJyxcclxuXHJcbiAgICAvLyBDaGFuZ2UgZG9tYWluIG9mIGEgcGFyYW1ldGVyLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBFZGl0UGFyYW1ldGVyRG9tYWluVHlwZSA9ICdlZGl0LXBhcmFtZXRlci1kb21haW4tdHlwZScsXHJcblxyXG4gICAgLy8gQ2hhbmdlIGRhdGF0eXBlIG9mIGEgcGFyYW1ldGVyLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XHJcbiAgICBFZGl0UGFyYW1ldGVyRGF0YVR5cGUgPSAnZWRpdC1wYXJhbWV0ZXItZGF0YS10eXBlJyxcclxuXHJcbiAgICAvLyBDaGFuZ2UgZGlzcGxheSBmb3JtYXQgb2YgYSBwYXJhbWV0ZXIuIENoYW5nZXMgYXJlIGFwcGxpZWQgdG8gaW50ZXJtZWRpYXRlIHN0YXRlIGFuZCBzYXZlZCBvbiBjb21taXRcclxuICAgIEVkaXRQYXJhbWV0ZXJGb3JtYXQgPSAnZWRpdC1wYXJhbWV0ZXItZm9ybWF0JyxcclxuXHJcbiAgICAvLyBWYWxpZGF0ZSBjaGFuZ2VzIHRvIGEgcGFyYW1ldGVyJ3MgcmFuZ2UgZG9tYWluIGFuZCBhcHBseSB0byBpbnRlcm1lZGlhdGUgc3RhdGUuIENoYW5nZXMgYXJlIHNhdmVkIG9uIGNvbW1pdFxyXG4gICAgRWRpdFBhcmFtZXRlclJhbmdlID0gJ2VkaXQtcGFyYW1ldGVyLXJhbmdlJyxcclxuXHJcbiAgICAvLyBFZGl0IHRoZSB2YWx1ZSBvZiBhIG5vbi1saXN0IGRvbWFpbiBwYXJhbWV0ZXJcclxuICAgIEVkaXRQYXJhbWV0ZXJWYWx1ZSA9ICdlZGl0LXBhcmFtZXRlci12YWx1ZScsXHJcblxyXG4gICAgLy8gRWRpdCB0aGUgdmFsdWUgb2YgYSBsaXN0IGRvbWFpbiBwYXJhbWV0ZXJcclxuICAgIEVkaXRQYXJhbWV0ZXJWYWx1ZUluZGV4ID0gJ2VkaXQtcGFyYW1ldGVyLXZhbHVlLWluZGV4JyxcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIHBhcmFtZXRlciBjYXB0aW9uIGFuZCBkZXNjcmlwdGlvbiAtIHVzZWQgdG8ga2VlcCBiYWNrZW5kIGluIHN5bmMuIE5vIHZlcmlmaWNhdGlvbi9yZXR1cm4gaXMgcmVxdXJpZWQuXHJcbiAgICBFZGl0UGFyYW1ldGVyRGlzcGxheUluZm8gPSAnZWRpdC1wYXJhbWV0ZXItZGlzcGxheS1pbmZvJyxcclxuXHJcbiAgICAvLyBVcGRhdGUgdGhlIGRvbWFpbiBvZiB0aGUgcGFyYW1ldGVyIHVzaW5nIGEgZmllbGQgKGNvbHVtbiBvciBwYXJhbWV0ZXIpIGFzIGEgYmFzZVxyXG4gICAgVXBkYXRlUGFyYW1ldGVyRnJvbUZpZWxkID0gJ3VwZGF0ZS1wYXJhbWV0ZXItZnJvbS1maWVsZCcsXHJcblxyXG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IGRvbWFpbiBvZiBhIHBhcmFtZXRlciBmcm9tIGEgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB2YWx1ZXNcclxuICAgIFBhcnNlUGFyYW1ldGVyTGlzdERvbWFpbiA9ICdwYXJzZS1wYXJhbWV0ZXItbGlzdC1kb21haW4nLFxyXG5cclxuICAgIC8vIENsZWFycyB0aGUgcGFyYW1ldGVyJ3MgZG9tYWluIG9mIGFsbCBtZW1iZXJzXHJcbiAgICBDbGVhclBhcmFtZXRlckxpc3REb21haW4gPSAnY2xlYXItcGFyYW1ldGVyLWxpc3QtZG9tYWluJyxcclxuXHJcbiAgICAvLyBDcmVhdGVzIG9yIGVkaXRzIHBhcmFtZXRlciBmcm9tIGludGVybWVkaWF0ZSBzdGF0ZS4gVGFrZXMgYSBmZXcgcHJvcGVydGllcyB0aGF0IGFyZSBjYWNoZWQgaW4gZGlhbG9nIGFuZCBhcHBsaWVzIHRoZW0gcHJlLWNvbW1pdC5cclxuICAgIENvbW1pdFBhcmFtZXRlckVkaXRzID0gJ2NvbW1pdC1wYXJhbWV0ZXItZWRpdHMnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIG1vZGVsIGZvciBhIHBhcnRpY3VsYXIgcGFyYW1ldGVyIG9yIHJldHVybnMgYW4gZW1wdHkgcmVzcG9uc2UgaWYgb25lIGlzIG5vdCBmb3VuZC5cclxuICAgIEZpbmRQYXJhbWV0ZXJNb2RlbCA9ICdmaW5kLXBhcmFtZXRlci1tb2RlbCcsXHJcblxyXG4gICAgLy8gR2V0cyB0aGUgcHJlcyBtb2RlbCBmb3IgdGhlIHNob3cgZGF0YSBkaWFsb2dcclxuICAgIEdldFNob3dEYXRhUHJlc01vZGVsID0gJ2dldC1zaG93LWRhdGEtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gRXhwb3J0IHVuZGVybHlpbmcgZGF0YSBmcm9tIHRoZSBTaG93RGF0YURpYWxvZyB0byBhIENTViBmaWxlXHJcbiAgICBTaG93RGF0YUV4cG9ydFRvQ1NWID0gJ3Nob3ctZGF0YS1leHBvcnQtdG8tY3N2JyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBzdW1tYXJ5IGRhdGEgZm9yIGEgd29ya3NoZWV0XHJcbiAgICBHZXRTdW1tYXJ5RGF0YSA9ICdnZXQtc3VtbWFyeS1kYXRhJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGEgZm9yIGEgd29ya3NoZWV0XHJcbiAgICBHZXRVbmRlcmx5aW5nRGF0YSA9ICdnZXQtdW5kZXJseWluZy1kYXRhJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGEgZm9yIGEgc3BlY2lmaWMgZGF0YSBzb3VyY2UuXHJcbiAgICBHZXREYXRhU291cmNlRGF0YSA9ICdnZXQtZGF0YS1zb3VyY2UtZGF0YScsXHJcblxyXG4gICAgLy8gU2VsZWN0IGFsbCBtYXJrcyB0aGF0IGhhdmUgdGhlIHR1cGxlJ3MgdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCAuXHJcbiAgICBTZWxlY3RCeVR1cGxlVmFsdWUgPSAnc2VsZWN0LWJ5LXR1cGxlLXZhbHVlJyxcclxuXHJcbiAgICAvLyBDbGVhciBhbGwgdGhlIHNlbGVjdGVkIG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0XHJcbiAgICBDbGVhclNlbGVjdGVkTWFya3MgPSAnY2xlYXItc2VsZWN0ZWQtbWFya3MnLFxyXG5cclxuICAgIC8vIENyZWF0ZXMgb3IgdXBkYXRlcyBhbmQgZXhpc3RpbmcgZmlsdGVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCB1cGRhdGVzLlxyXG4gICAgQXBwbHlDYXRlZ29yaWNhbEZpbHRlclVwZGF0ZXMgPSAnYXBwbHktY2F0ZWdvcmljYWwtZmlsdGVyLXVwZGF0ZXMnLFxyXG5cclxuICAgIC8vIFNlYXJjaCBmaWx0ZXIgZG9tYWluIGZvciB0ZXh0IGFuZCByZXR1cm4gYW55IG1hdGNoaW5nIHR1cGxlcy5cclxuICAgIENhdGVnb3JpY2FsRmlsdGVyU2VhcmNoID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZWFyY2gnLFxyXG5cclxuICAgIC8vIENsZWFyIGFsbCBtZW1iZXJzIGZyb20gdGhlIHRhYmxlIG9mIHRoZSBpZGVudGlmaWVkIGNhY2hlLlxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJDbGVhclJlbGF0aW9uYWxDYWNoZSA9ICdjYXRlZ29yaWNhbC1maWx0ZXItY2xlYXItcmVsYXRpb25hbC1jYWNoZScsXHJcblxyXG4gICAgLy8gQ3JlYXRlIHR1cGxlcyBmb3IgYW4gZXhpc3RpbmcgZmlsdGVyIGZyb20gc3VwcGxpZWQgdGV4dC5cclxuICAgIEdldENhdGVnb3JpY2FsRmlsdGVyVHVwbGVzRnJvbVRleHQgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlci10dXBsZXMtZnJvbS10ZXh0JyxcclxuXHJcbiAgICAvLyBSZXR1cm5zIGEgcHJlc21vZGVsIGJhY2tpbmcgYSBjYXRlZ29yaWNhbCBmaWx0ZXIsIGluaXRpYWxpemluZyBhIGRhdGEgY2FjaGUgZm9yIGZhc3QgbG9va3VwIG9mIHRoZSBmaWx0ZXIncyBtZW1iZXIgZG9tYWluLlxyXG4gICAgR2V0Q2F0ZWdvcmljYWxGaWx0ZXIgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlcicsXHJcblxyXG4gICAgLy8gUmV0cmlldmVzIGEgcGFnZSBvZiBkYXRhIHRvIGRpc3BsYXkgaW4gdGhlIGZpbHRlcidzIGxpc3QgZG9tYWluXHJcbiAgICBHZXRDYXRlZ29yaWNhbEZpbHRlckRvbWFpblBhZ2UgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlci1kb21haW4tcGFnZScsXHJcblxyXG4gICAgLy8gUmVzZXQgZmlsdGVyIHRvIGNvbW1pdHRlZCBzdGF0ZVxyXG4gICAgUmVzZXRDYXRlZ29yaWNhbEZpbHRlckRlZmVycmVkID0gJ3Jlc2V0LWNhdGVnb3JpY2FsLWZpbHRlci1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gVXNlIHVuY29tbWl0dGVkIHN0YXRlIHRvIHJlc2V0IHRoZSBmaWx0ZXIncyBjb250cm9sbGVyXHJcbiAgICBSZWNyZWF0ZUNhdGVnb3JpY2FsRmlsdGVyQ29udHJvbGxlciA9ICdyZWNyZWF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItY29udHJvbGxlcicsXHJcblxyXG4gICAgLy8gVmFsaWRhdGVzIGEgQ2F0ZWdyb2ljYWwgRmlsdGVyIG5hbWUuXHJcbiAgICBWYWxpZGF0ZUNhdGVnb3JpY2FsRmlsdGVyTmFtZSA9ICd2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbmFtZScsXHJcblxyXG4gICAgLy8gUmV0cmlldmVzIHRoZSBmaWVsZCBhZ2dyZWdhdGlvbnMgYWxsb3dlZCBmb3IgdGhlIGZpZWxkIGJlaW5nIGZpbHRlcmVkLlxyXG4gICAgR2V0RmlsdGVyRmllbGRBZ2dyZWdhdGlvbnMgPSAnZ2V0LWZpbHRlci1maWVsZC1hZ2dyZWdhdGlvbnMnLFxyXG5cclxuICAgIC8vIEdldHMgYSBzdW1tYXJ5IG9mIHRoZSBmaWx0ZXIgcGF0dGVybi5cclxuICAgIEdldENhdGVnb3JpY2FsRmlsdGVyUGF0dGVyblN1bW1hcnkgPSAnZ2V0LWNhdGVnb3JpY2FsLWZpbHRlci1wYXR0ZXJuLXN1bW1hcnknLFxyXG5cclxuICAgIC8vIEdldHMgYSBzdW1tZXJ5IG9mIHRoZSBmaWx0ZXIgY29uZGl0aW9uLlxyXG4gICAgR2V0Q2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25TdW1tYXJ5ID0gJ2dldC1jYXRlZ29yaWNhbC1maWx0ZXItY29uZGl0aW9uLXN1bW1hcnknLFxyXG5cclxuICAgIC8vIExvYWQgdGhlIGN1cnJlbnQgbWluaW11bSBhbmQgbWF4aW11bSBkYXRhIHZhbHVlIHJhbmdlIGZvciB0aGUgY29uZGl0aW9uIGZpZWxkLlxyXG4gICAgTG9hZENhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uRmllbGRWYWx1ZVJhbmdlID0gJ2xvYWQtY2F0ZWdvcmljYWwtZmlsdGVyLWNvbmRpdGlvbi1maWVsZC12YWx1ZS1yYW5nZScsXHJcblxyXG4gICAgLy8gVmFsaWRhdGVzIGEgQ2F0ZWdvcmljYWwgRmlsdGVyJ3MgY29uZGl0aW9uIGZvcm11bGEgYW5kIHJlLXdyaXRlcyBpdC5cclxuICAgIFZhbGlkYXRlQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25Gb3JtdWxhID0gJ3ZhbGlkYXRlLWNhdGVnb3JpY2FsLWZpbHRlci1jb25kaXRpb24tZm9ybXVsYScsXHJcblxyXG4gICAgLy8gR2V0cyBhIHN1bW1lcnkgb2YgdGhlIGZpbHRlciBsaW1pdC5cclxuICAgIEdldENhdGVnb3JpY2FsRmlsdGVyTGltaXRTdW1tYXJ5ID0gJ2dldC1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQtc3VtbWFyeScsXHJcblxyXG4gICAgLy8gVmFsaWRhdGVzIGEgQ2F0ZWdvcmljYWwgRmlsdGVyJ3MgbGltaXQgY291bnQuXHJcbiAgICBWYWxpZGF0ZUNhdGVnb3JpY2FsRmlsdGVyTGltaXRDb3VudCA9ICd2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQtY291bnQnLFxyXG5cclxuICAgIC8vIFZhbGlkYXRlcyBhIENhdGVnb3JpY2FsIEZpbHRlcidzIGxpbWl0IGZvcm11bGEsIGFuZCByZS13cml0ZXMgdGhlIGZvcm11bGEuXHJcbiAgICBWYWxpZGF0ZUNhdGVnb3JpY2FsRmlsdGVyTGltaXRGb3JtdWxhID0gJ3ZhbGlkYXRlLWNhdGVnb3JpY2FsLWZpbHRlci1saW1pdC1mb3JtdWxhJyxcclxuXHJcbiAgICAvLyBWYWxpZGF0ZXMgYSBDYXRlZ29yaWNhbCBGaWx0ZXIncyBsaW1pdC5cclxuICAgIFZhbGlkYXRlQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdCA9ICd2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBjaGFuZ2VzIHRoZSByYW5nZVxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZXRSYW5nZVR5cGVEZWZlcnJlZCA9ICdjYXRlZ29yaWNhbC1maWx0ZXItc2V0LXJhbmdlLXR5cGUtZGVmZXJyZWQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBjaGFuZ2VzIHdoZXRoZXIgdGhlIHNlbGVjdGlvbiBpcyBleGNsdXNpdmVcclxuICAgIENhdGVnb3JpY2FsRmlsdGVyU2V0U2VsZWN0aW9uRXhjbHVzaXZlRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLXNldC1zZWxlY3Rpb24tZXhjbHVzaXZlLWRlZmVycmVkJyxcclxuXHJcbiAgICAvLyBJbmZvcm0gY2FjaGUgd2hlbiBhIHVzZXIgY2hhbmdlcyB3aGV0aGVyIGFuIGVtcHR5IHNlbGVjdGlvbiBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHNlbGVjdGlvbiBvZiAnQWxsJyBpbiBhIE1hbnVhbCBzZWxlY3Rpb24gbW9kZVxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZXRVc2VBbGxXaGVuTWFudWFsSXNFbXB0eURlZmVycmVkID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZXQtdXNlLWFsbC13aGVuLW1hbnVhbC1pcy1lbXB0eS1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gSW5mb3JtIGNhY2hlIHdoZW4gYSB1c2VyIGFsdGVycyB0aGUgcHJlc2V0IHR5cGVcclxuICAgIENhdGVnb3JpY2FsRmlsdGVyU2V0UHJlc2V0VHlwZURlZmVycmVkID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZXQtcHJlc2V0LXR5cGUtZGVmZXJyZWQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgb25lIG9yIG1vcmUgbWVtYmVyc1xyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZWxlY3RSZWxhdGlvbmFsTWVtYmVyc0RlZmVycmVkID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1zZWxlY3QtcmVsYXRpb25hbC1tZW1iZXJzLWRlZmVycmVkJyxcclxuXHJcbiAgICAvLyBJbmZvcm0gY2FjaGUgdGhlIHVzZXIgaGFzIGRlc2VsZWN0ZWQgb25lIG9yIG1vcmUgbWVtYmVyc1xyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJEZXNlbGVjdFJlbGF0aW9uYWxNZW1iZXJzRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLWRlc2VsZWN0LXJlbGF0aW9uYWwtbWVtYmVycy1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gSW5mb3JtIGNhY2hlIHdoZW4gYSB1c2VyIHNlbGVjdHMgZXZlcnl0aGluZyBpbiB0aGUgZG9tYWluXHJcbiAgICBDYXRlZ29yaWNhbEZpbHRlclNlbGVjdEFsbFJlbGF0aW9uYWxNZW1iZXJzRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLXNlbGVjdC1hbGwtcmVsYXRpb25hbC1tZW1iZXJzLWRlZmVycmVkJyxcclxuXHJcbiAgICAvLyBJbmZvcm0gY2FjaGUgd2hlbiBhIHVzZXIgZGVzZWxlY3RzIGV2ZXJ5dGhpbmcgaW4gdGhlIGRvbWFpblxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJEZXNlbGVjdEFsbFJlbGF0aW9uYWxNZW1iZXJzRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLWRlc2VsZWN0LWFsbC1yZWxhdGlvbmFsLW1lbWJlcnMtZGVmZXJyZWQnLFxyXG5cclxuICAgIC8vIEluZm9ybSBjYWNoZSB0aGUgdXNlciB3YW50cyB0byBzZWUgYSBkaWZmZXJlbnQgZG9tYWluIChlLmcuIHJlbGV2YW50IHZhbHVlcyBvbmx5KVxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJTZXREb21haW5UeXBlRGVmZXJyZWQgPSAnY2F0ZWdvcmljYWwtZmlsdGVyLXNldC1kb21haW4tdHlwZS1kZWZlcnJlZCcsXHJcblxyXG4gICAgLy8gU2V0IHdoZXRoZXIgZmlsdGVycyBhcHBseSB0byB0b3RhbHMgYXMgd2VsbCBhcyBub24tdG90YWxzIHRhYmxlIGNhbGNzXHJcbiAgICBGaWx0ZXJBcHBseVRvVG90YWxUYWJsZUNhbGNzID0gJ2ZpbHRlci1hcHBseS10by10b3RhbC10YWJsZS1jYWxjcycsXHJcblxyXG4gICAgLy8gR2V0cyB0aGUgbGlzdCBvZiBmaWx0ZXJzIHVzZWQgaW4gYSB3b3Jrc2hlZXRcclxuICAgIEdldFdvcmtzaGVldEZpbHRlcnMgPSAnZ2V0LXdvcmtzaGVldC1maWx0ZXJzJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBkb21haW4gZm9yIGEgY2F0ZWdvcmljYWwgRmlsdGVyXHJcbiAgICBHZXRDYXRlZ29yaWNhbERvbWFpbiA9ICdnZXQtY2F0ZWdvcmljYWwtZG9tYWluJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBkb21haW4gZm9yIGEgcXVhbnRpdGF0aXZlIEZpbHRlclxyXG4gICAgR2V0UXVhbnRpdGF0aXZlRG9tYWluID0gJ2dldC1xdWFudGl0YXRpdmUtZG9tYWluJyxcclxuXHJcbiAgICAvLyBDcmVhdGVzIGEgZGF0YXNvdXJjZSBmaWx0ZXIgc3RvcmUgYW5kIHJldHVybnMgYSBsaXN0IG9mIHRoZSBjdXJyZW50IGRhdGFzb3VyY2UgZmlsdGVycy5cclxuICAgIENyZWF0ZURhdGFzb3VyY2VGaWx0ZXJTdG9yZSA9ICdjcmVhdGUtZGF0YXNvdXJjZS1maWx0ZXItc3RvcmUnLFxyXG5cclxuICAgIC8vIENvbW1pdHMgdGhlIHBlbmRpbmcgZGF0YXNvdXJjZSBmaWx0ZXIgY2hhbmdlcyBpbiB0aGUgZmlsdGVyIHN0b3JlLlxyXG4gICAgQ29tbWl0RGF0YXNvdXJjZUZpbHRlclN0b3JlID0gJ2NvbW1pdC1kYXRhc291cmNlLWZpbHRlci1zdG9yZScsXHJcblxyXG4gICAgLy8gR2V0cyB0aGUgbGlzdCBvZiBkYXRhc291cmNlIGZpZWxkcyB0aGF0IGNhbiBiZSBmaWx0ZXJlZC5cclxuICAgIEdldERhdGFzb3VyY2VGaWx0ZXJGaWVsZFBpY2tlck1vZGVsID0gJ2dldC1kYXRhc291cmNlLWZpbHRlci1maWVsZC1waWNrZXItbW9kZWwnLFxyXG5cclxuICAgIC8vIEdldCBmaWVsZCBpbmZvcm1hdGlvbiBuZWVkZWQgZm9yIGNyZWF0aW5nIGEgZGF0YXNvdXJjZSBmaWx0ZXIuXHJcbiAgICBHZXREYXRhc291cmNlRmlsdGVyRmllbGRJbmZvID0gJ2dldC1kYXRhc291cmNlLWZpbHRlci1maWVsZC1pbmZvJyxcclxuXHJcbiAgICAvLyBHZXRzIGEgZmlsdGVyIHByZXNlbnRhdGlvbiBtb2RlbCBmb3JtIGEgZmlsdGVyIHN0b3JlLlxyXG4gICAgR2V0RmlsdGVyRnJvbVN0b3JlID0gJ2dldC1maWx0ZXItZnJvbS1zdG9yZScsXHJcblxyXG4gICAgLy8gUmVtb3ZlcyBhIGZpbHRlciBmcm9tIGEgZmlsdGVyIHN0b3JlLlxyXG4gICAgUmVtb3ZlRmlsdGVyRnJvbVN0b3JlID0gJ3JlbW92ZS1maWx0ZXItZnJvbS1zdG9yZScsXHJcblxyXG4gICAgLy8gUmVsZWFzZXMgYSBmaWx0ZXIgc3RvcmUsIGFuZCBpdHMgcmVzb3VyY2VzLCBvbmNlIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuXHJcbiAgICBSZWxlYXNlRmlsdGVyU3RvcmUgPSAncmVsZWFzZS1maWx0ZXItc3RvcmUnLFxyXG5cclxuXHJcbiAgICAvLyBcclxuICAgIEdldEhpZ2hsaWdodGVkRGF0YSA9ICdnZXQtaGlnaGxpZ2h0ZWQtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTZWxlY3Rpb25EYXRhID0gJ2dldC1zZWxlY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2VsZWN0ID0gJ3NlbGVjdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZWxlY3RBbGwgPSAnc2VsZWN0LWFsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZWxlY3RCeVZhbHVlID0gJ3NlbGVjdC1ieS12YWx1ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZWxlY3ROb25lSW5jbHVkaW5nTWFzdGVyID0gJ3NlbGVjdC1ub25lLWluY2x1ZGluZy1tYXN0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkTWFudWFsSXRlbXNUb0ZpbHRlciA9ICdhZGQtbWFudWFsLWl0ZW1zLXRvLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYXRlZ29yaWNhbEZpbHRlciA9ICdjYXRlZ29yaWNhbC1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXJCeUluZGV4ID0gJ2NhdGVnb3JpY2FsLWZpbHRlci1ieS1pbmRleCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VTaGFyZWRGaWx0ZXIgPSAnY2hhbmdlLXNoYXJlZC1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJDb250ZXh0RmlsdGVycyA9ICdjbGVhci1jb250ZXh0LWZpbHRlcnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJFeGlzdGluZ0ZpbHRlciA9ICdjbGVhci1leGlzdGluZy1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVmYXVsdEZpbHRlciA9ICdkZWZhdWx0LWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJHZW8gPSAnZmlsdGVyLWdlbycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJOZWcgPSAnZmlsdGVyLW5lZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJOdWxscyA9ICdmaWx0ZXItbnVsbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmlsdGVyVGFyZ2V0cyA9ICdmaWx0ZXItdGFyZ2V0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTaGFyZWRGaWx0ZXJQcmVzTW9kZWwgPSAnZ2V0LXNoYXJlZC1maWx0ZXItcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWVyYXJjaGljYWxGaWx0ZXIgPSAnaGllcmFyY2hpY2FsLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBLZWVwT25seU9yRXhjbHVkZSA9ICdrZWVwLW9ubHktb3ItZXhjbHVkZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSYW5nZUZpbHRlciA9ICdyYW5nZS1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVsRGF0ZUZpbHRlciA9ICdyZWxhdGl2ZS1kYXRlLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldEZpbHRlciA9ICdyZXNldC1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0dlb0F0RGVmYXVsdCA9ICdzaG93LWdlby1hdC1kZWZhdWx0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dTVkF0RGVmYXVsdCA9ICdzaG93LXN2LWF0LWRlZmF1bHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlTG9ja1F1aWNrRmlsdGVycyA9ICd0b2dnbGUtbG9jay1xdWljay1maWx0ZXJzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZERhdGFDb25uZWN0aW9uID0gJ2FkZC1kYXRhLWNvbm5lY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkRHJpbGxQYXRoID0gJ2FkZC1kcmlsbC1wYXRoJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZENyZWRlbnRpYWxzRnJvbUtleWNoYWluID0gJ2FkZC1jcmVkZW50aWFscy1mcm9tLWtleWNoYWluJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZENyZWRlbnRpYWxzRnJvbUtleWNoYWluRmlsZSA9ICdhZGQtY3JlZGVudGlhbHMtZnJvbS1rZXljaGFpbi1maWxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZEZpZWxkRm9sZGVyID0gJ2FkZC1maWVsZC1mb2xkZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkU3VidG90YWxzID0gJ2FkZC1zdWJ0b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9EcmlsbFBhdGggPSAnYWRkLXRvLWRyaWxsLXBhdGgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9GaWVsZEZvbGRlciA9ICdhZGQtdG8tZmllbGQtZm9sZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFnZ3JlZ2F0ZU1lYXN1cmVzRmxhZyA9ICdhZ2dyZWdhdGUtbWVhc3VyZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQXBwbHlDYWxjdWxhdGlvbiA9ICdhcHBseS1jYWxjdWxhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBcHBseVBhZ2VTZXR1cE9wdGlvbnMgPSAnYXBwbHktcGFnZS1zZXR1cC1vcHRpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFwcGx5VGFibGVPcHRpb25zID0gJ2FwcGx5LXRhYmxlLW9wdGlvbnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQXBwbHlUeXBlSW5QaWxsID0gJ2FwcGx5LXR5cGUtaW4tcGlsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBc3NlcnQgPSAnYXNzZXJ0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEF0dGVtcHRDb25uZWN0RGF0YVNvdXJjZXNPblNoZWV0ID0gJ2F0dGVtcHQtY29ubmVjdC1kYXRhc291cmNlcy1vbi1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0Q29ubmVjdFdvcmtib29rID0gJ2F0dGVtcHQtY29ubmVjdC13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0RGF0YVNvdXJjZXNDb25uZWN0aW9uID0gJ2F0dGVtcHQtZGF0YXNvdXJjZXMtY29ubmVjdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdXRvVXBkYXRlcyA9ICdhdXRvLXVwZGF0ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBCcnVzaCA9ICdoaWdobGlnaHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQnJ1c2hTcGVjaWFsID0gJ2hpZ2hsaWdodC1zcGVjaWFsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRGF0YVNjaGVtYURhdGFTb3VyY2VDb250ZXh0TWVudSA9ICdidWlsZC1kYXRhLXNjaGVtYS1kYXRhLXNvdXJjZS1jb250ZXh0LW1lbnUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQnVpbGREYXRhU2NoZW1hQ29udGV4dE1lbnUgPSAnYnVpbGQtZGF0YS1zY2hlbWEtY29udGV4dC1tZW51JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRGF0YVNjaGVtYUZpZWxkQ29udGV4dE1lbnUgPSAnYnVpbGQtZGF0YS1zY2hlbWEtZmllbGQtY29udGV4dC1tZW51JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRGF0YVNjaGVtYURyaWxsUGF0aENvbnRleHRNZW51ID0gJ2J1aWxkLWRhdGEtc2NoZW1hLWRyaWxsLXBhdGgtY29udGV4dC1tZW51JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEJ1aWxkRmlsZVRhYmxlSW5mb1ByZXNNb2RlbCA9ICdidWlsZC1maWxlLXRhYmxlLWluZm8tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBCdWlsZFNoZWV0VGFiQ29udGV4dE1lbnUgPSAnYnVpbGQtc2hlZXQtdGFiLWNvbnRleHQtbWVudScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYW5jZWxEYXRhU291cmNlUHJlc01vZGVsID0gJ2NhbmNlbC1kYXRhc291cmNlLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0QmluTWVyZ2VTcGxpdExhYmVsID0gJ2NhdGVnb3JpY2FsLWJpbi1tZXJnZS1zcGxpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYXRlZ29yaWNhbFF1aWNrRmlsdGVyRWRpdCA9ICdjYXRlZ29yaWNhbC1xdWljay1maWx0ZXItZWRpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDYXRlZ29yaWNhbFF1aWNrRmlsdGVyRXhjbHVkZVZhbHVlcyA9ICdjYXRlZ29yaWNhbC1xdWljay1maWx0ZXItZXhjbHVkZS12YWx1ZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlckluY2x1ZGVBbGxXaGVuRW1wdHkgPSAnY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLWluY2x1ZGUtYWxsLXdoZW4tZW1wdHknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlck1vZGUgPSAnY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2F0ZWdvcmljYWxRdWlja0ZpbHRlclBhdHRlcm4gPSAnY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLXBhdHRlcm4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlQWdncmVnYXRpb24gPSAnY2hhbmdlLWFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUFscGhhTGV2ZWwgPSAnY2hhbmdlLWFscGhhLWxldmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUJvcmRlciA9ICdjaGFuZ2UtYm9yZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUZpZWxkVHlwZSA9ICdjaGFuZ2UtZmllbGQtdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VGb3JlY2FzdENvbHVtblR5cGUgPSAnY2hhbmdlLWZvcmVjYXN0LWNvbHVtbi10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUhhbG8gPSAnY2hhbmdlLWhhbG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlTWFya2VycyA9ICdjaGFuZ2UtbWFya2VycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VTaXplID0gJ2NoYW5nZS1zaXplJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZVNoZWV0VGFiQ29sb3IgPSAnY2hhbmdlLXNoZWV0LXRhYi1jb2xvcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhckFsbEF4aXNSYW5nZXMgPSAnY2xlYXItYXhpcy1yYW5nZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJDYWxjTW9kZWwgPSAnY2xlYXItY2FsY3VsYXRpb24tbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJGaWx0ZXJzID0gJ2NsZWFyLWZpbHRlcnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJGb3JtYXR0aW5nID0gJ2NsZWFyLWZvcm1hdHRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJGdXR1cmUgPSAnY2xlYXItZnV0dXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsZWFyTGF5b3V0ID0gJ2NsZWFyLWxheW91dCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhclF1aWNrRmlsdGVyID0gJ2NsZWFyLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhclNvcnRzID0gJ2NsZWFyLXNvcnRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlQ29ubmVjdGlvbiA9ICdjbG9zZS1jb25uZWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlRGF0YVNvdXJjZSA9ICdjbG9zZS1kYXRhLXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkR29vZ2xlQW5hbHl0aWNzRGltZW5zaW9uID0gJ2Nvbm5lY3Rpb24tYWRkLWdvb2dsZS1hbmFseXRpY3MtZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25BZGRHb29nbGVBbmFseXRpY3NNZWFzdXJlID0gJ2Nvbm5lY3Rpb24tYWRkLWdvb2dsZS1hbmFseXRpY3MtbWVhc3VyZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkTmV3VGFibGUgPSAnY29ubmVjdGlvbi1hZGQtbmV3LXRhYmxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25BZGRDb2FsZXNjZSA9ICdjb25uZWN0aW9uLWFkZC1jb2FsZXNjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkUGl2b3QgPSAnY29ubmVjdGlvbi1hZGQtcGl2b3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkNvbnZlcnRUb1VuaW9uQW5kRWRpdCA9ICdjb25uZWN0aW9uLWNvbnZlcnQtdG8tdW5pb24tYW5kLWVkaXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkNvbnZlcnRUb1VuaW9uID0gJ2Nvbm5lY3Rpb24tY29udmVydC10by11bmlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdFVuaW9uID0gJ2Nvbm5lY3Rpb24tZWRpdC11bmlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkT3JFZGl0QmF0Y2hVbmlvbiA9ICdjb25uZWN0aW9uLWFkZC1vci1lZGl0LWJhdGNoLXVuaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25DaGFuZ2VUYWJsZVByb3BlcnR5ID0gJ2Nvbm5lY3Rpb24tY2hhbmdlLXRhYmxlLXByb3BlcnR5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Db3VudEVudGl0eSA9ICdjb25uZWN0aW9uLWNvdW50LWVudGl0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRGF0YVNlcnZlckZldGNoTW9yZURhdGFzb3VyY2VzID0gJ2Nvbm5lY3Rpb24tZGF0YXNlcnZlci1mZXRjaC1tb3JlLWRhdGFzb3VyY2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EYXRhU2VydmVyUHJvamVjdFNlbGVjdCA9ICdjb25uZWN0aW9uLWRhdGFzZXJ2ZXItY2hhbmdlLXNlbGVjdGVkLXByb2plY3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkRhdGFTZXJ2ZXJVcGRhdGVGZXRjaFBhcmFtZXRlcnMgPSAnY29ubmVjdGlvbi1kYXRhc2VydmVyLXVwZGF0ZS1mZXRjaC1wYXJhbWV0ZXJzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EYXRhU2VydmVyRmx1c2hDYWNoZSA9ICdjb25uZWN0aW9uLWRhdGFzZXJ2ZXItZmx1c2gtY2FjaGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkRlbGV0ZUFsbFRhYmxlcyA9ICdjb25uZWN0aW9uLWRlbGV0ZS1hbGwtdGFibGVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EZWxldGVUYWJsZSA9ICdjb25uZWN0aW9uLWRlbGV0ZS10YWJsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdEdvb2dsZUFuYWx5dGljc0FjY291bnQgPSAnY29ubmVjdGlvbi1lZGl0LWdvb2dsZS1hbmFseXRpY3MtYWNjb3VudCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdEdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZSA9ICdjb25uZWN0aW9uLWVkaXQtZ29vZ2xlLWFuYWx5dGljcy1kYXRlLXJhbmdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0R29vZ2xlQW5hbHl0aWNzTWVhc3VyZUdyb3VwID0gJ2Nvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLW1lYXN1cmUtZ3JvdXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblRvZ2dsZUdBUXVlcnlQYXJ0aXRpb25pbmcgPSAnY29ubmVjdGlvbi10b2dnbGUtZ2EtcXVlcnktcGFydGl0aW9uaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0R29vZ2xlQW5hbHl0aWNzUHJvcGVydHkgPSAnY29ubmVjdGlvbi1lZGl0LWdvb2dsZS1hbmFseXRpY3MtcHJvcGVydHknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkVkaXRHb29nbGVBbmFseXRpY3NWaWV3ID0gJ2Nvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLXZpZXcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkVkaXRHb29nbGVBbmFseXRpY3NTZWdtZW50ID0gJ2Nvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLXNlZ21lbnQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkVkaXRKb2luQ2xhdXNlcyA9ICdjb25uZWN0aW9uLWVkaXQtam9pbi1jbGF1c2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0Sm9pblR5cGUgPSAnY29ubmVjdGlvbi1lZGl0LWpvaW4tdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdFNRTFRleHQgPSAnY29ubmVjdGlvbi1lZGl0LXNxbC10ZXh0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25GZXRjaEVudGl0eSA9ICdjb25uZWN0aW9uLWZldGNoLWVudGl0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2V0Rm9yY2VFeHRyYWN0UmVmcmVzaCA9ICdjb25uZWN0aW9uLXNldC1mb3JjZS1leHRyYWN0LXJlZnJlc2gnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblByZXBhcmVEYXRhU291cmNlRm9yRWRpdCA9ICdjb25uZWN0aW9uLXByZXBhcmUtZGF0YXNvdXJjZS1mb3ItZWRpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQ2xlYXJSZWZyZXNoQXR0cmlidXRlcyA9ICdjb25uZWN0aW9uLWNsZWFyLXJlZnJlc2gtYXR0cmlidXRlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVtb3ZlR29vZ2xlQW5hbHl0aWNzRGltZW5zaW9uID0gJ2Nvbm5lY3Rpb24tcmVtb3ZlLWdvb2dsZS1hbmFseXRpY3MtZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25SZW1vdmVHb29nbGVBbmFseXRpY3NNZWFzdXJlID0gJ2Nvbm5lY3Rpb24tcmVtb3ZlLWdvb2dsZS1hbmFseXRpY3MtbWVhc3VyZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVtb3ZlQ29hbGVzY2UgPSAnY29ubmVjdGlvbi1yZW1vdmUtY29hbGVzY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblJlbW92ZVBpdm90ID0gJ2Nvbm5lY3Rpb24tcmVtb3ZlLXBpdm90JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25BZGREYXRlUGFyc2VGb3JtYXRzID0gJ2Nvbm5lY3Rpb24tYWRkLWRhdGUtcGFyc2UtZm9ybWF0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVuYW1lVGFibGUgPSAnY29ubmVjdGlvbi1yZW5hbWUtdGFibGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblJlcGxhY2VSZWxhdGlvbldpdGhTUUxUZXh0ID0gJ2Nvbm5lY3Rpb24tcmVwbGFjZS1yZWxhdGlvbi13aXRoLXNxbC10ZXh0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25SZXBsYWNlVGFibGUgPSAnY29ubmVjdGlvbi1yZXBsYWNlLXRhYmxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25SZXNldFRhYmxlQWxpYXMgPSAnY29ubmVjdGlvbi1yZXNldC10YWJsZS1hbGlhcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VsZWN0Q2F0YWxvZyA9ICdjb25uZWN0aW9uLXNlbGVjdC1jYXRhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWxlY3RDdWJlID0gJ2Nvbm5lY3Rpb24tc2VsZWN0LWN1YmUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblNlbGVjdFN0b3JlZFByb2NlZHVyZSA9ICdjb25uZWN0aW9uLXNlbGVjdC1zdG9yZWQtcHJvY2VkdXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWxlY3RCaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94ID0gJ2Nvbm5lY3Rpb24tc2VsZWN0LWJpZ3F1ZXJ5LWxlZ2FjeS1jaGVjaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uVG9nZ2xlSGFzSGVhZGVyUm93ID0gJ2Nvbm5lY3Rpb24tdG9nZ2xlLWhhcy1oZWFkZXItcm93JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Ub2dnbGVUYWJsZUNsZWFuaW5nID0gJ2Nvbm5lY3Rpb24tdG9nZ2xlLXRhYmxlLWNsZWFuaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Ub2dnbGVVc2VFeHRyYWN0ID0gJ2Nvbm5lY3Rpb24tdG9nZ2xlLXVzZS1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25WaWV3VGFibGVDbGVhbmluZ1Jlc3VsdHMgPSAnY29ubmVjdGlvbi12aWV3LXRhYmxlLWNsZWFuaW5nLXJlc3VsdHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdFRvRGF0YVNlcnZlclNvdXJjZSA9ICdjb25uZWN0LWRhdGEtc2VydmVyLWRhdGFzb3VyY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29uc2lkZXJaZXJvc0VtcHR5RmxhZyA9ICdjb25zaWRlci16ZXJvcy1lbXB0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VW5uYW1lZEZpZWxkcyA9ICdjb252ZXJ0LXVubmFtZWQtZmllbGRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyYXNoID0gJ2NyYXNoJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUFnZ3JlZ2F0ZVJvbGUgPSAnY3JlYXRlLWFnZ3JlZ2F0ZS1yb2xlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUNvbm5lY3Rpb24gPSAnY3JlYXRlLWNvbm5lY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlRGVmYXVsdFF1aWNrRmlsdGVyID0gJ2NyZWF0ZS1kZWZhdWx0LXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVUeXBlSW5QaWxsID0gJ2NyZWF0ZS10eXBlLWluLXBpbGwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3VzdG9tRGF0YUdyaWRGaWVsZE9yZGVyID0gJ2N1c3RvbS1kYXRhZ3JpZC1maWVsZC1vcmRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDdXN0b21EYXRlQWdncmVnYXRpb24gPSAnY3VzdG9tLWRhdGUtYWdncmVnYXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3VzdG9tU3BsaXRGaWVsZCA9ICdjdXN0b20tc3BsaXQtZmllbGQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVidWdBc3NlcnRpb24gPSAnZGVidWctYXNzZXJ0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlY3JlbWVudFBhcmFtZXRlclZhbHVlID0gJ2RlY3ItcGFyYW1ldGVyLXZhbHVlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlbGV0ZUZpZWxkcyA9ICdkZWxldGUtY2FsY3VsYXRpb24tZmllbGRzLWNvbW1hbmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVsZXRlU2hlZXQgPSAnZGVsZXRlLXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlc2NyaWJlRHJpbGxQYXRoID0gJ2Rlc2NyaWJlLWRyaWxsLXBhdGgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVTb3J0RmlsdGVyID0gJ2Rlc2NyaWJlLXNvcnQtZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERpc21pc3NOdWxsV2FydCA9ICdkaXNtaXNzLW51bGwtd2FydCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEb21haW5RdWlja0ZpbHRlciA9ICdkb21haW4tcXVpY2stZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERvdWJsZUZyZWVDcmFzaCA9ICdkb3VibGUtZnJlZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wTm93aGVyZSA9ICdkcm9wLW5vd2hlcmUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcE9uU2NoZW1hVmlld2VyID0gJ2Ryb3Atb24tc2NoZW1hLXZpZXdlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wT25TaGVsZiA9ICdkcm9wLW9uLXNoZWxmJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERyb3BPbkNhbGNFZGl0b3IgPSAnZHJvcC1vbi1jYWxjLWVkaXRvcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wT25TaG93TWUgPSAnZHJvcC1vbi1zaG93bWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcFByZXBhcmUgPSAnZHJvcC1wcmVwYXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIER1YWxBeGlzID0gJ2R1YWwtYXhpcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEdXBsaWNhdGVTaGVldCA9ICdkdXBsaWNhdGUtc2hlZXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdENvcHlDYWxjID0gJ2VkaXQtY29weS1jYWxjJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXREcm9wTGluZXMgPSAnZWRpdC1kcm9wLWxpbmVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRFbnVtZXJhdGVkR3JvdXAgPSAnZWRpdC1lbnVtZXJhdGVkLWdyb3VwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXROZXN0ZWRHcm91cCA9ICdlZGl0LW5lc3RlZC1ncm91cCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0UGlsbCA9ICdlZGl0LXBpbGwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFByaW1pdGl2ZVR5cGUgPSAnZWRpdC1wcmltaXRpdmUtdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbmFibGVBbGxCcnVzaGluZyA9ICdlbmFibGUtYWxsLWhpZ2hsaWdodHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRW5hYmxlUXVpY2tGaWx0ZXIgPSAnZW5hYmxlLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbmFibGVTaGVldEJydXNoaW5nID0gJ2VuYWJsZS1zaGVldC1oaWdobGlnaHRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVuYWJsZVRoZW1lZEJydXNoaW5nID0gJ2VuYWJsZS10aGVtZWQtaGlnaGxpZ2h0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbnVtZXJhdGVWYXJpYWJsZXMgPSAnZW51bWVyYXRlLXZhcmlhYmxlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFbnVtZXJhdGVWYXJpYWJsZVNlbGVjdGlvblZhbHVlcyA9ICdlbnVtZXJhdGUtdmFyaWFibGUtc2VsZWN0aW9uLXZhbHVlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFc3RhYmxpc2hDb25uZWN0aW9uID0gJ2VzdGFibGlzaC1jb25uZWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVzdGFibGlzaE1hdGNoaW5nQ29ubmVjdGlvbnMgPSAnZXN0YWJsaXNoLW1hdGNoaW5nLWNvbm5lY3Rpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4cG9ydERhdGFUb1RleHQgPSAnZXhwb3J0LWRhdGEtdG8tdGV4dCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHRTdmNDb25maWcgPSAnZXh0LXN2Yy1jb25maWcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXh0U3ZjQ29uZmlnQ29ubmVjdCA9ICdleHQtc3ZjLWNvbmZpZy1jb25uZWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4dHJhY3QgPSAnZXh0cmFjdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREYXRhR3JpZEN1cnJlbnRUYWJsZSA9ICdzZXQtZGF0YS1ncmlkLWN1cnJlbnQtdGFibGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmV0Y2hUYWJsZVJlbGV2YW5jZSA9ICdmZXRjaC10YWJsZS1yZWxldmFuY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmV0Y2hDYWNoZWRUYWJsZVJlbGV2YW5jZSA9ICdmZXRjaC1jYWNoZWQtdGFibGUtcmVsZXZhbmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZsaXBMYWJlbHMgPSAnZmxpcC1sYWJlbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmxvYXRpbmdUb29sYmFyID0gJ3pvb20tY29udHJvbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRmxvYXRpbmdUb29sYmFyVG9nZ2xlID0gJ3pvb20tY29udHJvbHMtdG9nZ2xlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcmVjYXN0Q29uZmlnID0gJ2ZvcmVjYXN0LWNvbmZpZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGb3JlY2FzdFRvZ2dsZSA9ICdmb3JlY2FzdC10b2dnbGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRm9ybWF0V29ya2Jvb2sgPSAnZm9ybWF0LXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdlb2dyYXBoaWNTZWFyY2hRdWVyeSA9ICdnZW9ncmFwaGljLXNlYXJjaC1xdWVyeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZW9ncmFwaGljU2VhcmNoTG9hZERhdGEgPSAnZ2VvZ3JhcGhpYy1zZWFyY2gtbG9hZC1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdlb2dyYXBoaWNTZWFyY2hJc0RhdGFEb25lTG9hZGluZyA9ICdnZW9ncmFwaGljLXNlYXJjaC1kYXRhLWRvbmUtbG9hZGluZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZW9ncmFwaGljU2VhcmNoVG9nZ2xlVmlzaWJpbGl0eSA9ICdnZW9ncmFwaGljLXNlYXJjaC10b2dnbGUtdmlzaWJpbGl0eScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRFZGl0Q29ubmVjdGlvblByZXNNb2RlbCA9ICdnZXQtZWRpdC1jb25uZWN0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RWRpdEVudW1lcmF0ZWRHcm91cFByZXNNb2RlbCA9ICdnZXQtZWRpdC1lbnVtZXJhdGVkLWdyb3VwLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RWRpdE5lc3RlZEdyb3VwUHJlc01vZGVsID0gJ2dldC1lZGl0LW5lc3RlZC1ncm91cC1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEZyYW1lRmluZGVyUHJlc01vZGVsID0gJ2dldC1mcmFtZS1maW5kZXItcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRHb29nbGVTaGVldHNMaXN0UHJlc01vZGVsID0gJ2dldC1nb29nbGUtc2hlZXRzLWxpc3QtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRHb29nbGVTaGVldFBhbmVQcmVzTW9kZWwgPSAnZ2V0LWdvb2dsZS1zaGVldC1wYW5lLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0SW5pdGlhbFNRTFByZXNNb2RlbCA9ICdnZXQtaW5pdGlhbC1zcWwtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRRdWVyeUJhbmRpbmdQcmVzTW9kZWwgPSAnZ2V0LXF1ZXJ5LWJhbmRpbmctcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUYWJiZWRBdXRoZW50aWNhdGlvblByZXNNb2RlbCA9ICdnZXQtdGFiYmVkLWF1dGhlbnRpY2F0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0QWN0aXZlU2hlZXQgPSAnZ2V0LWFjdGl2ZS1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRBbHBoYUxldmVsID0gJ2dldC1hbHBoYS1sZXZlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRBcHBDb25maWcgPSAnZ2V0LWFwcC1jb25maWcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGlzYWJsZWRTZWNvbmRhcnlEU0ZpZWxkcyA9ICdnZXQtZGlzYWJsZWQtc2Vjb25kYXJ5ZHMtZmllbGRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEJsZW5kaW5nRmllbGRzID0gJ2dldC1ibGVuZGluZy1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q2FsY3VsYXRpb25QcmVzTW9kZWwgPSAnZ2V0LWNhbGN1bGF0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q2F0ZWdvcmljYWxDb2xvciA9ICdnZXQtY2F0ZWdvcmljYWwtY29sb3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q2xpZW50SW5mbyA9ICdnZXQtY2xpZW50LWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q29tbWFuZHMgPSAnZ2V0LWNvbW1hbmRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldENvbm5lY3Rpb25EZXNjcmlwdGlvblByZXNNb2RlbCA9ICdnZXQtY29ubmVjdGlvbi1kZXNjcmlwdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERTRHJvcGRvd25QcmVzTW9kZWwgPSAnZ2V0LWRzLWRyb3Bkb3duLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGF0YVByZXZpZXdXaW5kb3dNZXNzYWdlUHJlc01vZGVsID0gJ2dldC1kYXRhLXByZXZpZXctd2luZG93LXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGF0YVNvdXJjZVByZXNNb2RlbCA9ICdnZXQtZGF0YXNvdXJjZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERhdGFTb3VyY2VTb3J0UHJlc01vZGVsID0gJ2dldC1kYXRhc291cmNlLXNvcnQtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREYXRhU291cmNlUHJvcGVydGllc1ByZXNNb2RlbCA9ICdnZXQtZGF0YXNvdXJjZS1wcm9wZXJ0aWVzLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Q29ubmVjdGlvblNldHRpbmdzUHJlc01vZGVsID0gJ2dldC1jb25uZWN0aW9uLXNldHRpbmdzLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGFzaGJvYXJkID0gJ2dldC1kYXNoYm9hcmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGF0YVByZXZpZXcgPSAnZ2V0LWRhdGEtcHJldmlldycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREYXRhYmFzZUVudW1lcmF0aW9uUHJlc01vZGVsID0gJ2dldC1kYXRhYmFzZS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERlZmF1bHRDb2xvciA9ICdnZXQtZGVmYXVsdC1jb2xvcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREZWZhdWx0U2hhcGUgPSAnZ2V0LWRlZmF1bHQtc2hhcGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RHJhZ1ByZXNNb2RlbEZvclRleHQgPSAnZ2V0LWRyYWctcHJlcy1tb2RlbC1mb3ItdGV4dCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXREcm9wVGFyZ2V0UHJlc01vZGVsID0gJ2dldC1kcm9wLXRhcmdldC1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEVkaXREYXRhU2VydmVyQ29ubmVjdGlvblByZXNNb2RlbCA9ICdnZXQtZWRpdC1kYXRhLXNlcnZlci1jb25uZWN0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RWRpdERyb3BMaW5lc01vZGVsID0gJ2dldC1lZGl0LWRyb3AtbGluZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RW5jb2RpbmdTdGF0ZSA9ICdnZXQtZW5jb2Rpbmctc3RhdGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RW5jb2RpbmdUeXBlTWVudU1vZGVsID0gJ2dldC1lbmNvZGluZy10eXBlLW1lbnUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RXh0U3ZjQ29uZmlnID0gJ2dldC1leHQtc3ZjLWNvbmZpZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRGb3JlY2FzdFByZXNNb2RlbCA9ICdnZXQtZm9yZWNhc3QtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRKb2luRGVzY3JpcHRpb25QcmVzTW9kZWwgPSAnZ2V0LWpvaW4tZGVzY3JpcHRpb24tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRRdWlja0ZpbHRlciA9ICdnZXQtcXVpY2stZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFF1aWNrRmlsdGVycyA9ICdnZXQtcXVpY2stZmlsdGVycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRSZWZlcmVuY2VMaW5lUHJlc01vZGVsID0gJ2dldC1yZWZlcmVuY2UtbGluZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFBhcmFtZXRlcnMgPSAnZ2V0LXBhcmFtZXRlcnMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0UGFyYW1ldGVyTW9kZWxzID0gJ2dldC1wYXJhbWV0ZXItbW9kZWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFBhcmFtZXRlcnNSZWdpc3RyeUluZm8gPSAnZ2V0LXBhcmFtcy1yZWdpc3RyeS1pbmZvJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFBpdm90UHJlc01vZGVsID0gJ2dldC1waXZvdC1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFNjZW5lID0gJ2dldC1zY2VuZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTY2hlbWFFbnVtZXJhdGlvblByZXNNb2RlbCA9ICdnZXQtc2NoZW1hLWVudW1lcmF0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hlZXRzSW5mbyA9ICdnZXQtc2hlZXRzLWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hvd01lID0gJ2dldC1zaG93LW1lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFN0YW5kYXJkQ29ubmVjdGlvbkVudW1lcmF0aW9uUHJlc01vZGVsID0gJ2dldC1zdGFuZGFyZC1jb25uZWN0aW9uLWVudW1lcmF0aW9uLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U3RvcmVkUHJvY2VkdXJlRW51bWVyYXRpb25QcmVzTW9kZWwgPSAnZ2V0LXN0b3JlZC1wcm9jZWR1cmUtZW51bWVyYXRpb24tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJzUHJlc01vZGVsID0gJ2dldC1zdG9yZWQtcHJvY2VkdXJlLXBhcmFtZXRlcnMtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUYWJsZUVudW1lcmF0aW9uUHJlc01vZGVsID0gJ2dldC10YWJsZS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFRhYmxlQ2xlYW5pbmdQcmVzTW9kZWwgPSAnZ2V0LXRhYmxlLWNsZWFuaW5nLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VGFyZ2V0RmllbGRMaXN0ID0gJ2dldC10YXJnZXQtZmllbGQtbGlzdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUb3BMZXZlbENvbm5lY3Rpb25EZXNjcmlwdGlvblByZXNNb2RlbCA9ICdnZXQtdG9wLWxldmVsLWNvbm5lY3Rpb24tZGVzY3JpcHRpb24tcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRUeXBlSW5QaWxsUHJlc01vZGVsID0gJ2dldC10eXBlLWluLXBpbGwtcHJlcy1tb2RlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRVYmVyVGlwUHJlc01vZGVsID0gJ2dldC11YmVydGlwLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VW5pb25JbmZvUHJlc01vZGVsID0gJ2dldC11bmlvbi1pbmZvLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VmlzdWFsID0gJ2dldC12aXN1YWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0Vml6RGF0YSA9ICdnZXQtdml6LWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0V2FyZWhvdXNlRW51bWVyYXRpb25QcmVzTW9kZWwgPSAnZ2V0LXdhcmVob3VzZS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFdvcmtib29rID0gJ2dldC13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRXb3JsZFVwZGF0ZSA9ICdnZXQtd29ybGQtdXBkYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdvVG9TaGVldCA9ICdnb3RvLXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEhlYXBDb3JydXB0aW9uQ3Jhc2ggPSAnY29ycnVwdC1oZWFwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEhpZGVDb2x1bW5GaWVsZExhYmVsID0gJ2hpZGUtY29sdW1uLWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEhpZGVFbXB0eUNvbHNGbGFnID0gJ2hpZGUtZW1wdHktY29scycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlRW1wdHlSb3dzRmxhZyA9ICdoaWRlLWVtcHR5LXJvd3MnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZUxhYmVsID0gJ2hpZGUtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZVJvd0ZpZWxkTGFiZWwgPSAnaGlkZS1yb3ctZmllbGQtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGllcmFyY2hpY2FsUXVpY2tGaWx0ZXJVcGRhdGVTZXRGdW5jdGlvbiA9ICdoaWVyYXJjaGljYWwtcXVpY2stZmlsdGVyLXVwZGF0ZS1zZXQtZnVuY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW5jbHVkZUluVG9vbHRpcCA9ICdpbmNsdWRlLWluLXRvb2x0aXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW5jbHVkZU90aGVyQ2F0ZWdvcmljYWxCaW4gPSAnaW5jbHVkZS1vdGhlci1jYXQtYmluJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEluY3JlbWVudEV4dHJhY3QgPSAnaW5jcmVtZW50LWV4dHJhY3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW5jcmVtZW50UGFyYW1ldGVyVmFsdWUgPSAnaW5jci1wYXJhbWV0ZXItdmFsdWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlQ2FsYyA9ICdjcmVhdGUtY2FsYycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q2FsYyA9ICdlZGl0LWNhbGMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSW52b2tlSHlwZXJsaW5rID0gJ2ludm9rZS1oeXBlcmxpbmsnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgS2VlcE9ubHlPckV4Y2x1ZGVTZWxlY3Rpb24gPSAna2VlcC1vbmx5LW9yLWV4Y2x1ZGUtc2VsZWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIExhYmVsRHJpbGwgPSAnbGFiZWwtZHJpbGwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTGFiZWxEcmlsbEN0eCA9ICdsYWJlbC1kcmlsbC1jdHgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTGV2ZWxEcmlsbCA9ICdsZXZlbC1kcmlsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBMb2FkVXJsID0gJ2xvYWQtdXJsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIExpc3RQdWJsaXNoZWREYXRhU291cmNlcyA9ICdsaXN0LXB1Ymxpc2hlZC1kYXRhc291cmNlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYXJrTGFiZWwgPSAnbWFyay1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYXJrVHJhaWwgPSAnbWFyay10cmFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNZW1vcnlEdW1wT2JqZWN0Q291bnRzID0gJ21lbW9yeS1kdW1wLW9iamVjdC1jb3VudHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTWVtb3J5TGVhayA9ICdtZW1vcnktbGVhaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNZXJnZSA9ICdtZXJnZS1vci1zcGxpdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNaWdyYXRlRGF0YVNvdXJjZSA9ICdtaWdyYXRlLWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vZGlmeU1hcmtzSW5TZXQgPSAnYWRkLW9yLXJlbW92ZS1tYXJrcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNb3ZlQXJlYUFubm90YXRpb25UZXh0ID0gJ21vdmUtYXJlYS1hbm5vdGF0aW9uLXRleHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTW92ZUNvbHVtblRvdGFscyA9ICdtb3ZlLWNvbHVtbi10b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTW92ZU1hcmsgPSAnbW92ZS1tYXJrJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vdmVQb2ludEFubm90YXRpb24gPSAnbW92ZS1wb2ludC1hbm5vdGF0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vdmVQb2ludEFubm90YXRpb25UYXJnZXQgPSAnbW92ZS1wb2ludC1hbm5vdGF0aW9uLXRhcmdldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNb3ZlUmVmZXJlbmNlTGluZSA9ICdtb3ZlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1vdmVSb3dUb3RhbHMgPSAnbW92ZS1yb3ctdG90YWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5hdmlnYXRlVG9TaGVldCA9ICduYXZpZ2F0ZS10by1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQb3N0Q2FsY0pvaW5DbGF1c2VSZXN1bHQgPSAncG9zdC1jYWxjLWpvaW4tY2xhdXNlLXJlc3VsdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOZXdEb2NEYXNoYm9hcmQgPSAnbmV3LWRhc2hib2FyZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOZXdEb2NXb3Jrc2hlZXQgPSAnbmV3LXdvcmtzaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOb25SYW5nZWRSZW1vdmVSZWZlcmVuY2VMaW5lID0gJ25vbi1yYW5nZWQtcmVtb3ZlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wdGltaXplRXh0cmFjdCA9ICdvcHRpbWl6ZS1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wdE91dEFjdGlvbnMgPSAnb3B0LW91dC1hY3Rpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhZ2VIaXN0b3J5U2V0dGluZ3MgPSAncGFnZS1oaXN0b3J5LXNldHRpbmdzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhZ2VUb2dnbGVUcmFpbHMgPSAncGFnZS10b2dnbGUtdHJhaWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhcnNlVUlOYW1lID0gJ3BhcnNlLXVpLW5hbWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGVyY2VudGFnZXMgPSAncGVyY2VudGFnZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGVyc3BlY3RpdmVzID0gJ3BlcnNwZWN0aXZlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQb3NpdGlvblBvaW50QW5ub3RhdGlvbiA9ICdwb3NpdGlvbi1wb2ludC1hbm5vdGF0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFByb3RvY29sUG9vbExvZyA9ICdwcm90b2NvbC1wb29sLWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQdWJsaXNoVG9Xb3JrZ3JvdXAgPSAncHVibGlzaC10by13b3JrZ3JvdXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFTb3VyY2UgPSAncHVibGlzaC1kYXRhc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFB1Ymxpc2hEYXRhU291cmNlRnJvbURhdGEgPSAncHVibGlzaC1kYXRhLXNvdXJjZS1mcm9tLWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFTb3VyY2VGcm9tV29ya2Jvb2tEYXRhID0gJ3B1Ymxpc2gtZGF0YS1zb3VyY2UtZnJvbS13b3JrYm9vay1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFF1YW50aXRhdGl2ZVF1aWNrRmlsdGVyRWRpdCA9ICdxdWFudGl0YXRpdmUtcXVpY2stZmlsdGVyLWVkaXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUXVhbnRpdGF0aXZlTW9kZVF1aWNrRmlsdGVyID0gJ3F1YW50aXRhdGl2ZS1tb2RlLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWVyeU1pZ3JhdGVEYXRhU291cmNlcyA9ICdxdWVyeS1taWdyYXRlLWRhdGEtc291cmNlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWlja1NvcnQgPSAncXVpY2stc29ydCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSYW5nZWRCeUluZGV4TWVyZ2UgPSAncmFuZ2VkLWJ5LWluZGV4LW1lcmdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJhbmdlZEJ5VmFsdWVNZXJnZSA9ICdyYW5nZWQtYnktdmFsdWUtbWVyZ2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVjb3JkID0gJ3JlY29yZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZWRvID0gJ3JlZG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVmcmVzaEV4dHJhY3QgPSAncmVmcmVzaC1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hGcm9tU291cmNlID0gJ3JlZnJlc2gtZnJvbS1zb3VyY2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVsYXRpdmVEYXRlUXVpY2tGaWx0ZXJFZGl0ID0gJ3JlbGF0aXZlLWRhdGUtcXVpY2stZmlsdGVyLWVkaXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlQWxsUmVmZXJlbmNlTGluZXMgPSAncmVtb3ZlLWFsbC1yZWZlcmVuY2UtbGluZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRHJpbGxQYXRoID0gJ3JlbW92ZS1kcmlsbC1wYXRoJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZUV4dHJhY3QgPSAncmVtb3ZlLWV4dHJhY3QnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRmllbGRGb2xkZXIgPSAncmVtb3ZlLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGaWVsZExhYmVsID0gJ3JlbW92ZS1maWVsZC1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGaWVsZHMgPSAncmVtb3ZlLWZpZWxkcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGaWVsZHNGcm9tU2hlbGYgPSAncmVtb3ZlLWZpZWxkcy1mcm9tLXNoZWxmJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZUZyb21EcmlsbFBhdGggPSAncmVtb3ZlLWZyb20tZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGcm9tRmllbGRGb2xkZXIgPSAncmVtb3ZlLWZyb20tZmllbGQtZm9sZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZVJlZmVyZW5jZUxpbmUgPSAncmVtb3ZlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZVN1YnRvdGFscyA9ICdyZW1vdmUtc3VidG90YWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZURhdGFTb3VyY2UgPSAncmVuYW1lLWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZURyaWxsUGF0aCA9ICdyZW5hbWUtZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW5hbWVGaWVsZEZvbGRlciA9ICdyZW5hbWUtZmllbGQtZm9sZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZVNoZWV0ID0gJ3JlbmFtZS1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW9yZGVyTGFiZWxzID0gJ3Jlb3JkZXItbGFiZWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlcG9ydEJ1ZyA9ICdyZXBvcnQtYnVnJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlcXVlc3REYXRhU291cmNlUHJlc01vZGVsID0gJ3JlcXVlc3QtZGF0YXNvdXJjZS1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0UGFyYW1ldGVyQ3RybFRpdGxlID0gJ3Jlc2V0LXBhcmFtZXRlci1jdHJsLXRpdGxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0VG9vbHRpcCA9ICdyZXNldC10b29sdGlwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2l6ZUFyZWFBbm5vdGF0aW9uVGV4dCA9ICdyZXNpemUtYXJlYS1hbm5vdGF0aW9uLXRleHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzaXplQXhpcyA9ICdyZXNpemUtYXhpcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNpemVDZWxsID0gJ3Jlc2l6ZS1jZWxsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2l6ZUhlYWRlciA9ICdyZXNpemUtaGVhZGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2l6ZVBvaW50QW5ub3RhdGlvbiA9ICdyZXNpemUtcG9pbnQtYW5ub3RhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXZlcnQgPSAncmV2ZXJ0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJvdGF0ZUZpZWxkTGFiZWwgPSAncm90YXRlLWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJvdGF0ZUxhYmVsID0gJ3JvdGF0ZS1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTcGxpdEZpZWxkTGFiZWwgPSAnc3BsaXQtZmllbGQtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUnVuQWN0aW9uID0gJ3J1bi1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUnVuU2NyaXB0ID0gJ3J1bi1zY3JpcHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUnVuVXBkYXRlcyA9ICdydW4tdXBkYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVNb2RlbCA9ICdzYXZlLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVQdWJsaXNoZWREU3RvRmlsZSA9ICdzYXZlLXB1Ymxpc2hlZC1kcy10by1maWxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNlbGVjdERhdGFTb3VyY2UgPSAnc2VsZWN0LWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNlbGVjdEZpZWxkc0luU2hlbGYgPSAnc2VsZWN0LWZpZWxkcy1pbi1zaGVsZicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZW5kRGF0YUNvbm5lY3Rpb25UYWJsZVZpZXdNZXNzYWdlID0gJ3NlbmQtZGF0YS1jb25uZWN0aW9uLXRhYmxldmlldy1tZXNzYWdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEFjdGl2ZURhdGFTb3VyY2VOYW1lID0gJ3NldC1hY3RpdmUtZGF0YS1zb3VyY2UtbmFtZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRBY3RpdmVDb25uZWN0aW9uTmFtZSA9ICdzZXQtYWN0aXZlLWNvbm5lY3Rpb24tbmFtZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRBY3RpdmVEYXRhU291cmNlID0gJ3NldC1hY3RpdmUtZGF0YXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRCYXNlUGFsZXR0ZSA9ICdzZXQtYmFzZS1wYWxldHRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldENhdGVnb3JpY2FsQ29sb3IgPSAnc2V0LWNhdGVnb3JpY2FsLWNvbG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhdGFDYWNoZURlbHRhID0gJ3NldC1kYXRhLWNhY2hlLWRlbHRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhdGFQcmV2aWV3QXV0b1VwZGF0ZSA9ICdzZXQtZGF0YS1wcmV2aWV3LWF1dG8tdXBkYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhdGFQcmV2aWV3Q3VzdG9tRmllbGRPcmRlciA9ICdzZXQtZGF0YS1wcmV2aWV3LWN1c3RvbS1maWVsZC1vcmRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0Q29sb3IgPSAnc2V0LWRlZmF1bHQtY29sb3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RGVmYXVsdFNoYXBlID0gJ3NldC1kZWZhdWx0LXNoYXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEZpbHRlckNvbnRleHQgPSAnc2V0LWZpbHRlci1jb250ZXh0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEZpbHRlclNoYXJlZCA9ICdzZXQtZmlsdGVyLXNoYXJlZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRJbml0aWFsU1FMID0gJ3NldC1pbml0aWFsLXNxbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRJdGVtQ29sb3IgPSAnc2V0LWl0ZW0tY29sb3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0SXRlbUNvbG9yUmVzZXRDdXN0b21pemF0aW9uID0gJ3NldC1pdGVtLWNvbG9yLXJlc2V0LWN1c3RvbWl6YXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0SXRlbUVuY29kaW5nVHlwZSA9ICdzZXQtaXRlbS1lbmNvZGluZy10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldE1hcmtTaXplID0gJ3NldC1tYXJrLXNpemUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UGFnZU5hdkZsYWcgPSAnc2V0LXBhZ2UtZmxhZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRQYXJhbWV0ZXJDdHJsRGlzcGxheUZsYWdzID0gJ3NldC1wYXJhbWV0ZXItY3RybC1kaXNwbGF5LWZsYWdzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFBhcmFtZXRlckN0cmxEaXNwbGF5TW9kZSA9ICdzZXQtcGFyYW1ldGVyLWN0cmwtZGlzcGxheS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFBhcmFtZXRlckN0cmxUaXRsZSA9ICdzZXQtcGFyYW1ldGVyLWN0cmwtdGl0bGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UGFyYW1ldGVyVmFsdWUgPSAnc2V0LXBhcmFtZXRlci12YWx1ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRQcmltaXRpdmUgPSAnc2V0LXByaW1pdGl2ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRRdWVyeUJhbmRpbmcgPSAnc2V0LXF1ZXJ5LWJhbmRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UXVpY2tGaWx0ZXJJbmNsdWRlZFZhbHVlcyA9ICdzZXQtcXVpY2stZmlsdGVyLWluY2x1ZGVkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJlZmVyZW5jZUxpbmVGb3JtdWxhID0gJ3NldC1yZWZlcmVuY2UtbGluZS1mb3JtdWxhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJlZmVyZW5jZUxpbmVDb25zdGFudFZhbHVlID0gJ3NldC1yZWZlcmVuY2UtbGluZS1jb25zdGFudC12YWx1ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRTaGVldEZvcm1hdHRpbmcgPSAnc2V0LXNoZWV0LWZvcm1hdHRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0U2hlZXRTaXplID0gJ3NldC1zaGVldC1zaXplJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFRvdGFsc1R5cGUgPSAnc2V0LXRvdGFscy10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFdvcmtib29rTG9jYWxlID0gJ3NldC13b3JrYm9vay1sb2NhbGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0NhdEN0cmxRdWlja0ZpbHRlciA9ICdzaG93LWNhdC1jdHJsLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93Q29sRmllbGROYW1lc0ZsYWcgPSAnc2hvdy1jb2wtZmllbGQtbmFtZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0NvbFRvdGFsc0ZsYWcgPSAnc2hvdy1jb2wtdG90YWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dDb2x1bW5GaWVsZExhYmVsID0gJ3Nob3ctY29sdW1uLWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dFbXB0eUNvbHNGbGFnID0gJ3Nob3ctZW1wdHktY29scycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RW1wdHlSb3dzRmxhZyA9ICdzaG93LWVtcHR5LXJvd3MnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0ZvcmVjYXN0RWRpdG9yID0gJ3Nob3ctZm9yZWNhc3QtZWRpdG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dGdWxsUmFuZ2UgPSAnc2hvdy1mdWxsLXJhbmdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dIZWFkZXIgPSAnc2hvdy1oZWFkZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0hpZGRlbkRhdGEgPSAnc2hvdy1oaWRkZW4tZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWUgPSAnc2hvdy1tZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UXVhbnRDdHJsUXVpY2tGaWx0ZXIgPSAnc2hvdy1xdWFudC1jdHJsLXF1aWNrLWZpbHRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UXVpY2tGaWx0ZXJEb2MgPSAnc2hvdy1xdWlja2ZpbHRlci1kb2MnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1JlZmVyZW5jZUxpbmVFZGl0b3IgPSAnc2hvdy1yZWZlcmVuY2UtbGluZS1lZGl0b3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1JlZmVyZW5jZUxpbmVDb25zdGFudFZhbHVlRWRpdG9yID0gJ3Nob3ctcmVmZXJlbmNlLWxpbmUtY29uc3RhbnQtdmFsdWUtZWRpdG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dSZWZlcmVuY2VMaW5lRm9ybWF0dGVyID0gJ3Nob3ctcmVmZXJlbmNlLWxpbmUtZm9ybWF0dGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dSb3dGaWVsZExhYmVsID0gJ3Nob3ctcm93LWZpZWxkLWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dSb3dGaWVsZE5hbWVzRmxhZyA9ICdzaG93LXJvdy1maWVsZC1uYW1lcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93Um93VG90YWxzRmxhZyA9ICdzaG93LXJvdy10b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2ltcGxlQ29tbWFuZExpc3QgPSAnc2ltcGxlLWNvbW1hbmQtbGlzdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTbGVlcCA9ICdzbGVlcCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTbGVlcEJhY2tncm91bmRUaHJlYWQgPSAnc2xlZXAtYmFja2dyb3VuZC10aHJlYWQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU29ydERhdGFHcmlkQnlDb2x1bW4gPSAnc29ydC1kYXRhZ3JpZC1ieS1jb2x1bW4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU29ydERhdGFHcmlkRmllbGRzID0gJ3NvcnQtZGF0YWdyaWQtZmllbGRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNwZWNpYWxWYWx1ZXMgPSAnc3BlY2lhbC12YWx1ZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3BsaXRGaWVsZCA9ICdzcGxpdC1maWVsZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTdGFja01hcmtzID0gJ3N0YWNrLW1hcmtzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN0YWNrT3ZlcmZsb3dDcmFzaCA9ICdzdGFjay1vdmVyZmxvdycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTdWJ0b3RhbEFnZ3JlZ2F0aW9uID0gJ3N1YnRvdGFsLWFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN1YnRvdGFscyA9ICdzdWJ0b3RhbHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3dhcEZpZWxkcyA9ICdzd2FwLWZpZWxkcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTd2FwUm93c0FuZENvbHVtbnMgPSAnc3dhcC1yb3dzLWFuZC1jb2x1bW5zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRhYmxlYXVFeGNlcHRpb24gPSAndGFibGVhdS1leGNlcHRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlRHJvcExpbmVzID0gJ3RvZ2dsZS1kcm9wLWxpbmVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZUZpZWxkQmxlbmRpbmcgPSAndG9nZ2xlLWZpZWxkLWJsZW5kaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZU1hcmtMYWJlbHMgPSAndG9nZ2xlLW1hcmstbGFiZWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVBhZ2VUaXRsZSA9ICd0b2dnbGUtcGFnZS10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVQYXJhbWV0ZXJDdHJsRGlzcGxheUZsYWcgPSAndG9nZ2xlLXBhcmFtZXRlci1jdHJsLWRpc3BsYXktZmxhZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVQYXJhbWV0ZXJDdHJsVGl0bGUgPSAndG9nZ2xlLXBhcmFtZXRlci1jdHJsLXRpdGxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVF1aWNrRmlsdGVyVGl0bGUgPSAndG9nZ2xlLXF1aWNrLWZpbHRlci10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVWaXpOYXZpZ2F0aW9uU2V0dGluZyA9ICd0b2dnbGUtdml6LW5hdmlnYXRpb24tc2V0dGluZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVbmRvID0gJ3VuZG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVW5oaWRlRGF0YSA9ICd1bmhpZGUtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVbmhpZGVMYWJlbCA9ICd1bmhpZGUtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlQXJlYUFubm90YXRpb24gPSAndXBkYXRlLWFyZWEtYW5ub3RhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVcGRhdGVDYWxjU2NvcGVJc29sYXRpb24gPSAndXBkYXRlLXNjb3BlLWlzb2xhdGlvbi1mb3ItY2FsY3VsYXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlRGF0YVNlcnZlckNvbm5lY3Rpb25JbmZvID0gJ3VwZGF0ZS1kYXRhLXNlcnZlci1jb25uZWN0aW9uLWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlUG9pbnRBbm5vdGF0aW9uUHVsbGJhY2sgPSAndXBkYXRlLXBvaW50LWFubm90YXRpb24tcHVsbGJhY2snLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBkYXRlVGFibGVDYWxjSW5mbyA9ICd1cGRhdGUtdGFibGUtY2FsYy1pbmZvbWF0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVwZ3JhZGVFeHRyYWN0ID0gJ3VwZ3JhZGUtZXh0cmFjdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVc2VFeHRyYWN0ID0gJ3VzZS1leHRyYWN0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZhbGlkYXRlRHJpbGxQYXRoTmFtZSA9ICd2YWxpZGF0ZS1kcmlsbC1wYXRoLW5hbWUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmFsaWRhdGVGb3JtdWxhID0gJ3ZhbGlkYXRlLWZvcm11bGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmFsaWRhdGVJbml0aWFsU1FMID0gJ3ZhbGlkYXRlLWluaXRpYWwtc3FsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZhbGlkYXRlUXVlcnlCYW5kaW5nID0gJ3ZhbGlkYXRlLXF1ZXJ5LWJhbmRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmFsaWRhdGVUeXBlSW5QaWxsID0gJ3ZhbGlkYXRlLXR5cGUtaW4tcGlsbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3UGFyYW1ldGVyQ3RybHMgPSAndmlldy1wYXJhbS1jdHJscycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3UXVpY2tGaWx0ZXJzID0gJ3ZpZXctcXVpY2stZmlsdGVycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTY2hlbWEgPSAnZ2V0LXNjaGVtYScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTY2hlbWFWaWV3ZXJEYXRhU2NoZW1hID0gJ2dldC1zY2hlbWEtdmlld2VyLWRhdGEtc2NoZW1hJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbnZlcnRUb0RpbWVuc2lvbiA9ICdjb252ZXJ0LXRvLWRpbWVuc2lvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VG9NZWFzdXJlID0gJ2NvbnZlcnQtdG8tbWVhc3VyZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VG9Db250aW51b3VzID0gJ2NvbnZlcnQtdG8tY29udGludW91cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb252ZXJ0VG9EaXNjcmV0ZSA9ICdjb252ZXJ0LXRvLWRpc2NyZXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZUZpZWxkID0gJ3JlbmFtZS1maWVsZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlRmllbGQgPSAnaGlkZS1maWVsZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVbmhpZGVGaWVsZCA9ICd1bmhpZGUtZmllbGQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZVVudXNlZEZpZWxkcyA9ICdoaWRlLXVudXNlZC1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHVwbGljYXRlRmllbGRzID0gJ2R1cGxpY2F0ZS1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYW5WYWx1ZXMgPSAnY2xlYW4tdmFsdWVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhcnNlRGF0ZSA9ICdwYXJzZS1kYXRlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1ha2VEYXRlID0gJ21ha2UtZGF0ZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRRdWFsaWZ5TmFtZXMgPSAnc2V0LXF1YWxpZnktbmFtZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlTWVhc3VyZUZyb21Db2x1bW4gPSAnY3JlYXRlLW1lYXN1cmUtZnJvbS1jb2x1bW4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRnJvbVNjaGVtYURyaWxsUGF0aCA9ICdyZW1vdmUtZnJvbS1zY2hlbWEtZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUb1NjaGVtYURyaWxsUGF0aCA9ICdhZGQtdG8tc2NoZW1hLWRyaWxsLXBhdGgnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlU2NoZW1hRHJpbGxQYXRoID0gJ3JlbW92ZS1zY2hlbWEtZHJpbGwtcGF0aCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93SGlkZGVuRmllbGRzID0gJ3Nob3ctaGlkZGVuLWZpZWxkcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93QWxpYXNlcyA9ICdzaG93LWFsaWFzZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0Um93RGlzcGxheUNvdW50ID0gJ3NldC1yb3ctZGlzcGxheS1jb3VudCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93U3RydWN0dXJlID0gJ3Nob3ctc3RydWN0dXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdyb3VwQnlUYWJsZSA9ICdncm91cC1ieS10YWJsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VEYXRhVHlwZSA9ICdjaGFuZ2UtZGF0YS10eXBlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZVBpdm90U3RyYXRlZ3kgPSAnY2hhbmdlLXBpdm90LXN0cmF0ZWd5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZURpc3BsYXlBbGlhcyA9ICdjaGFuZ2UtZGlzcGxheS1hbGlhcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRJbmNsdWRlU2hhcmVkTWVtYmVycyA9ICdzZXQtaW5jbHVkZS1zaGFyZWQtbWVtYmVycycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRVdGlsaXR5RGltZW5zaW9uID0gJ3NldC11dGlsaXR5LWRpbWVuc2lvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0SGllcmFyY2h5ID0gJ3NldC1kZWZhdWx0LWhpZXJhcmNoeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEYXRhU291cmNlU29ydE9yZGVyID0gJ2RhdGEtc291cmNlLXNvcnQtb3JkZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJVdGlsaXR5RGltZW5zaW9uID0gJ2NsZWFyLXV0aWxpdHktZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsZWFyRGVmYXVsdFNvcnQgPSAnY2xlYXItZGVmYXVsdC1zb3J0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERlZmF1bHRBZ2dyZWdhdGlvbiA9ICdzZXQtZGVmYXVsdC1hZ2dyZWdhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0VlRBZ2dyZWdhdGlvbiA9ICdzZXQtZGVmYXVsdC12dGFnZ3JlZ2F0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUZpc2NhbFllYXIgPSAnY2hhbmdlLWZpc2NhbC15ZWFyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZVNlbWFudGljUm9sZSA9ICdjaGFuZ2Utc2VtYW50aWMtcm9sZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUb1NoZWV0ID0gJ2FkZC10by1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcm9wU2NoZW1hU2VsT25TaGVsZiA9ICdkcm9wLXNjaGVtYS1zZWwtb24tc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9TY2hlbWFGaWVsZEZvbGRlciA9ICdhZGQtdG8tc2NoZW1hLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVGcm9tU2NoZW1hRmllbGRGb2xkZXIgPSAncmVtb3ZlLWZyb20tc2NoZW1hLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVTY2hlbWFGaWVsZEZvbGRlciA9ICdyZW1vdmUtc2NoZW1hLWZpZWxkLWZvbGRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZWZhdWx0VGV4dEZvcm1hdCA9ICdkZWZhdWx0LXRleHQtZm9ybWF0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRTY2hlbWFDYXB0aW9uID0gJ2VkaXQtc2NoZW1hLWNhcHRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRTY2hlbWFDYXB0aW9uID0gJ3Jlc2V0LXNjaGVtYS1jYXB0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZU91dGxpZXJTZXQgPSAnY3JlYXRlLW91dGxpZXItc2V0JyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVUlDb21tYW5kcyB7XHJcblxyXG5cclxuICAgIC8vIFxyXG4gICAgQWJvdXQgPSAnYWJvdXQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkRGF0YVNlcnZlckRhdGFTb3VyY2VVSSA9ICdhZGQtZGF0YS1zZXJ2ZXItZGF0YXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTd2l0Y2hUb0RvY3VtZW50QW5kQWRkRGF0YVNlcnZlckRhdGFTb3VyY2VVSSA9ICdzd2l0Y2gtdG8tZG9jdW1lbnQtYW5kLWFkZC1kYXRhLXNlcnZlci1kcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGREcmlsbFBhdGhVSSA9ICdhZGQtZHJpbGxwYXRoLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZEZpZWxkRm9sZGVyVUkgPSAnYWRkLWZpZWxkLWZvbGRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRGaWxlVG9FeHRyYWN0VUkgPSAnYWRkLWZpbGUtdG8tZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGREYXRhU291cmNlVG9FeHRyYWN0VUkgPSAnYWRkLWRhdGEtc291cmNlLXRvLWV4dHJhY3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkUUNUb1NoZWV0VUkgPSAnYWRkLXFjLXRvLXNoZWV0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFkZFJlZmVyZW5jZUxpbmVVSSA9ICdhZGQtcmVmZXJlbmNlLWxpbmUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkU2NoZW1hRmllbGRGb2xkZXJVSSA9ICdhZGQtdG8tc2NoZW1hLWZpZWxkLWZvbGRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUYWJsZWF1U2VydmVyRFNDb25uZWN0aW9uVUkgPSAnYWRkLXRhYmxlYXUtc2VydmVyLWRzLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQWRkVG9TY2hlbWFEcmlsbFBhdGhVSSA9ICdhZGQtdG8tc2NoZW1hLWRyaWxscGF0aC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBZGRUb1NoZWV0VUkgPSAnYWRkLXRvLXNoZWV0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEFubm90YXRlVUkgPSAnYW5ub3RhdGUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQXBwZW5kRGF0YVNvdXJjZVRvUmVtb3RlRXh0cmFjdFVJID0gJ2FwcGVuZC1kYXRhLXNvdXJjZS10by1yZW1vdGUtZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0Q29ubmVjdERhdGFTb3VyY2VzT25TaGVldFVJID0gJ2F0dGVtcHQtY29ubmVjdC1kYXRhc291cmNlcy1vbi1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdHRlbXB0RGF0YVNvdXJjZUNvbm5lY3Rpb25VSSA9ICdhdHRlbXB0LWRhdGFzb3VyY2UtY29ubmVjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdXRvSGlkZVNoZWV0ID0gJ2F1dG8taGlkZS1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBBdXRvbWF0aW9uQ2xpY2tNUlVJdGVtID0gJ2NsaWNrLW1ydS1pdGVtJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENhbGN1bGF0ZWRNZW1iZXJzVUkgPSAnY2FsY3VsYXRlZC1tZW1iZXJzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZUFnZ3JlZ2F0aW9uVUkgPSAnY2hhbmdlLWFnZ3JlZ2F0aW9uLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoYW5nZURhdGFTZXJ2ZXJMb2dvblVJID0gJ2NoYW5nZS1kYXRhLXNlcnZlci1sb2dvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDaGFuZ2VFc3NiYXNlQWxpYXNGaWxlID0gJ2NoYW5nZS1lc3NiYXNlLWFsaWFzLWZpbGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlRmllbGRUeXBlVUkgPSAnY2hhbmdlLWZpZWxkLXR5cGUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2hhbmdlVGFiQ29sb3JTaGVldCA9ICdjaGFuZ2UtdGFiLWNvbG9yLXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENoZWNrRm9yUHJvZHVjdFVwZGF0ZXMgPSAnY2hlY2stZm9yLXByb2R1Y3QtdXBkYXRlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhckRhc2hib2FyZFVJID0gJ2NsZWFyLWRhc2hib2FyZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbGVhclNoZWV0VUkgPSAnY2xlYXItc2hlZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ2xlYXJTdG9yeVVJID0gJ2NsZWFyLXN0b3J5LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsZWFyVml6VUkgPSAnY2xlYXItdml6LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlQ2FsY3VsYXRpb25VSSA9ICdjbG9zZS1jYWxjdWxhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDbG9zZURhdGFTb3VyY2VVSSA9ICdjbG9zZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENsb3NlV29ya2Jvb2sgPSAnY2xvc2Utd29ya2Jvb2snLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29sb3JMZWdlbmRFZGl0VUkgPSAnY29sb3ItbGVnZW5kLWVkaXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29tbWl0UGlsbEVkaXRVSSA9ICdjb21taXQtcGlsbC1lZGl0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3REYXRhU291cmNlVUkgPSAnY29ubmVjdC1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3RSZXByb21wdFVJID0gJ2Nvbm5lY3QtcmVwcm9tcHQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdFZhcmlhYmxlUHJvbXB0VUkgPSAnY29ubmVjdC12YXJpYWJsZS1wcm9tcHQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdFZhcmlhYmxlUHJvbXB0TWF0Y2hpbmdVSSA9ICdjb25uZWN0LXZhcmlhYmxlLXByb21wdC1tYXRjaGluZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uQWRkTmV3Q3VzdG9tU1FMVUkgPSAnY29ubmVjdGlvbi1hZGQtbmV3LWN1c3RvbS1zcWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkFkZE5ld1RhYmxlVUkgPSAnY29ubmVjdGlvbi1hZGQtbmV3LXRhYmxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25EYXRhR3JpZENvcHlVSSA9ICdjb25uZWN0aW9uLWRhdGEtZ3JpZC1jb3B5LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0Q3VzdG9tU1FMVUkgPSAnY29ubmVjdGlvbi1jdXN0b20tc3FsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25FZGl0RXh0cmFjdFVJID0gJ2Nvbm5lY3Rpb24tZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdERCVmFyaWFibGVzVUkgPSAnY29ubmVjdGlvbi1lZGl0LWRiLXZhcmlhYmxlcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRWRpdENvbm5lY3Rpb25VSSA9ICdjb25uZWN0aW9uLWVkaXQtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uRmluYWxpemVEYXRhU291cmNlVUkgPSAnY29ubmVjdGlvbi1maW5hbGl6ZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25GaW5hbGl6ZUV4dHJhY3RTdGF0ZXNVSSA9ICdjb25uZWN0aW9uLWZpbmFsaXplLWV4dHJhY3Qtc3RhdGVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25HZXRUeXBlR3JvdXBQcmVzTW9kZWxVSSA9ICdjb25uZWN0aW9uLWdldC10eXBlLWdyb3VwLXByZXMtbW9kZWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkdldFNhdmVkRGF0YVNvdXJjZXNQcmVzTW9kZWxVSSA9ICdjb25uZWN0aW9uLWdldC1zYXZlZC1kcy1wcmVzLW1vZGVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25QYXJ0aXRpb25pbmdGYWlsdXJlVUkgPSAnY29ubmVjdGlvbi1wYXJ0aXRpb25pbmctZmFpbHVyZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uUmVwbGFjZVRhYmxlVUkgPSAnY29ubmVjdGlvbi1yZXBsYWNlLXRhYmxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWFyY2hDYXRhbG9nVUkgPSAnY29ubmVjdGlvbi1zZWFyY2gtY2F0YWxvZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VhcmNoQ3ViZVVJID0gJ2Nvbm5lY3Rpb24tc2VhcmNoLWN1YmUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblNlbGVjdENhdGFsb2dVSSA9ICdjb25uZWN0aW9uLXNlbGVjdC1jYXRhbG9nLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TZWxlY3RDdWJlVUkgPSAnY29ubmVjdGlvbi1zZWxlY3QtY3ViZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VsZWN0U3RhbmRhcmRDb25uZWN0aW9uVUkgPSAnY29ubmVjdGlvbi1zZWxlY3Qtc3RhbmRhcmQtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2VsZWN0U3RvcmVkUHJvY2VkdXJlVUkgPSAnY29ubmVjdGlvbi1zZWxlY3Qtc3RvcmVkLXByb2NlZHVyZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0aW9uU2hvd0VkaXRUYWJsZURpYWxvZ1VJID0gJ2Nvbm5lY3Rpb24tc2hvdy1lZGl0LXRhYmxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25TaG93UGl2b3REaWFsb2dVSSA9ICdjb25uZWNpdG9uLXNob3ctcGl2b3QtZGlhbG9nLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Tb3J0Q2F0YWxvZ1VJID0gJ2Nvbm5lY3Rpb24tc29ydC1jYXRhbG9nLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25Tb3J0Q3ViZVVJID0gJ2Nvbm5lY3Rpb24tc29ydC1jdWJlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3Rpb25WYWxpZGF0ZUN1c3RvbVNRTFVJID0gJ2Nvbm5lY3Rpb24tdmFsaWRhdGUtY3VzdG9tLXNxbC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb25uZWN0VG9DbG91ZEZpbGUgPSAnY29ubmVjdC10by1jbG91ZC1maWxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VVSSA9ICdjb25uZWN0LWRhdGEtc2VydmVyLWRhdGFzb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvbkNvbnZlcnRUb1NRTFVJID0gJ2Nvbm5lY3Rpb24tY29udmVydC10by1zcWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdGlvblJlbmFtZUNvbm5lY3Rpb25VSSA9ICdjb25uZWN0aW9uLXJlbmFtZS1jb25uZWN0aW9uLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4cG9ydFVuZGVybHlpbmdEYXRhVG9DU1ZVSSA9ICdleHBvcnQtdG8tY3N2LXdpdGgtcHJvZ3Jlc3MtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29ubmVjdE9EQkNVSSA9ICdjb25uZWN0LW9kYmMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weUNyb3NzdGFiID0gJ2NvcHktY3Jvc3N0YWInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weURhdGEgPSAnY29weS1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvcHlEcmlsbFBhdGhGaWVsZHNVSSA9ICdjb3B5LWRyaWxsLXBhdGgtZmllbGRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvcHlGaWVsZHNEZWZuVUkgPSAnY29weS1maWVsZHMtZGVmbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb3B5SW1hZ2UgPSAnY29weS1pbWFnZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDb3B5SW1hZ2VEYXNoYm9hcmQgPSAnY29weS1pbWFnZS1kYXNoYm9hcmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weUltYWdlV29ya3NoZWV0ID0gJ2NvcHktaW1hZ2Utd29ya3NoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIENvcHlJbWFnZVN0b3J5ID0gJ2NvcHktaW1hZ2Utc3RvcnknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ29weVdvcmtzaGVldEZvcm1hdHRpbmcgPSAnY29weS1mb3JtYXR0aW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUNhbGN1bGF0ZWRTZXRVSSA9ICdjcmVhdGUtY2FsY3VsYXRlZC1zZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlQ2FsY3VsYXRpb25VSSA9ICdjcmVhdGUtY2FsY3VsYXRpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlQ29tYmluZWRGaWVsZFVJID0gJ2NyZWF0ZS1jb21iaW5lZC1maWVsZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVDb25uZWN0aW9uVUkgPSAnY3JlYXRlLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlRGF0ZUJpblVJID0gJ2NyZWF0ZS1EYXRlLWJpbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVHcm91cFNlbGVjdGlvblVJID0gJ2NyZWF0ZS1ncm91cC1zZWxlY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlR3JvdXBVSSA9ICdjcmVhdGUtZ3JvdXAtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlSWRlbnRpdHlTZXQgPSAnY3JlYXRlLXVzZXItZmlsdGVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIENyZWF0ZUxlYWZDb25uZWN0aW9uVUkgPSAnY3JlYXRlLWxlYWYtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDcmVhdGVOdW1lcmljQmluc1VJID0gJ2NyZWF0ZS1udW1lcmljLWJpbnMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3JlYXRlU2V0VUkgPSAnY3JlYXRlLXNldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDdXN0b21EYXRlQWdncmVnYXRpb25VSSA9ICdjdXN0b20tZGF0ZS1hZ2dyZWdhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBDdXREcmlsbFBhdGhGaWVsZHNVSSA9ICdjdXQtZHJpbGwtcGF0aC1maWVsZHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgQ3V0RmllbGRzRGVmblVJID0gJ2N1dC1maWVsZHMtZGVmbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZWFjdGl2YXRlRGFzaGJvYXJkID0gJ2RlYWN0aXZhdGUtZGFzaGJvYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlbGV0ZUNvb2tpZXMgPSAnZGVsZXRlLWNvb2tpZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVsZXRlRmllbGRzVUkgPSAnZGVsZXRlLWZpZWxkcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZWxldGVTaGVldFVJID0gJ2RlbGV0ZS1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZXNjcmliZUFkaG9jQ2x1c3RlclVJID0gJ2Rlc2NyaWJlLWFkaG9jLWNsdXN0ZXItdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVEcmlsbFBhdGhVSSA9ICdkZXNjcmliZS1kcmlsbHBhdGgtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVGaWVsZFVJID0gJ2Rlc2NyaWJlLWZpZWxkLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERlc2NyaWJlRm9yZWNhc3RVSSA9ICdkZXNjcmliZS1mb3JlY2FzdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZXNjcmliZVNjaGVtYURyaWxsUGF0aFVJID0gJ2Rlc2NyaWJlLXNjaGVtYS1kcmlsbHBhdGgtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRGVzY3JpYmVUcmVuZExpbmUgPSAnZGVzY3JpYmUtdHJlbmQtbGluZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEZXNjcmliZVRyZW5kTW9kZWwgPSAnZGVzY3JpYmUtdHJlbmQtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgT3BlbkRpc2NvdmVyUGFuZUxpbmtzID0gJ29wZW4tZGlzY292ZXItcGFuZS1saW5rcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEaXNtaXNzR29Ub1dvcmtzaGVldFRvb2x0aXBVSSA9ICdkaXNtaXNzLWdvLXRvLXdvcmtzaGVldC10b29sdGlwLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIERvd25sb2FkQ29weURhdGFTb3VyY2UgPSAnZG93bmxvYWQtY29weS1kYXRhLXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBEcmlsbGRvd25VSSA9ICdkcmlsbGRvd24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcFNjaGVtYVNlbE9uU2hlbGZVSSA9ICdkcm9wLXNjaGVtYS1zZWwtb24tc2hlbGYtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHJvcFVJID0gJ2Ryb3AtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHVwbGljYXRlRGF0YVNvdXJjZVVJID0gJ2R1cGxpY2F0ZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIER1cGxpY2F0ZVNoZWV0QXNDcm9zc3RhYiA9ICdkdXBsaWNhdGUtc2hlZXQtYXMtY3Jvc3N0YWInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRHVwbGljYXRlU2hlZXRPckNyb3NzdGFiVUkgPSAnZHVwbGljYXRlLXNoZWV0LW9yLWNyb3NzdGFiLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIER1cGxpY2F0ZVNoZWV0VUkgPSAnZHVwbGljYXRlLXNoZWV0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRBbGlhc2VzVUkgPSAnZWRpdC1hbGlhc2VzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRBbm5vdGF0aW9uID0gJ2VkaXQtYW5ub3RhdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0QXhpc1VJID0gJ2VkaXQtYXhpcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q2FsY3VsYXRlZFNldFVJID0gJ2VkaXQtY2FsY3VsYXRlZC1zZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdENhbGN1bGF0aW9uVUkgPSAnZWRpdC1jYWxjdWxhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q2FwdGlvblVJID0gJ2VkaXQtY2FwdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0Q29tYmluZWRGaWVsZFVJID0gJ2VkaXQtY29tYmluZWQtZmllbGQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdENvcHlGaWVsZFVJID0gJ2VkaXQtY29weS1maWVsZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZVVJID0gJ2VkaXQtZGF0YXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZUZpZWxkQWxpYXNlcyA9ICdlZGl0LWRhdGFzb3VyY2UtZmllbGQtYWxpYXNlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZUZpbHRlcnNVSSA9ICdlZGl0LWRhdGFzb3VyY2UtZmlsdGVycy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGF0YVNvdXJjZVNpdGVQYXRoc1VJID0gJ2VkaXQtZGF0YXNvdXJjZS1zaXRlLXBhdGhzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXREYXRlQmluVUkgPSAnZWRpdC1kYXRlLWJpbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RGVmYXVsdFNvcnRVSSA9ICdlZGl0LWRlZmF1bHQtc29ydC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0RHJvcExpbmVzVUkgPSAnZWRpdC1kcm9wLWxpbmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXREcm9wRmllbGRVSSA9ICdlZGl0LWRyb3AtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdERhdGFTb3VyY2VSZWxhdGlvbnNoaXBzVUkgPSAnZWRpdC1kYXRhc291cmNlLXJlbGF0aW9uc2hpcHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdEVudW1lcmF0ZWRTZXRVSSA9ICdlZGl0LWVudW1lcmF0ZWQtc2V0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRGaWx0ZXJRdWlja0ZpbHRlciA9ICdlZGl0LWZpbHRlci1xdWljay1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdEZpbHRlclVJID0gJ2VkaXQtZmlsdGVyLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRGb3JlY2FzdFVJID0gJ2VkaXQtZm9yZWNhc3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdEdyb3VwVUkgPSAnZWRpdC1ncm91cC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0R3JvdXBWYWx1ZSA9ICdlZGl0LWdyb3VwLXZhbHVlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRHcm91cFZhbHVlTGFiZWwgPSAnZWRpdC1ncm91cC12YWx1ZS1sYWJlbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0TGVnZW5kR3JvdXBWYWx1ZVVJID0gJ2VkaXQtZ3JvdXAtdmFsdWUtbGVnZW5kJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRJbWFnZVVJID0gJ2VkaXQtaW1hZ2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdExlZ2VuZE1lbWJlckFsaWFzVUkgPSAnZWRpdC1sZWdlbmQtbWVtYmVyLWFsaWFzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRMZWdlbmRUaXRsZVVJID0gJ2VkaXQtbGVnZW5kLXRpdGxlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRNYXJrQ29sb3JVSSA9ICdlZGl0LW1hcmstY29sb3ItdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdE1hcmtTaGFwZVVJID0gJ2VkaXQtbWFyay1zaGFwZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0TWVtYmVyQWxpYXMgPSAnZWRpdC1tZW1iZXItYWxpYXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdE1lbWJlckFsaWFzTGFiZWwgPSAnZWRpdC1tZW1iZXItYWxpYXMtbGFiZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFBhZ2VUaXRsZVVJID0gJ2VkaXQtcGFnZS10aXRsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0UGFyYW1ldGVyQ3RybFRpdGxlID0gJ2VkaXQtcGFyYW0tY29udHJvbC10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0UGRmUGFnZVNlbGVjdGlvblVJID0gJ2VkaXQtcGRmLXBhZ2Utc2VsZWN0aW9uLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRQcmltYXJ5QWxpYXNlc1VJID0gJ2VkaXQtcHJpbWFyeS1hbGlhc2VzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRSZWZlcmVuY2VMaW5lID0gJ2VkaXQtcmVmZXJlbmNlLWxpbmUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFNjaGVtYUNhbGN1bGF0aW9uVUkgPSAnZWRpdC1zY2hlbWEtY2FsY3VsYXRpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFNjaGVtYUNhbGN1bGF0aW9uUmFuZ2VVSSA9ICdlZGl0LXNjaGVtYS1jYWxjdWxhdGlvbi1yYW5nZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0U2NoZW1hQ2FwdGlvblVJID0gJ2VkaXQtc2NoZW1hLWNhcHRpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFNjaGVtYUZpZWxkQWxpYXNVSSA9ICdlZGl0LXNjaGVtYS1maWVsZC1hbGlhcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldFNjaGVtYUNhcHRpb25VSSA9ICdyZXNldC1zY2hlbWEtZmllbGQtYWxpYXMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRNdWx0aXBsZVNjaGVtYUNhcHRpb25zVUkgPSAncmVzZXQtbXVsdGlwbGUtc2NoZW1hLWZpZWxkLWFsaWFzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEVkaXRTY2hlbWFOdW1lcmljQmluc1VJID0gJ2VkaXQtc2NoZW1hLW51bWVyaWMtYmlucy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0U2V0VUkgPSAnZWRpdC1zZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFRpdGxlUXVpY2tGaWx0ZXIgPSAnZWRpdC10aXRsZS1xdWljay1maWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFRpdGxlVUkgPSAnZWRpdC10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0VG9vbHRpcFVJID0gJ2VkaXQtdG9vbHRpcCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0VHJlbmRMaW5lc1VJID0gJ2VkaXQtdHJlbmQtbGluZXMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFVzZXJEZXNjcmlwdGlvblVJID0gJ2VkaXQtdXNlci1kZXNjcmlwdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFZGl0V01TTWFwVGlsZVNlcnZlciA9ICdlZGl0LXdtcy1tYXAtdGlsZS1zZXJ2ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFpvbmVQYXJhbSA9ICdlZGl0LXpvbmUtcGFyYW0nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRWRpdFpvbmVVcmwgPSAnZWRpdC16b25lLXVybCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFc3RhYmxpc2hDb25uZWN0aW9uVUkgPSAnZXN0YWJsaXNoLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXN0YWJsaXNoVGFibGVhdVNlcnZlckNvbm5lY3Rpb25VSSA9ICdlc3RhYmxpc2gtdGFibGVhdS1zZXJ2ZXItY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeGVjdXRlVUlBdXRvbWF0aW9uQnV0dG9uID0gJ2V4ZWN1dGUtdWktYnV0dG9uLWFjdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeGVjdXRlVUlBdXRvbWF0aW9uQ29tYm9Cb3ggPSAnZXhlY3V0ZS11aS1jb21iby1ib3gtYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25HZW5lcmljV2lkZ2V0ID0gJ2V4ZWN1dGUtdWktZ2VuZXJpYy13aWRnZXQtYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25MYWJlbCA9ICdleGVjdXRlLXVpLWxhYmVsLWFjdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeGVjdXRlVUlBdXRvbWF0aW9uTWVudSA9ICdleGVjdXRlLXVpLW1lbnUtYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25JdGVtVmlldyA9ICdleGVjdXRlLXVpLWl0ZW0tdmlldy1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhlY3V0ZVVJQXV0b21hdGlvblRleHRCb3ggPSAnZXhlY3V0ZS11aS10ZXh0LWJveC1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhlY3V0ZVVJQXV0b21hdGlvblRvZ2dsZUJ1dHRvbiA9ICdleGVjdXRlLXVpLXRvZ2dsZS1idXR0b24tYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25TbGlkZXIgPSAnZXhlY3V0ZS11aS1zbGlkZXItYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25XaW5kb3cgPSAnZXhlY3V0ZS11aS13aW5kb3ctYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25XZWJWaWV3ID0gJ2V4ZWN1dGUtdWktd2ViLXZpZXctYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25UYWIgPSAnZXhlY3V0ZS11aS10YWItYWN0aW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4ZWN1dGVVSUF1dG9tYXRpb25UZXh0QnJvd3NlciA9ICdleGVjdXRlLXVpLXRleHQtYnJvd3Nlci1hY3Rpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhpdEFwcGxpY2F0aW9uID0gJ2V4aXQtYXBwbGljYXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhwb3J0RGF0YSA9ICdleHBvcnQtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHBvcnREYXRhU291cmNlVUkgPSAnZXhwb3J0LWRhdGFzb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhwb3J0UGFja2FnZWRXb3JrYm9vayA9ICdleHBvcnQtcGFja2FnZWQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRXhwb3J0V29ya2Jvb2tTaGVldHNVSSA9ICdleHBvcnQtd29ya2Jvb2stc2hlZXRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4dFN2Y0NvbmZpZ1VJID0gJ2V4dC1zdmMtY29uZmlnLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEV4dHJhY3RIaXN0b3J5ID0gJ2V4dHJhY3QtaGlzdG9yeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHRyYWN0UHJvcGVydGllc1VJID0gJ2V4dHJhY3QtcHJvcGVydGllcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBFeHRyYWN0VUkgPSAnZXh0cmFjdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGaWx0ZXJGaWVsZExhYmVsVUkgPSAnZmlsdGVyLWZpZWxkLWxhYmVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdEFubm90YXRpb24gPSAnZm9ybWF0LWFubm90YXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRm9ybWF0QXhpc1VJID0gJ2Zvcm1hdC1heGlzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdENhcHRpb25UaXRsZVVJID0gJ2Zvcm1hdC1jYXB0aW9uLXRpdGxlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdEZpZWxkID0gJ2Zvcm1hdC1wYW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdEZpZWxkTGFiZWxVSSA9ICdmb3JtYXQtZmllbGQtbGFiZWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRm9ybWF0TGFiZWwgPSAnZm9ybWF0LWxhYmVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEZvcm1hdExlZ2VuZHNVSSA9ICdmb3JtYXQtbGVnZW5kcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGb3JtYXRSZWZlcmVuY2VMaW5lID0gJ2Zvcm1hdC1yZWZlcmVuY2UtbGluZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBGb3JtYXRVSSA9ICdmb3JtYXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgRnVsbFNjcmVlbiA9ICdmdWxsc2NyZWVuJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldERhc2hib2FyZFNpZGVQYW5lTW9kZSA9ICdnZXQtZGFzaGJvYXJkLXNpZGVwYW5lLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0RGVidWdnaW5nSW5mbyA9ICdnZXQtZGVidWdnaW5nLWluZm8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0SWNvblBhdGhGb3JFbmNvZGluZ1R5cGUgPSAnZ2V0LWljb24tcGF0aC1mb3ItZW5jb2RpbmctdHlwZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRJY29uUGF0aEZvclByaW1pdGl2ZVR5cGUgPSAnZ2V0LWljb24tcGF0aC1mb3ItcHJpbWl0aXZlLXR5cGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VGFibGVPcHRpb25zUHJlc01vZGVsID0gJ2dldC10YWJsZS1vcHRpb25zLXByZXMtbW9kZWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0V2luZG93TmFtZVVJID0gJ2dldC13aW5kb3ctbmFtZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRXb3Jrc2hlZXRTaWRlUGFuZU1vZGUgPSAnZ2V0LXdvcmtzaGVldC1zaWRlcGFuZS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldEhpZGRlblNoZWV0cyA9ICdnZXQtaGlkZGVuLXNoZWV0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRPcGVuUGFuZU1SVXMgPSAnZ2V0LW9wZW4tcGFuZS1tcnVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldE9wZW5QYW5lU2FtcGxlV29ya2Jvb2tzID0gJ2dldC1vcGVuLXBhbmUtc2FtcGxlLXdvcmtib29rcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRSZXRhcmdldERhdGFTb3VyY2VQcmVzTW9kZWxVSSA9ICdnZXQtcmV0YXJnZXQtZGF0YXNvdXJjZS1wcmVzLW1vZGVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFNjaGVtYVZpZXdlclByZXNNb2RlbCA9ICdnZXQtc2NoZW1hLXZpZXdlci1wcmVzLW1vZGVsJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdldFNlbGVjdGVkU2hlZXRzID0gJ2dldC1zZWxlY3RlZC1zaGVldHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hlZXRTb3J0ZXJUaHVtYm5haWwgPSAnZ2V0LXNoZWV0LXNvcnRlci10aHVtYm5haWwnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0U2hlZXRUYWJVSVRodW1ibmFpbCA9ICdnZXQtc2hlZXQtdGFiLXVpLXRodW1ibmFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBHZXRTaGVldFRhYlVJVGV4dCA9ICdnZXQtc2hlZXQtdGFiLXVpLXRleHQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR2V0VmlzaWJsZVRyZWVJdGVtcyA9ICdnZXQtdmlzaWJsZS10cmVlLWl0ZW1zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEdvdG9TaGVldFJhbmdlID0gJ2dvdG8nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgR290b1VSTCA9ICdnb3RvLXVybCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlQ2FwdGlvblVJID0gJ2hpZGUtY2FwdGlvbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlRmlsbXN0cmlwVUkgPSAnaGlkZS1maWxtc3RyaXAtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgSGlkZVRpdGxlVUkgPSAnaGlkZS10aXRsZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlWm9uZVVJID0gJ2hpZGUtem9uZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBIaWRlQWxsU2hlZXRzVUkgPSAnaGlkZS1hbGwtc2hlZXRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVuaGlkZUFsbFNoZWV0c1VJID0gJ3VuaGlkZS1hbGwtc2hlZXRzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEltcG9ydExvY2FsRGF0YVVJID0gJ2ltcG9ydC1sb2NhbC1kYXRhLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIEltcG9ydE1hcFNvdXJjZSA9ICdpbXBvcnQtbWFwLXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBJbXBvcnRNYXBTb3VyY2VVSSA9ICdpbXBvcnQtbWFwLXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBJbXBvcnRXb3JrYm9va1VJID0gJ2ltcG9ydC13b3JrYm9vay11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBMb2FkRGVmYXVsdEZvcm1hdHRpbmdVSSA9ICdsb2FkLWZvcm1hdHRpbmctdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTG9jYXRlRmllbGRVSSA9ICdsb2NhdGUtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTG9nTWVtb3J5VXNhZ2UgPSAnbG9nLW1lbW9yeS11c2FnZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VMaWNlbnNpbmcgPSAnbWFuYWdlLWxpY2Vuc2luZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VNYXBib3ggPSAnbWFuYWdlLW1hcGJveCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VQdWJsaWNXb3JrYm9va3MgPSAnbWFuYWdlLXB1YmxpYycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNYW5hZ2VNYXBTZXJ2aWNlcyA9ICdtYW5hZ2UtbWFwLXNlcnZpY2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE1hcExheWVyc1VJID0gJ21hcC1sYXllcnMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTWFuYWdlV01TID0gJ21hbmFnZS13bXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBncmFkZURhdGFTb3VyY2VzVUkgPSAndXBncmFkZS1kYXRhc291cmNlcy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBVcGdyYWRlRGF0YVNvdXJjZVVJID0gJ3VwZ3JhZGUtZGF0YXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBNb3ZlUmVwb3NpdG9yeSA9ICdtb3ZlLXJlcG9zaXRvcnknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTmV3U2NoZW1hRHJpbGxQYXRoVUkgPSAnbmV3LXNjaGVtYS1kcmlsbC1wYXRoLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5ld1VJRGFzaGJvYXJkID0gJ25ldy1kYXNoYm9hcmQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTmV3VUlXb3Jrc2hlZXQgPSAnbmV3LXdvcmtzaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBOZXdVSVN0b3J5Ym9hcmQgPSAnbmV3LXN0b3J5Ym9hcmQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgTmV3V29ya2Jvb2sgPSAnbmV3LXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5leHRTaGVldCA9ICduZXh0LXNoZWV0JyxcclxuXHJcbiAgICAvLyBcclxuICAgIE5vblJhbmdlZEVkaXRSZWZlcmVuY2VMaW5lID0gJ25vbi1yYW5nZWQtZWRpdC1yZWZlcmVuY2UtbGluZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPcGVuQm9va21hcmsgPSAnb3Blbi1ib29rbWFyaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPcGVuRnJvbVdvcmtncm91cCA9ICdvcGVuLXdvcmtib29rLWZyb20td29ya2dyb3VwJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5NYXBTb3VyY2UgPSAnb3Blbi1tYXAtc291cmNlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5NYXBTb3VyY2VVSSA9ICdvcGVuLW1hcC1zb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgT3BlblNhbXBsZVdvcmtib29rID0gJ29wZW4tc2FtcGxlLXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5Xb3JrYm9vayA9ICdvcGVuLXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wZW5SZWNlbnRXb3JrYm9vayA9ICdvcGVuLXJlY2VudC13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPcGVuT3RoZXJGaWxlcyA9ICdvcGVuLW90aGVyLWZpbGVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIE9wdGltaXplRXh0cmFjdFVJID0gJ29wdGltaXplLWV4dHJhY3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFnZVNldHVwID0gJ3BhZ2Utc2V0dXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFzdGUgPSAncGFzdGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFzdGVGaWVsZHNEZWZuVUkgPSAncGFzdGUtZmllbGRzLWRlZm4tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFzdGVXb3Jrc2hlZXRGb3JtYXR0aW5nID0gJ3Bhc3RlLWZvcm1hdHRpbmcnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUERGRXhwb3J0ID0gJ2V4cG9ydC1wZGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGVyc3BlY3RpdmVzVUkgPSAncGVyc3BlY3RpdmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFByZXNlbnRhdGlvbk1vZGUgPSAncHJlc2VudGF0aW9uLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHJpbnQgPSAncHJpbnQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHJvbXB0U2NyaXB0ID0gJ3Byb21wdC1jb21tYW5kJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFByb3BlcnRpZXNEYXRhU291cmNlVUkgPSAncHJvcGVydGllcy1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFB1Ymxpc2hEYXRhc291cmNlVG9Xb3JrZ3JvdXAgPSAncHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQdWJsaXNoRGF0YXNvdXJjZVRvV29ya2dyb3VwRnJvbURhdGEgPSAncHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cC1mcm9tLWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cFJhbmdlID0gJ3B1Ymxpc2gtZGF0YXNvdXJjZS10by13b3JrZ3JvdXAtcmFuZ2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaFdvcmtib29rVG9Xb3JrZ3JvdXAgPSAncHVibGlzaC13b3JrYm9vay10by13b3JrZ3JvdXAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cEZyb21Xb3JrYm9va0RhdGEgPSAncHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cC1mcm9tLXdvcmtib29rLWRhdGEnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUHJvbXB0Rm9yRGF0YVNvdXJjZUZpbGVVSSA9ICdwcm9tcHQtZm9yLWRhdGFzb3VyY2UtZmlsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBQcm9tcHRVbmtub3duV0RDVXJsVUkgPSAncHJvbXB0LXVua25vd24td2RjLXVybC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWVyeURhdGFTb3VyY2VVSSA9ICdxdWVyeS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFF1aWNrRmlsdGVyRmllbGRMYWJlbFVJID0gJ3F1aWNrLWZpbHRlci1maWVsZC1sYWJlbC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBRdWlja1RhYmxlQ2FsY1VJID0gJ3F1aWNrLXRhYmxlLWNhbGMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVjb25uZWN0TWFwU291cmNlVUkgPSAncmVjb25uZWN0LW1hcC1zb3VyY2UtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVjb3JkUGVyZm9ybWFuY2UgPSAncmVjb3JkLXBlcmYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVmcmVzaEFsbEV4dHJhY3RzVUkgPSAncmVmcmVzaC1hbGwtZXh0cmFjdHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVmcmVzaEFsbFRodW1ibmFpbHNVSSA9ICdyZWZyZXNoLWFsbC10aHVtYm5haWxzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hBdXRvRXh0cmFjdFVJID0gJ3JlZnJlc2gtYXV0by1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hEYXRhU291cmNlVUkgPSAncmVmcmVzaC1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hFeHRyYWN0VUkgPSAncmVmcmVzaC1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hGcm9tU291cmNlVUkgPSAncmVmcmVzaC1mcm9tLXNvdXJjZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZWZyZXNoTG9jYWxEYXRhVUkgPSAncmVmcmVzaC1sb2NhbC1kYXRhLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlZnJlc2hUaHVtYm5haWxVSSA9ICdyZWZyZXNoLXRodW1ibmFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZWxlYXNlTWVtb3J5ID0gJ3JlbGVhc2UtbWVtb3J5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZUFubm90YXRpb24gPSAncmVtb3ZlLWFubm90YXRpb24nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlRXh0cmFjdFVJID0gJ3JlbW92ZS1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbW92ZU1SVUl0ZW0gPSAncmVtb3ZlLW1ydScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVTYXZlZERhdGFTb3VyY2VVSSA9ICdyZW1vdmUtc2F2ZWQtZGF0YXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW1vdmVTaGVldEZyb21EYXNoYm9hcmRVSSA9ICdyZW1vdmUtc2hlZXQtZnJvbS1kYXNoYm9hcmQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVtb3ZlVGFibGVVSSA9ICdyZW1vdmUtdGFibGUtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVuYW1lRGF0YVNvdXJjZVVJID0gJ3JlbmFtZS1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlbmFtZVNjaGVtYUZpZWxkRm9sZGVyVUkgPSAncmVuYW1lLWZpZWxkLWZvbGRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW5hbWVTY2hlbWFEcmlsbFBhdGhVSSA9ICdyZW5hbWUtc2NoZW1hLWRyaWxscGF0aC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW5hbWVTaGVldFVJID0gJ3JlbmFtZS1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW9yZGVyU2hlZXRzVUkgPSAncmVvcmRlci1zaGVldHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVwbGFjZURhdGFTb3VyY2VXaXRoRGF0YVNlcnZlckRhdGFTb3VyY2VVSSA9ICdyZXBsYWNlLWRhdGFzb3VyY2Utd2l0aC1kYXRhLXNlcnZlci1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlcGxhY2VGaWVsZFVJID0gJ3JlcGxhY2UtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRDYXB0aW9uVUkgPSAncmVzZXQtY2FwdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldENhcmRzID0gJ3Jlc2V0LWNhcmRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0TG9jYWxEYXRhVUkgPSAncmVtb3ZlLWxvY2FsLWRhdGEtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUmVzZXRNZXNzYWdlcyA9ICdyZXNldC1tZXNzYWdlcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTdGFydE9ubGluZVN5bmNDbGllbnQgPSAnc3RhcnQtb25saW5lLXN5bmMtY2xpZW50JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0VGl0bGVVSSA9ICdyZXNldC10aXRsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldFRvRGVmYXVsdHNNYXBDYXJkID0gJ3Jlc2V0LW1hcC10by1kZWZhdWx0cycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXNldFdvcmtib29rID0gJ3JldmVydC13b3JrYm9vay11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXRhcmdldERhdGFTb3VyY2UgPSAncmV0YXJnZXQtZGF0YXNvdXJjZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZXRhcmdldERhdGFTb3VyY2VVSSA9ICdyZXRhcmdldC1kYXRhc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVBc1dvcmtib29rID0gJ3NhdmUtYXMtd29ya2Jvb2snLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2F2ZUJvb2ttYXJrID0gJ3NhdmUtYm9va21hcmsnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2F2ZURlYnVnZ2luZ1dvcmtib29rID0gJ3NhdmUtZGVidWdnaW5nLXdvcmtib29rJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNhdmVEZWZhdWx0Rm9ybWF0dGluZ1VJID0gJ3NhdmUtZm9ybWF0dGluZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTYXZlV29ya2Jvb2sgPSAnc2F2ZS13b3JrYm9vaycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTY2hlbWFEZWZhdWx0TWVtYmVyVUkgPSAnc2NoZW1hLWRlZmF1bHQtbWVtYmVyLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNjcm9sbFNoZWV0ID0gJ3Njcm9sbC1zaGVldCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRBY2NvdW50c0RpbWVuc2lvbiA9ICdzZXQtYWNjb3VudHMtZGltZW5zaW9uJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldEFjdGl2ZUNvbm5lY3Rpb25VSSA9ICdzZXQtYWN0aXZlLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0QW5hbHl0aWNzRHJvcFRhcmdldFZpc2liaWxpdHkgPSAnc2V0LWFuYWx5dGljcy1kcm9wLXRhcmdldC12aXNpYmlsaXR5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERhc2hib2FyZFNpZGVQYW5lTW9kZSA9ICdzZXQtZGFzaGJvYXJkLXNpZGVwYW5lLW1vZGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RGVmYXVsdERhdGVGb3JtYXRVSSA9ICdzZXQtZGVmYXVsdC1kYXRlLWZvcm1hdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0TG9jYXRpb25VSSA9ICdzZXQtZGVmYXVsdC1sb2NhdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXREZWZhdWx0TWFwU291cmNlVUkgPSAnc2V0LWRlZmF1bHQtbWFwc291cmNlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldERlZmF1bHRUZXh0Rm9ybWF0VUkgPSAnc2V0LWRlZmF1bHQtdGV4dC1mb3JtYXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RGVmYXVsdFV0aWxpdHlNZW1iZXIgPSAnc2V0LWRlZmF1bHQtdXRpbGl0eS1tZW1iZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0RnJlZUZvcm1EYXNoYm9hcmRVSSA9ICdzZXQtZnJlZS1mb3JtLWRhc2hib2FyZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRGaWx0ZXJTaGFyZWRVSSA9ICdzZXQtZmlsdGVyLXNoYXJlZC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRLZXkgPSAnc2V0LWtleScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRQcm9kdWN0QXV0b1VwZGF0ZSA9ICdzZXQtYXV0by11cGRhdGUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2V0UXVlcnlGYWlsdXJlID0gJ3NldC1xdWVyeS1mYWlsdXJlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJlbmRlcmluZyA9ICdzZXQtcmVuZGVyaW5nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFJ1bnRpbWVJbW1lZGlhdGVNb2RlID0gJ3NldC1ydW50aW1lLWltbWVkaWF0ZS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFVJTGFuZ3VhZ2UgPSAnc2V0LXVpLWxhbmd1YWdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFdvcmtib29rTG9jYWxlVUkgPSAnc2V0LXdvcmtib29rLWxvY2FsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTZXRXb3Jrc2hlZXRTaWRlUGFuZU1vZGUgPSAnc2V0LXdvcmtzaGVldC1zaWRlcGFuZS1tb2RlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldFpvbmVGaXhlZFNpemVVSSA9ICdzZXQtem9uZS1maXhlZC1zaXplLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNldHNJbk91dFVJID0gJ3Nob3ctaW4tb3V0LXNldHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hhcGVMZWdlbmRFZGl0VUkgPSAnc2hhcGUtbGVnZW5kLWVkaXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0Nsb3VkRmlsZU9BdXRoUHJvbXB0QW5kU2VsZWN0aW9uVUkgPSAnc2hvdy1jbG91ZGZpbGUtb2F1dGgtcHJvbXB0LWFuZC1zZWxlY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0Nvbm5lY3Rpb25BdXRoVUkgPSAnc2hvdy1jb25uZWN0aW9uLWF1dGgtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0Nvbm5lY3Rpb25BdXRoQW5kRXN0YWJsaXNoQ29ubmVjdGlvblVJID0gJ3Nob3ctY29ubmVjdGlvbi1hdXRoLWFuZC1lc3RhYmxpc2gtY29ubmVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93Q29ubmVjdFRhYiA9ICdzaG93LWNvbm5lY3QtdGFiJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dDdXN0b21TcGxpdERpYWxvZ1VJID0gJ3Nob3ctY3VzdG9tLXNwbGl0LWRpYWxvZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RG9jdW1lbnQgPSAnZG9jdW1lbnQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0ZlYXR1cmVGbGFnRGlhbG9nID0gJ3Nob3ctZmVhdHVyZS1mbGFnLWRpYWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RmllbGRGb3JtYXRVSSA9ICdzaG93LWZpZWxkLWZvcm1hdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93RmllbGRJblNjaGVtYVVJID0gJ3Nob3ctZmllbGQtaW4tc2NoZW1hJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dGaWxtc3RyaXBVSSA9ICdzaG93LWZpbG1zdHJpcC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93R29vZ2xlU2hlZXRzU2VsZWN0aW9uVUkgPSAnc2hvdy1nb29nbGUtc2hlZXRzLXNlbGVjdGlvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93SGVscCA9ICdzaG93LWhlbHAnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0hpZGVEYXNoYm9hcmRTaGVldFVJID0gJ3Nob3ctaGlkZS1kYXNoYm9hcmQtc2hlZXQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd0hpZGVTdG9yeWJvYXJkU2hlZXRVSSA9ICdzaG93LWhpZGUtc3Rvcnlib2FyZC1zaGVldC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93R3JhcGhpY3NBUEkgPSAnc2hvdy1ncmFwaGljcy1hcGktY29tbWFuZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWFwT3B0aW9uc0RpYWxvZyA9ICdzaG93LW1hcC1vcHRpb25zLWRpYWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWVhc3VyZXNVSSA9ICdzaG93LW1lYXN1cmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dNZUN5Y2xlVUkgPSAnc2hvdy1tZS1jeWNsZS11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93TWVIaWRlVUkgPSAnc2hvdy1tZS1oaWRlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dNZW1iZXJzVUkgPSAnc2hvdy1tZW1iZXJzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dNZVRvZ2dsZVVJID0gJ3Nob3ctbWUtdG9nZ2xlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dPQXV0aFByb21wdFVJID0gJ3Nob3ctb2F1dGgtcHJvbXB0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dQYXJhbWV0ZXJDb250cm9sID0gJ3Nob3ctcGFyYW1ldGVyLWNvbnRyb2wnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1B1YmxpY1N0YXR1c0RpYWxvZyA9ICdzaG93LXB1YmxpYy1zdGF0dXMtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dQdWJsaWNRdW90YUV4Y2VlZGVkRGlhbG9nID0gJ3Nob3ctcHVibGljLXF1b3RhLWV4Y2VlZGVkLWRpYWxvZycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cERpYWxvZyA9ICdzaG93LXB1Ymxpc2gtZGF0YXNvdXJjZS10by13b3JrZ3JvdXAtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dRdWVyeUJhbmRpbmdBbmRJbml0aWFsU1FMRGlhbG9nVUkgPSAnc2hvdy1xdWVyeS1iYW5kaW5nLWFuZC1pbml0aWFsLXNxbC1kaWFsb2ctdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1F1aWNrRmlsdGVyID0gJ3Nob3ctcXVpY2tmaWx0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1F1aWNrRmlsdGVyVUkgPSAnc2hvdy1xdWlja2ZpbHRlci11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTaG93UnVudGltZUluZGljYXRvciA9ICdzaG93LXJ1bnRpbWUtaW5kaWNhdG9yJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dTaGVldFNvcnRlciA9ICdzaGVldC1zb3J0ZXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1RhYmxlT3B0aW9uc0RpYWxvZyA9ICdzaG93LXRhYmxlLW9wdGlvbnMtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNob3dXZWJEYXRhQ29ubmVjdG9yVUkgPSAnc2hvdy13ZWItZGF0YS1jb25uZWN0b3ItdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2hvd1dpZGdldFNhbmRib3hVSSA9ICdzaG93LXdpZGdldC1zYW5kYm94LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNpemVMZWdlbmRFZGl0VUkgPSAnc2l6ZS1sZWdlbmQtZWRpdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTbGVlcFVJID0gJ3NsZWVwLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNvcnRBc2NlbmRpbmdGaWVsZExhYmVsVUkgPSAnc29ydC1hc2NlbmRpbmctZmllbGQtbGFiZWwtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU29ydERlc2NlbmRpbmdGaWVsZExhYmVsVUkgPSAnc29ydC1kZXNjZW5kaW5nLWZpZWxkLWxhYmVsLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFNvcnRGaWVsZExhYmVsVUkgPSAnc29ydC1maWVsZC1sYWJlbC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTb3J0VUkgPSAnc29ydC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTcGxpdEZpZWxkVUkgPSAnc3BsaXQtZmllbGQtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3RhY2tNYXJrc1VJID0gJ3N0YWNrLW1hcmtzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN0YXJ0RmlsZUNvbm5lY3Rpb25VSSA9ICdzdGFydC1maWxlLWNvbm5lY3Rpb24tdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3RhcnRQaWxsRWRpdFVJID0gJ3N0YXJ0LXBpbGwtZWRpdC11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBTd2l0Y2hUb0Nvbm5lY3RUYWIgPSAnc3dpdGNoLXRvLWNvbm5lY3QtdGFiJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN3aXRjaFRvRG9jdW1lbnQgPSAnc3dpdGNoLXRvLWRvY3VtZW50JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFN3aXRjaFRvU2hlZXRTb3J0ZXIgPSAnc3dpdGNoLXRvLXNoZWV0LXNvcnRlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUYWJsZUNhbGNBZGRyZXNzVUkgPSAndGFibGUtY2FsYy1hZGRyZXNzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRhYmxlQ2FsY0lnbm9yZVVJID0gJ3RhYmxlLWNhbGMtaWdub3JlLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRhYmxlQ2FsY09yZGVyaW5nVUkgPSAndGFibGUtY2FsYy1vcmRlcmluZy11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUYWJsZUNhbGNVSSA9ICd0YWJsZS1jYWxjLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZUNvbm5lY3RQYW5lVUkgPSAndG9nZ2xlLWNvbm5lY3QtcGFuZScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUb2dnbGVGaWxtc3RyaXBVSSA9ICd0b2dnbGUtZmlsbXN0cmlwLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZUlOREpvaW5TZW1hbnRpY3NVSSA9ICd0b2dnbGUtaW5kLWpvaW4tc2VtYW50aWNzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVBpbk1SVUl0ZW0gPSAndG9nZ2xlLXBpbi1tcnUnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlUmVmZXJlbnRpYWxJbnRlZ3JpdHlVSSA9ICd0b2dnbGUtcmVmZXJlbnRpYWwtaW50ZWdyaXR5LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRvZ2dsZVN0YXJ0UGFnZVVJID0gJ3RvZ2dsZS1zdGFydC1wYWdlJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFRyYWNrTWVtb3J5ID0gJ3RyYWNrLW1lbW9yeScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBUcmVuZExpbmVzRmxhZ1VJID0gJ3RyZW5kLWxpbmVzLXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVwZGF0ZURlZmF1bHRzTWFwQ2FyZCA9ICd1cGRhdGUtbWFwLWRlZmF1bHRzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVwZ3JhZGVFeHRyYWN0c1VJID0gJ3VwZ3JhZGUtZXh0cmFjdHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXBncmFkZUV4dHJhY3RVSSA9ICd1cGdyYWRlLWV4dHJhY3QtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVXNlRXh0cmFjdFVJID0gJ3VzZS1leHRyYWN0LXVpJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFVzZU1lbW9yeSA9ICd1c2UtbWVtb3J5JyxcclxuXHJcbiAgICAvLyBcclxuICAgIFV0aWxpdHlEaW1lbnNpb25VSSA9ICd1dGlsaXR5LWRpbWVuc2lvbi11aScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWYWxpZGF0ZUV4dHJhY3RDcmVkZW50aWFsc1VJID0gJ3ZhbGlkYXRlLWV4dHJhY3QtY3JlZGVudGlhbHMtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0NhcmQgPSAndmlldy1jYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdUaXRsZUNhcmQgPSAndmlldy10aXRsZS1jYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdTdW1tYXJ5Q2FyZCA9ICd2aWV3LXN1bW1hcnktY2FyZCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3Q2FwdGlvbkNhcmQgPSAndmlldy1jYXB0aW9uLWNhcmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0NvbHVtbnNTaGVsZiA9ICd2aWV3LWNvbHVtbnMtc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1Jvd3NTaGVsZiA9ICd2aWV3LXJvd3Mtc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1BhZ2VzU2hlbGYgPSAndmlldy1wYWdlcy1zaGVsZicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3RmlsdGVyc1NoZWxmID0gJ3ZpZXctZmlsdGVycy1zaGVsZicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3TWVhc3VyZXNTaGVsZiA9ICd2aWV3LW1lYXN1cmVzLXNoZWxmJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdNYXJrc1NoZWxmID0gJ3ZpZXctbWFya3Mtc2hlbGYnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0N1cnJlbnRQYWdlQ2FyZCA9ICd2aWV3LWN1cnJlbnQtcGFnZS1jYXJkJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdEYXRhID0gJ3ZpZXctZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3U1FMRGF0YVVJID0gJ3ZpZXctc3FsLWRhdGEtdWknLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld0RhdGFTb3VyY2VEYXRhID0gJ3ZpZXctZGF0YXNvdXJjZS1kYXRhJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdMZWdlbmQgPSAndmlldy1sZWdlbmQnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1NpZGVQYW5lID0gJ3ZpZXctc2lkZS1wYW5lJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFZpZXdTdGF0dXNCYXIgPSAndmlldy1zdGF0dXNiYXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVmlld1N1bW1hcnlEZXRhaWwgPSAndmlldy1zdW1tYXJ5LWRldGFpbCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3VGFibGVEYXRhID0gJ3ZpZXctdGFibGUtZGF0YScsXHJcblxyXG4gICAgLy8gXHJcbiAgICBWaWV3VG9vbEJhciA9ICd2aWV3LXRvb2xiYXInLFxyXG5cclxuICAgIC8vIFxyXG4gICAgV2ViVmlld0VuYWJsZUphdmFzY3JpcHQgPSAnd2Vidmlldy1lbmFibGUtamF2YXNjcmlwdCcsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXZWJWaWV3RW5hYmxlUGx1Z2lucyA9ICd3ZWJ2aWV3LWVuYWJsZS1wbHVnaW5zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFdlYlZpZXdCbG9ja1BvcHVwcyA9ICd3ZWJ2aWV3LWJsb2NrLXBvcHVwcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXZWJWaWV3RW5hYmxlVVJMSG92ZXJBY3Rpb25zID0gJ3dlYnZpZXctZW5hYmxlLXVybC1ob3Zlci1hY3Rpb25zJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFdvcmtncm91cENoYW5nZURhdGFzZXJ2ZXIgPSAnd29ya2dyb3VwLWNoYW5nZS1kYXRhc2VydmVyJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFdvcmtncm91cENoYW5nZVNlcnZlciA9ICd3b3JrZ3JvdXAtY2hhbmdlLXNlcnZlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXb3JrZ3JvdXBDaGFuZ2VVc2VyID0gJ3dvcmtncm91cC1jaGFuZ2UtdXNlcicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBXb3JrZ3JvdXBSZW1vdmVMYXN0U2VydmVyID0gJ3dvcmtncm91cC1yZW1vdmUtbGFzdC1zZXJ2ZXInLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTcnZDb21tYW5kcyB7XHJcblxyXG4gICAgLy8gcGluZ3MgdGhlIHNlcnZlciB0byB0ZXN0IGlmIHRoZSBzZXNzaW9uIGlzIGV4cGlyZWRcclxuICAgIFBpbmdTZXNzaW9uID0gJ3Bpbmctc2Vzc2lvbicsXHJcblxyXG4gICAgLy8gQXBwbGllcyBzbmFwc2hvdCBmcm9tIGNvbW1lbnRzIHRvIHRoZSB2aXouXHJcbiAgICBBcHBseUN1c3RvbWl6ZWRWaWV3ID0gJ2FwcGx5LWN1c3RvbWl6ZWQtdmlldycsXHJcblxyXG4gICAgLy8gUmVmcmVzaGVzIFZRTFNlc3Npb24gRGF0YVxyXG4gICAgUmVmcmVzaERhdGEgPSAncmVmcmVzaC1kYXRhJyxcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERvY0NvbW1hbmRzIHtcclxuXHJcbiAgICAvLyBSZXR1cm5zIHdoZXRoZXIgZGF0ZSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBlbmFibGVkXHJcbiAgICBHZXREYXRhU291cmNlRGF0ZVByb3BlcnRpZXNBcmVFbmFibGVkID0gJ2dldC1kYXRhc291cmNlLWRhdGUtcHJvcGVydGllcy1hcmUtZW5hYmxlZCcsXHJcblxyXG4gICAgLy8gR2V0IHByZXNtb2RlbCB0byBwb3B1bGF0ZSBkYXRlIHByb3BlcnRpZXMgZGlhbG9nXHJcbiAgICBHZXREYXRhU291cmNlRGF0ZVByb3BlcnRpZXMgPSAnZ2V0LWRhdGFzb3VyY2UtZGF0ZS1wcm9wZXJ0aWVzJyxcclxuXHJcbiAgICAvLyBBcHBseSBuZXcgc2V0dGluZ3MgZm9yIGRhdGUgcHJvcGVydGllc1xyXG4gICAgRWRpdERhdGFTb3VyY2VEYXRlUHJvcGVydGllcyA9ICdlZGl0LWRhdGFzb3VyY2UtZGF0ZS1wcm9wZXJ0aWVzJyxcclxuXHJcbiAgICAvLyBBcHBseSBkYXRhIHNvdXJjZSBkZWx0YSB0byBkYXRhIHNvdXJjZVxyXG4gICAgQXBwbHlEYXRhU291cmNlRGVsdGEgPSAnYXBwbHktZGF0YXNvdXJjZS1kZWx0YScsXHJcblxyXG4gICAgLy8gR2VuZXJhdGUgZGF0YSBzb3VyY2UgZGVsdGEgZnJvbSBsb2NhbCBkYXRhIHNvdXJjZVxyXG4gICAgR2V0RGF0YVNvdXJjZURlbHRhID0gJ2dldC1kYXRhc291cmNlLWRlbHRhJyxcclxuXHJcbiAgICAvLyBHZXRzIHRoZSBwcmVzIG1vZGVsIGZvciB0aGUgU2F2ZSBEYXRhc291cmNlIGRpYWxvZ1xyXG4gICAgR2V0V2ViU2F2ZURhdGFzb3VyY2VEaWFsb2cgPSAnZ2V0LXdlYi1zYXZlLWRhdGFzb3VyY2UtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBDcmVhdGVzIGEgZGlhbG9nIGluIHRoZSBicm93c2VyIHRvIHJlbmFtZSB0aGUgZGF0YXNvdXJjZVxyXG4gICAgV2ViUmVuYW1lRGF0YXNvdXJjZURpYWxvZyA9ICd3ZWItcmVuYW1lLWRhdGFzb3VyY2UtZGlhbG9nJyxcclxuXHJcbiAgICAvLyBTd2l0Y2hlcyB0aGUgdmlldyB0byB0aGUgZGF0YSB0YWIgZm9yIGVkaXRpbmdcclxuICAgIFdlYkVkaXREYXRhU291cmNlID0gJ3dlYi1lZGl0LWRhdGEtc291cmNlJyxcclxuXHJcbiAgICAvLyBUb2dnbGVzIGpvaW5pbmcgb24gbnVsbCB2YWx1ZXNcclxuICAgIFRvZ2dsZUlOREpvaW5TZW1hbnRpY3MgPSAndG9nZ2xlLWluZC1qb2luLXNlbWFudGljcycsXHJcblxyXG4gICAgLy8gSm9pbiBOdWxsIFZhbHVlcyB0byBOdWxsIFZhbHVlc1xyXG4gICAgVG9nZ2xlSU5ESm9pblNlbWFudGljc1dyYXBwZXIgPSAndG9nZ2xlLWluZGpvaW4tc2VtYW50aWNzLXdyYXBwZXInLFxyXG5cclxuICAgIC8vIFRvZ2dsZXMgcmVmZXJlbnRpYWwgaW50ZWdyaXR5XHJcbiAgICBUb2dnbGVSZWZlcmVudGlhbEludGVncml0eSA9ICd0b2dnbGUtcmVmZXJlbnRpYWwtaW50ZWdyaXR5JyxcclxuXHJcbiAgICAvLyBSZXRyaWV2ZXMgbGlzdCBvZiBzdW1tYXJ5IG9iamVjdHMsIG9uZSBmb3IgZWFjaCBjb25uZWN0aW9uIGluIGEgZGF0YXNvdXJjZS5cclxuICAgIEdldENvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnlQcmVzTW9kZWxzID0gJ2dldC1jb25uZWN0aW9uLWRlc2NyaXB0aW9uLXN1bW1hcnktcHJlcy1tb2RlbHMnLFxyXG5cclxuICAgIC8vIEdldHMgdGhlIGF4aXMgb3B0aW9ucyAuXHJcbiAgICBHZXRBeGlzT3B0aW9ucyA9ICdnZXQtYXhpcy1vcHRpb25zJyxcclxuXHJcbiAgICAvLyBSZXNldCB0aGUgYXhpcyBvcHRpb25zIC5cclxuICAgIFJlc2V0QXhpc09wdGlvbnMgPSAncmVzZXQtYXhpcy1vcHRpb25zJyxcclxuXHJcbiAgICAvLyBTaG93IGF4aXMgZWRpdCBkaWFsb2dcclxuICAgIFNob3dFZGl0QXhpc0RpYWxvZyA9ICdzaG93LWVkaXQtYXhpcy1kaWFsb2cnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgZGlyZWN0aW9uXHJcbiAgICBTZXRBeGlzUmV2ZXJzZWQgPSAnc2V0LWF4aXMtcmV2ZXJzZWQnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgc2NhbGUgdHlwZVxyXG4gICAgU2V0QXhpc1NjYWxlVHlwZSA9ICdzZXQtYXhpcy1zY2FsZS10eXBlJyxcclxuXHJcbiAgICAvLyBTZXRzIHRoZSBtYWluIHRpdGxlIG9mIGEgcXVhbnRpdGF0aXZlIGF4aXNcclxuICAgIFNldEF4aXNUaXRsZSA9ICdzZXQtYXhpcy10aXRsZScsXHJcblxyXG4gICAgLy8gU2V0cyB0aGUgc3VidGl0bGUgb2YgYSBxdWFudGl0YXRpdmUgYXhpc1xyXG4gICAgU2V0QXhpc1N1YnRpdGxlID0gJ3NldC1heGlzLXN1YnRpdGxlJyxcclxuXHJcbiAgICAvLyBTZXRzIHdoZXRoZXIgd2Ugc2hvdWxkIHVzZSB0aGUgYXV0b21hdGljIHN1YnRpdGxlIGZvciBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRBeGlzVXNlQXV0b21hdGljU3VidGl0bGUgPSAnc2V0LWF4aXMtdXNlLWF1dG9tYXRpYy1zdWJ0aXRsZScsXHJcblxyXG4gICAgLy8gU2V0cyB0aGUgYXhpcyByYW5nZSB0eXBlIG9mIGEgcXVhbnRpdGF0aXZlIGF4aXNcclxuICAgIFNldEF4aXNFeHRlbnRTdGFydFR5cGUgPSAnc2V0LWF4aXMtZXh0ZW50LXN0YXJ0LXR5cGUnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgcmFuZ2UgdHlwZSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRBeGlzRXh0ZW50RW5kVHlwZSA9ICdzZXQtYXhpcy1leHRlbnQtZW5kLXR5cGUnLFxyXG5cclxuICAgIC8vIFNldHMgdGhlIGF4aXMgcmFuZ2UgdHlwZSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRCb3RoQXhpc0V4dGVudHNUeXBlID0gJ3NldC1ib3RoLWF4aXMtZXh0ZW50cy10eXBlJyxcclxuXHJcbiAgICAvLyBTZXRzIHdoZXRoZXIgb3Igbm90IHRvIGZvcmNlLWluY2x1ZGUgemVybyBvbiBhIHF1YW50aXRhdGl2ZSBheGlzXHJcbiAgICBTZXRBeGlzSW5jbHVkZVplcm8gPSAnc2V0LWF4aXMtaW5jbHVkZS16ZXJvJyxcclxuXHJcbiAgICAvLyBTZXRzIG5ldyBtaW4vbWF4IHJhbmdlIGVuZGluZ3MgZm9yIGF4aXNcclxuICAgIFNldEF4aXNSYW5nZUVuZCA9ICdzZXQtYXhpcy1yYW5nZS1lbmQnLFxyXG5cclxuICAgIC8vIFNldHMgbmV3IG1pbi9tYXggcmFuZ2UgZW5kaW5ncyBmb3IgYXhpc1xyXG4gICAgU2V0QXhpc1JhbmdlU3RhcnQgPSAnc2V0LWF4aXMtcmFuZ2Utc3RhcnQnLFxyXG5cclxuICAgIC8vIFN5bmNocm9uaXplIGR1YWwgYXhlcyBvbiBhIGZvbGRlZCBxdWFudGl0YXRpdmUgYXhpc1xyXG4gICAgU2V0QXhpc0ZvbGRTdGF0ZSA9ICdzZXQtYXhpcy1mb2xkLXN0YXRlJyxcclxuXHJcbiAgICAvLyBTZXQgdGhlIG1ham9yIHRpY2sgbWFyayBzdGF0ZVxyXG4gICAgU2V0TWFqb3JUaWNrTWFya1N0YXRlID0gJ3NldC1tYWpvci10aWNrLW1hcmstc3RhdGUnLFxyXG5cclxuICAgIC8vIFNldCB0aGUgbWlub3IgdGljayBtYXJrIHN0YXRlXHJcbiAgICBTZXRNaW5vclRpY2tNYXJrU3RhdGUgPSAnc2V0LW1pbm9yLXRpY2stbWFyay1zdGF0ZScsXHJcblxyXG4gICAgLy8gU2V0IHRoZSBtYWpvciB0aWNrIG1hcmsgb3JpZ2luXHJcbiAgICBTZXRNYWpvclRpY2tNYXJrT3JpZ2luID0gJ3NldC1tYWpvci10aWNrLW1hcmstb3JpZ2luJyxcclxuXHJcbiAgICAvLyBTZXQgdGhlIG1pbm9yIHRpY2sgbWFyayBvcmlnaW5cclxuICAgIFNldE1pbm9yVGlja01hcmtPcmlnaW4gPSAnc2V0LW1pbm9yLXRpY2stbWFyay1vcmlnaW4nLFxyXG5cclxuICAgIC8vIFNldCB0aGUgbWFqb3IgdGljayBtYXJrIHNwYWNpbmdcclxuICAgIFNldE1ham9yVGlja01hcmtTcGFjaW5nID0gJ3NldC1tYWpvci10aWNrLW1hcmstc3BhY2luZycsXHJcblxyXG4gICAgLy8gU2V0IHRoZSBtaW5vciB0aWNrIG1hcmsgc3BhY2luZ1xyXG4gICAgU2V0TWlub3JUaWNrTWFya1NwYWNpbmcgPSAnc2V0LW1pbm9yLXRpY2stbWFyay1zcGFjaW5nJyxcclxuXHJcbiAgICAvLyBTZXQgdGhlIG1ham9yIHRpY2sgbWFyayB1bml0c1xyXG4gICAgU2V0TWFqb3JUaWNrTWFya1VuaXRzID0gJ3NldC1tYWpvci10aWNrLW1hcmstdW5pdHMnLFxyXG5cclxuICAgIC8vIFNldCB0aGUgbWlub3IgdGljayBtYXJrIHVuaXRzXHJcbiAgICBTZXRNaW5vclRpY2tNYXJrVW5pdHMgPSAnc2V0LW1pbm9yLXRpY2stbWFyay11bml0cycsXHJcblxyXG5cclxuICAgIC8vIFxyXG4gICAgQm91bmRpbmdCb3hQYW4gPSAnYm91bmRpbmctYm94LXBhbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBPblRvZ2dsZUF4aXNSYW5nZXMgPSAnb24tdG9nZ2xlLWF4aXMtcmFuZ2VzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhbmVQYW4gPSAncGFuZS1wYW4nLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFuZVpvb20gPSAncGFuZS16b29tJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFBhbmVab29tRmFjdG9yID0gJ3BhbmUtem9vbS1mYWN0b3InLFxyXG5cclxuICAgIC8vIFxyXG4gICAgUGFuZVpvb21QYW4gPSAncGFuZS16b29tLXBhbicsXHJcblxyXG4gICAgLy8gXHJcbiAgICBSZW9yZGVyRm9sZGVkQXhlcyA9ICdyZW9yZGVyLWZvbGRlZC1heGVzJyxcclxuXHJcbiAgICAvLyBcclxuICAgIFJlc2V0QXhpc1JhbmdlID0gJ3Jlc2V0LWF4aXMtcmFuZ2UnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU2VsZWN0QXhpc1R1cGxlcyA9ICdzZWxlY3QtYXhpcy10dXBsZXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3dhcFJlZmVyZW5jZUxpbmVGaWVsZHMgPSAnc3dhcC1yZWZlcmVuY2UtbGluZS1maWVsZHMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgU3luY2hyb25pemVBeGlzID0gJ3N5bmNocm9uaXplLWF4aXMnLFxyXG5cclxuICAgIC8vIFxyXG4gICAgVG9nZ2xlRHVhbEF4aXMgPSAndG9nZ2xlLWR1YWwtYXhpcycsXHJcblxyXG4gICAgLy8gXHJcbiAgICBab29tTGV2ZWwgPSAnem9vbS1sZXZlbCcsXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9nZW4tc3JjL3ByZXNsYXllci9Db21tYW5kSWRzLnRzXG4gKiovIiwiaW1wb3J0IHsgVmVyYklkIGFzIEFwaVZlcmJJZCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQ29tbWFuZFJlZ2lzdHJhdGlvbiB9IGZyb20gJy4vQ29tbWFuZFJlZ2lzdHJhdGlvbic7XHJcblxyXG4vKipcclxuICogUmVnaXN0cnkgd2hpY2ggY29udGFpbnMgbWFwcGluZ3MgZnJvbSBhbiBBcGkgVmVyYklkIHRvIGEgcHJlcy1sYXllciBjb21tYW5kLlxyXG4gKiBUaGlzIGluY2x1ZGVzIHRoZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm4gdmFsdWVzIG9mIHRoZSBjb21tYW5kIGFzIHdlbGxcclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvbW1hbmRNYXBwaW5nUmVnaXN0cnkge1xyXG4gIHByaXZhdGUgc3RhdGljIFVOS05PV05fQVBJVkVSQjogc3RyaW5nID0gJ1Vua25vd24gQXBpVmVyYjogJTEnO1xyXG4gIHByaXZhdGUgX2NvbW1hbmRzOiB7IFthcGlWZXJiOiBzdHJpbmddOiBDb21tYW5kUmVnaXN0cmF0aW9uIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeS5cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2NvbW1hbmRzID0ge307XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3IGNvbW1hbmQgdG8gdGhlIHJlZ2lzdHJ5XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0NvbW1hbmRSZWdpc3RyYXRpb259IGNvbW1hbmRcclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGRDb21tYW5kKGNvbW1hbmQ6IENvbW1hbmRSZWdpc3RyYXRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbW1hbmRzW2NvbW1hbmQuYXBpVmVyYklkXSA9IGNvbW1hbmQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHJlZ2lzdHJ5IGNvbnRhaW5zIGEgZGVmaW5pdGlvbiBmb3IgdGhpcyBBcGlWZXJiSWRcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7QXBpVmVyYklkfSBhcGlWZXJiSWRcclxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBoYXNDb21tYW5kKGFwaVZlcmJJZDogQXBpVmVyYklkKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbW1hbmRzLmhhc093blByb3BlcnR5KGFwaVZlcmJJZCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5fY29tbWFuZHNbYXBpVmVyYklkXSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBjb21tYW5kIHJlZ2lzdHJhdGlvbiBmb3IgdGhpcyBjb21tYW5kIGlkIG9yIHRocm93cyBpZiBpdCBkb2Vzbid0IGV4aXN0XHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0FwaVZlcmJJZH0gYXBpVmVyYklkXHJcbiAgICogQHJldHVybnMge0NvbW1hbmRSZWdpc3RyYXRpb259XHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRNYXBwaW5nUmVnaXN0cnlcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q29tbWFuZChhcGlWZXJiSWQ6IEFwaVZlcmJJZCk6IENvbW1hbmRSZWdpc3RyYXRpb24ge1xyXG4gICAgaWYgKCF0aGlzLmhhc0NvbW1hbmQoYXBpVmVyYklkKSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmVycm9yKENvbW1hbmRNYXBwaW5nUmVnaXN0cnkuVU5LTk9XTl9BUElWRVJCLCBbYXBpVmVyYklkXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2NvbW1hbmRzW2FwaVZlcmJJZF07XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL0NvbW1hbmRNYXBwaW5nUmVnaXN0cnkudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIE1vZGVsLFxyXG4gIFBhcmFtZXRlcklkIGFzIEFwaVBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZCBhcyBBcGlWZXJiSWQsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERvY0NvbW1hbmRzIGFzIFByZXNMYXllckRvY0NvbW1hbmRJZCxcclxuICBTcnZDb21tYW5kcyBhcyBQcmVzTGF5ZXJTcnZDb21tYW5kSWQsXHJcbiAgVUlDb21tYW5kcyBhcyBQcmVzTGF5ZXJVSUNvbW1hbmRJZFxyXG59IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL0NvbW1hbmRJZHMnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUHJlc0xheWVyUGFyYW1ldGVySWQgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeSwgUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnkgfSBmcm9tICcuL1BhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnknO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgaXMgYW4gZW51bSB1c2VkIG9ubHkgaW50ZXJuYWxseSBieSB0aGUgYXBpLWNvcmUgcHJvamVjdC5cclxuICogVGhpcyBlbnVtIHJlcHJlc2VudHMgdGhlIGRpZmZlcmVuY2UgbmFtZXNwYWNlcyBhdmFpbGFibGUgZm9yIGNvbW1hbmRzLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQ29tbWFuZE5hbWVzcGFjZSB7XHJcbiAgVGFiRG9jID0gJ3RhYmRvYycsXHJcbiAgVGFiU3J2ID0gJ3RhYnNydicsXHJcbiAgVGFiVUkgPSAndGFidWknXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIGFuIGlucHV0IG9yIG91dHB1dCBwYXJhbXRlciBmb3IgYSBjb21tYW5kLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBDb21tYW5kUGFyYW1ldGVyXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29tbWFuZFBhcmFtZXRlciB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBDb21tYW5kUGFyYW1ldGVyLlxyXG4gICAqIEBwYXJhbSB7QXBpUGFyYW1ldGVySWR9IGFwaUlkXHJcbiAgICogQHBhcmFtIHtQcmVzTGF5ZXJQYXJhbWV0ZXJJZH0gcHJlc0xheWVySWRcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtpc09wdGlvbmFsXVxyXG4gICAqIEBtZW1iZXJvZiBDb21tYW5kUGFyYW1ldGVyXHJcbiAgICovXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYXBpSWQ6IEFwaVBhcmFtZXRlcklkLFxyXG4gICAgcHJpdmF0ZSBfcHJlc0xheWVySWQ6IFByZXNMYXllclBhcmFtZXRlcklkLFxyXG4gICAgcHJpdmF0ZSBfaXNPcHRpb25hbD86IGJvb2xlYW4pIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgSWQgb2YgdGhlIEFwaSBQYXJhbWV0ZXJcclxuICAgKlxyXG4gICAqIEByZWFkb25seVxyXG4gICAqIEB0eXBlIHtBcGlQYXJhbWV0ZXJJZH1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZFBhcmFtZXRlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgYXBpSWQoKTogQXBpUGFyYW1ldGVySWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaUlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElkIG9mIHRoZSBQcmVzIExheWVyIFBhcmFtZXRlclxyXG4gICAqXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQHR5cGUge1ByZXNMYXllclBhcmFtZXRlcklkfVxyXG4gICAqIEBtZW1iZXJvZiBDb21tYW5kUGFyYW1ldGVyXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBwcmVzTGF5ZXJJZCgpOiBQcmVzTGF5ZXJQYXJhbWV0ZXJJZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJlc0xheWVySWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlclxyXG4gICAqXHJcbiAgICogQHJlYWRvbmx5XHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRQYXJhbWV0ZXJcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uYWwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLl9pc09wdGlvbmFsO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSB0aGUgY29tcGxldGUgbWFwcGluZyBvZiBhbiBBcGlDb21tYW5kIHRvIGl0cyBjb3JyZXNwb25kaW5nIHByZXMtbGF5ZXIgY29tbWFuZFxyXG4gKiBhbmQgdGhlIGNvbnZlcnNpb24gb2YgdGhlIG91dHB1dCB2YWx1ZSBhcyB3ZWxsXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIENvbW1hbmRSZWdpc3RyYXRpb25cclxuICpcclxuICogQHBhcmFtIHtBcGlWZXJiSWR9IF9hcGlWZXJiSWQgdGhlIGludGVybmFsIGFwaSB2ZXJiIElEIG9mIHRoaXMgY29tbWFuZC5cclxuICogQHBhcmFtIHtQcmVzTGF5ZXJEb2NDb21tYW5kSWQgfCBQcmVzTGF5ZXJTcnZDb21tYW5kSWQgfCBQcmVzTGF5ZXJVSUNvbW1hbmRJZH0gX2NvbW1hbmRJZFxyXG4gKiAgIHRoZSBwcmVzIGxheWVyIGNvbW1hbmQgdG8gZXhlY3V0ZVxyXG4gKiBAcGFyYW0ge0NvbW1hbmRQYXJhbWV0ZXJbXX0gX2lucHV0UGFyYW1ldGVycyBsaXN0IG9mIHBhcmFtZXRlcnMgdG8gc2VuZCB3aXRoIHRoaXMgY29tbWFuZCB0byB0aGUgcGxhdGZvcm0uXHJcbiAqIEBwYXJhbSB7Q29tbWFuZFBhcmFtZXRlcn0gW2lzT3B0aW9uYWxdIGV4cGVjdGVkIHJldHVybiBwYXJhbXRlcnMgZnJvbSB0aGUgcGxhdGZvcm0uXHJcbiAqIEBwYXJhbSB7Q29tbWFuZE5hbWVzcGFjZX0gW2lzT3B0aW9uYWxdIG5hbWVzcGFjZSBvZiB0aGUgY29tbWFuZCAoZGVmYXVsdHMgdG8gVGFiRG9jIGlmIG5vdCBwcm92aWRlZCkuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ29tbWFuZFJlZ2lzdHJhdGlvbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYXBpVmVyYklkOiBBcGlWZXJiSWQsXHJcbiAgICBwcml2YXRlIF9jb21tYW5kSWQ6IFByZXNMYXllckRvY0NvbW1hbmRJZCB8IFByZXNMYXllclNydkNvbW1hbmRJZCB8IFByZXNMYXllclVJQ29tbWFuZElkLFxyXG4gICAgcHJpdmF0ZSBfaW5wdXRQYXJhbWV0ZXJzOiBDb21tYW5kUGFyYW1ldGVyW10sXHJcbiAgICBwcml2YXRlIF9vdXRwdXRQYXJhbWV0ZXI/OiBDb21tYW5kUGFyYW1ldGVyLFxyXG4gICAgcHJpdmF0ZSBfbmFtZXNwYWNlPzogQ29tbWFuZE5hbWVzcGFjZSxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFwaVZlcmJJZCgpOiBBcGlWZXJiSWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVZlcmJJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29tbWFuZElkKCk6IFByZXNMYXllckRvY0NvbW1hbmRJZCB8IFByZXNMYXllclNydkNvbW1hbmRJZCB8IFByZXNMYXllclVJQ29tbWFuZElkIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21tYW5kSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWVzcGFjZSgpOiBDb21tYW5kTmFtZXNwYWNlIHtcclxuICAgIHJldHVybiB0aGlzLl9uYW1lc3BhY2UgfHwgQ29tbWFuZE5hbWVzcGFjZS5UYWJEb2M7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlucHV0cygpOiBDb21tYW5kUGFyYW1ldGVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lucHV0UGFyYW1ldGVycyB8fCBuZXcgQXJyYXk8Q29tbWFuZFBhcmFtZXRlcj4oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb3V0cHV0KCk6IENvbW1hbmRQYXJhbWV0ZXIgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX291dHB1dFBhcmFtZXRlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoaXMgY29tbWFuZCByZXF1aXJlcyBhbiBhZGQtaW4gbG9jYXRvciB0byBiZSBpbmplY3RlZCBpbnRvIGl0XHJcbiAgICpcclxuICAgKiBAcmVhZG9ubHlcclxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZFJlZ2lzdHJhdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgbmVlZHNBZGRJbkxvY2F0b3IoKTogYm9vbGVhbiB7XHJcbiAgICBmb3IgKGNvbnN0IGlucHV0IG9mIHRoaXMuaW5wdXRzKSB7XHJcbiAgICAgIGlmIChpbnB1dC5hcGlJZCA9PT0gQXBpUGFyYW1ldGVySWQuRXh0ZW5zaW9uTG9jYXRvcikge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIGRpY3Rpb25hcnkgb2YgcHJlcy1sYXllciBwYXJhbWV0ZXJzIGZyb20gdGhlIGlucHV0IGRpY3Rpb25hcnlcclxuICAgKiBvZiBhcGkgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7RXhlY3V0ZVBhcmFtZXRlcnN9IHBhcmFtZXRlcnMgLSBUaGUgcGFyYW1ldGVycyB0byBjb252ZXJ0XHJcbiAgICogQHBhcmFtIHtBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeX0gYXBpVG9QcmVzTGF5ZXIgLSBtYXBwaW5nIHRvIGRldGVybWluZSB0aGUgY29udmVyc2lvblxyXG4gICAqIEByZXR1cm5zIHt7IFtwYXJhbUlkOiBzdHJpbmddOiBvYmplY3Q7IH19IC0gcGFyYW1ldGVycyB0byBzZW5kIHRvIHRoZSBwcmVzLWxheWVyXHJcbiAgICogQG1lbWJlcm9mIENvbW1hbmRSZWdpc3RyYXRpb25cclxuICAgKi9cclxuICBwdWJsaWMgY3JlYXRlUGFyYW1zKHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzLCBhcGlUb1ByZXNMYXllcjogQXBpVG9QcmVzTGF5ZXJNYXBwaW5nUmVnaXN0cnkpOiB7IFtwYXJhbUlkOiBzdHJpbmddOiBvYmplY3Q7IH0ge1xyXG4gICAgbGV0IHJlc3VsdDogeyBbcGFyYW1JZDogc3RyaW5nXTogb2JqZWN0OyB9ID0ge307XHJcblxyXG4gICAgZm9yIChjb25zdCBpbnB1dFBhcmFtIG9mIHRoaXMuaW5wdXRzKSB7XHJcbiAgICAgIC8vIEZpcnN0IG1ha2Ugc3VyZSB0aGUgcGFyYW1ldGVyIGlzIHRoZXJlIG9yIHRoYXQgaXQncyBvcHRpb25hbFxyXG4gICAgICBpZiAoIXBhcmFtZXRlcnMuaGFzT3duUHJvcGVydHkoaW5wdXRQYXJhbS5hcGlJZCkpIHtcclxuICAgICAgICBpZiAoaW5wdXRQYXJhbS5pc09wdGlvbmFsKSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5taXNzaW5nUGFyYW1ldGVyKFtpbnB1dFBhcmFtLmFwaUlkXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBGaW5kIHRoZSBjb252ZXJzaW9uIGZ1bmN0aW9uIGZvciB0aGlzIHBhcmFtZXRlclxyXG4gICAgICBjb25zdCBjb252ZXJzaW9uRm4gPSBhcGlUb1ByZXNMYXllci5nZXQoaW5wdXRQYXJhbS5hcGlJZCwgaW5wdXRQYXJhbS5wcmVzTGF5ZXJJZCk7XHJcblxyXG4gICAgICAvLyBDb252ZXJ0IHRoZSBwcmVzIG1vZGVsIGFuZCBpbnNlcnQgaXQgaW50byBvdXIgcmVzdWx0cyBvYmplY3RcclxuICAgICAgcmVzdWx0W2lucHV0UGFyYW0ucHJlc0xheWVySWRdID0gY29udmVyc2lvbkZuKHBhcmFtZXRlcnNbaW5wdXRQYXJhbS5hcGlJZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcm9jZXNzZXMgdGhlIHJlc3VsdCByZWNlaXZlZCBiYWNrIGFmdGVyIGV4ZWN1dGluZyBhIHByZXMtbGF5ZXIgY29tbWFuZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHt7IFtkb2NQYXJhbUlkOiBzdHJpbmddOiBvYmplY3Q7IH19IHJlc3VsdFBhcmFtZXRlcnNcclxuICAgKiBAcGFyYW0ge1ByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5fSBwcmVzTGF5ZXJUb0FwaVxyXG4gICAqIEByZXR1cm5zIHtNb2RlbH1cclxuICAgKiBAbWVtYmVyb2YgQ29tbWFuZFJlZ2lzdHJhdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBQcm9jZXNzUmVzdWx0KHJlc3VsdFBhcmFtZXRlcnM6IHsgW2RvY1BhcmFtSWQ6IHN0cmluZ106IG9iamVjdDsgfSwgcHJlc0xheWVyVG9BcGk6IFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5KTogTW9kZWwge1xyXG4gICAgLy8gVE9ETzogQWRkIGVycm9yIGhhbmRsaW5nXHJcbiAgICBpZiAodGhpcy5vdXRwdXQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBjb25zdCBub091dHB1dE1vZGVsOiBNb2RlbCA9IHt9O1xyXG4gICAgICByZXR1cm4gbm9PdXRwdXRNb2RlbDtcclxuICAgIH1cclxuICAgIGlmICghcmVzdWx0UGFyYW1ldGVycyB8fCAhcmVzdWx0UGFyYW1ldGVycy5oYXNPd25Qcm9wZXJ0eSh0aGlzLm91dHB1dC5wcmVzTGF5ZXJJZCkpIHtcclxuXHJcbiAgICAgIC8vIGlmIHRoZSBvdXRwdXQgcmVzdWx0IGlzIG1hcmtlZCBhcyBvcHRpb25hbCwgd2UgZG9uJ3QgY29uc2lkZXIgdGhpcyBhbiBlcnJvciBzaXR1YXRpb24gYW5kIGp1c3QgcmV0dXJuIGFuIGVtcHR5IG1vZGVsXHJcbiAgICAgIGlmICh0aGlzLm91dHB1dC5pc09wdGlvbmFsKSB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICB9XHJcbiAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24ubWlzc2luZ1BhcmFtZXRlcihbdGhpcy5vdXRwdXQucHJlc0xheWVySWRdKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb252ZXJzaW9uRm4gPSBwcmVzTGF5ZXJUb0FwaS5nZXQodGhpcy5vdXRwdXQucHJlc0xheWVySWQsIHRoaXMub3V0cHV0LmFwaUlkKTtcclxuICAgIHJldHVybiBjb252ZXJzaW9uRm4ocmVzdWx0UGFyYW1ldGVyc1t0aGlzLm91dHB1dC5wcmVzTGF5ZXJJZF0pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9Db21tYW5kUmVnaXN0cmF0aW9uLnRzXG4gKiovIiwiaW1wb3J0IHsgTW9kZWwsIE5vdGlmaWNhdGlvbklkIGFzIEFwaSwgVmVyc2lvbk51bWJlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JZCBhcyBQTCB9IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL0V2ZW50cyc7XHJcbmltcG9ydCB7IFByZXNlbnRhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvUHJlc01vZGVscyc7XHJcbmltcG9ydCB7IFByZXNMYXllclRvQXBpQ29udmVydGVyIH0gZnJvbSAnLi9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcic7XHJcblxyXG5leHBvcnQgdHlwZSBDb252ZXJzaW9uRm4gPSAocHJlc01vZGVsOiBQcmVzZW50YXRpb25Nb2RlbCkgPT4gTW9kZWw7XHJcblxyXG4vKipcclxuICogU2ltcGxlIHdyYXBwZXIgd2hpY2ggaG9sZHMgYSBtYXBwaW5nIHRvIGdvIGZyb20gYSBwcmVzLWxheWVyIGV2ZW50IHRvIGFuIEFQSSBldmVudFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV2ZW50TWFwcGluZ1JlZ2lzdHJhdGlvbiB7XHJcbiAgcHVibGljIGdldCBwcmVzTGF5ZXJJZCgpOiBQTCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJlc0xheWVySWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFwaUlkKCk6IEFwaSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbnZlcnRlcigpOiBDb252ZXJzaW9uRm4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnZlcnRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3ByZXNMYXllcklkOiBQTCxcclxuICAgIHByaXZhdGUgX2FwaUlkOiBBcGksXHJcbiAgICBwcml2YXRlIF9jb252ZXJ0ZXI6IENvbnZlcnNpb25GbikgeyB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTaW1wbGUgdHlwZSB3aGljaCBoYXMga2V5cyBvZiBQTCBldmVudCBpZHMgdG8gRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uc1xyXG4gKi9cclxuZXhwb3J0IHR5cGUgRXZlbnRNYXBwaW5nUmVnaXN0cnkgPSB7IFtrZXk6IHN0cmluZ106IEV2ZW50TWFwcGluZ1JlZ2lzdHJhdGlvbjsgfTtcclxuXHJcbmV4cG9ydCBjbGFzcyBFdmVudE1hcHBpbmdSZWdpc3RyeUZhY3Rvcnkge1xyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYW5kIHBvcHVsYXRlcyBhIG5ldyBFdmVudE1hcHBpbmdSZWdpc3RyeSBmb3IgdGhlIHNwZWNpZmljIHZlcnNpb24gbnVtYmVyIHJlcXVlc3RlZFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWZXJzaW9uTnVtYmVyfSB2ZXJzaW9uTnVtYmVyXHJcbiAgICogQHJldHVybnMge0V2ZW50TWFwcGluZ1JlZ2lzdHJ5fVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlRXZlbnRNYXBwaW5nUmVnaXN0cnkodmVyc2lvbk51bWJlcjogVmVyc2lvbk51bWJlcik6IEV2ZW50TWFwcGluZ1JlZ2lzdHJ5IHtcclxuICAgIGxldCByZWdpc3RyeTogRXZlbnRNYXBwaW5nUmVnaXN0cnkgPSB7fTtcclxuICAgIHJlZ2lzdHJ5W1BMLlNlbGVjdGlvbkNoYW5nZWRdID0gbmV3IEV2ZW50TWFwcGluZ1JlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuU2VsZWN0aW9uQ2hhbmdlZCxcclxuICAgICAgQXBpLlNlbGVjdGVkTWFya3NDaGFuZ2VkLFxyXG4gICAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0VmlzdWFsSWRcclxuICAgICk7XHJcblxyXG4gICAgcmVnaXN0cnlbUEwuUGFyYW1ldGVyQ2hhbmdlZF0gPSBuZXcgRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5QYXJhbWV0ZXJDaGFuZ2VkLFxyXG4gICAgICBBcGkuUGFyYW1ldGVyQ2hhbmdlZCxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpZWxkQ2FwdGlvblBhaXJcclxuICAgICk7XHJcblxyXG4gICAgcmVnaXN0cnlbUEwuRmlsdGVyQ2hhbmdlZF0gPSBuZXcgRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5GaWx0ZXJDaGFuZ2VkLFxyXG4gICAgICBBcGkuRmlsdGVyQ2hhbmdlZCxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpbHRlckV2ZW50XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiByZWdpc3RyeTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LnRzXG4gKiovIiwiXHJcbi8qIHRzbGludDpkaXNhYmxlICovXHJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vXHJcbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXHJcbi8vIGJ5IHJlZ2lzdGVyZWQgcGF0ZW50cyBhbmQgb3RoZXIgYXBwbGljYWJsZSBVLlMuIGFuZCBpbnRlcm5hdGlvbmFsIGxhd3MgYW5kXHJcbi8vIHJlZ3VsYXRpb25zLlxyXG4vL1xyXG4vLyBVbmxpY2Vuc2VkIHVzZSBvZiB0aGUgY29udGVudHMgb2YgdGhpcyBmaWxlIGlzIHByb2hpYml0ZWQuIFBsZWFzZSByZWZlciB0b1xyXG4vLyB0aGUgTk9USUNFUy50eHQgZmlsZSBmb3IgZnVydGhlciBkZXRhaWxzLlxyXG4vL1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBXQVJOSU5HOiBDb21wdXRlciBnZW5lcmF0ZWQgZmlsZS4gIERvIG5vdCBoYW5kIG1vZGlmeS5cclxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvZXZlbnRzLXRzLnRlbXBsYXRlJywgdScuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS90ZW1wLXByZXMtbGF5ZXIvYWxsLWV2ZW50cy5kYXRhJywgJy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL25vZGVfbW9kdWxlcy9AdGFibGVhdS9wcmVzbGF5ZXItY29kZWdlbi10eXBlc2NyaXB0L3RlbXBsYXRlcy9ldmVudHMtY29tbW9uLnRlbXBsYXRlJ11cclxuXHJcbi8vIEV2ZW50cyB5b3UgY2FuIHJlZ2lzdGVyIHRvIHJlY2VpdmUgcHJlc2VudGF0aW9uIG1vZGVsc1xyXG5leHBvcnQgZW51bSBOb3RpZmljYXRpb25JZCB7XHJcblxyXG4gIC8vIFRyaWdnZXJlZCB3aGVuIGFsaWFzZXMgYXJlIHRvIGJlIGVkaXRlZC4gVXNlZCB0byBsYXVuY2ggYSBkaWFsb2cuXHJcbiAgRWRpdEFsaWFzZXNEaWFsb2dOb3RpZmljYXRpb24gPSAnZG9jOmVkaXQtYWxpYXNlcy1kaWFsb2ctbm90aWZpY2F0aW9uLWV2ZW50JyxcclxuXHJcbiAgLy8gZm9yIHRoZSBjYWxjdWxhdGlvbiBkaWFsb2dcclxuICBDYWxjdWxhdGlvbkRpYWxvZyA9ICdkb2M6Y2FsY3VsYXRpb24tZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIGZvciBhbiBhZGhvYyBjYWxjIGluIGEgdHlwZSBpbiBwaWxsXHJcbiAgVHlwZUluUGlsbCA9ICdkb2M6dHlwZS1pbi1waWxsLWV2ZW50JyxcclxuXHJcbiAgLy8gcmVzdWx0cyBvZiBhIHZhbGlkYXRpb24gY29tbWFuZFxyXG4gIENvbW1hbmRWYWxpZGF0aW9uID0gJ2RvYzpjb21tYW5kLXZhbGlkYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3IgdGhlIGdyb3VwcyBkaWFsb2dcclxuICBVcGRhdGVDYXRlZ29yaWNhbEJpbkVkaXREaWFsb2cgPSAnZG9jOnVwZGF0ZS1jYXRlZ29yaWNhbC1iaW4tZWRpdC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBmb3IgdGhlIGNhdGVnb3JpY2FsIGNvbG9yIGRpYWxvZ1xyXG4gIENhdGVnb3JpY2FsQ29sb3IgPSAnZG9jOmNhdGVnb3JpY2FsLWNvbG9yLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIHRoZSB3ZWIgY2F0ZWdvcmljYWwgY29sb3IgZGlhbG9nXHJcbiAgV2ViQ2F0ZWdvcmljYWxDb2xvckRpYWxvZyA9ICdkb2M6d2ViLWNhdGVnb3JpY2FsLWNvbG9yLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIHVzZXIgaW52b2tlZCBhY3Rpb24gd2hpY2ggcmVxdWlyZXMgYSBEYXRhIEFsZXJ0IERpYWxvZ1xyXG4gIERhdGFBbGVydERpYWxvZyA9ICdkb2M6ZGF0YS1hbGVydC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCB0byBzZWxlY3QgZmllbGQocykgaW4gdGhlIGRhdGEgc2NoZW1hXHJcbiAgRGF0YVNjaGVtYVNlbGVjdGlvbiA9ICdkb2M6ZGF0YS1zY2hlbWEtc2VsZWN0aW9uLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHdoZW4gdGhlIGRhdGEgc291cmNlIGJlaW5nIGVkaXRlZCBpcyB1cGRhdGVkXHJcbiAgVXBkYXRlRGF0YVByZXBhcmF0aW9uID0gJ2RvYzp1cGRhdGUtZGF0YS1wcmVwYXJhdGlvbi1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB3aGVuIHRoZSBkYXRhIHNvdXJjZSBkYXRhIGlzIHVwZGF0ZWRcclxuICBVcGRhdGVEYXRhU291cmNlRGF0YSA9ICdkb2M6dXBkYXRlLWRhdGEtc291cmNlLWRhdGEtZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3Igd2hlbiBhIGNsaWVudCBzaG91bGQgcmVxdWVzdCBuZXcgZGF0YSBzb3VyY2Ugb3IgZGF0YSBzb3VyY2UgZGF0YSBwcmVzIG1vZGVsc1xyXG4gIERhdGFTb3VyY2VVcGRhdGVOZWVkZWQgPSAnZG9jOmRhdGEtc291cmNlLXVwZGF0ZS1uZWVkZWQtZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3IgZ2V0dGluZyB0aGUgcHJlcyBtb2RlbCB0byB1cGRhdGUgZmlsZSBqb2luIHRhYmxlIHByb3BlcnRpZXNcclxuICBUZXh0RmlsZVByb3BlcnRpZXMgPSAnZG9jOnRleHQtZmlsZS1wcm9wZXJ0aWVzLWV2ZW50JyxcclxuXHJcbiAgLy8gbm90aWZ5IGNoYW5nZXMgdG8gdGhlIHN0YXRlIG9mIGEgZmlsdGVyJ3MgcmVsYXRpb25hbCBtb2RlbFxyXG4gIEZpbHRlclJlbGF0aW9uYWxTdGF0ZUNoYW5nZWQgPSAnZG9jOmZpbHRlci1yZWxhdGlvbmFsLXN0YXRlLWNoYW5nZWQtZXZlbnQnLFxyXG5cclxuICAvLyBub3RpZnkgY2hhbmdlcyB0byB0aGUgc2l6ZS9zZWxlY3Rpb24gY291bnQgb2YgYSByZWxhdGlvbmFsIGRvbWFpblxyXG4gIEZpbHRlclJlbGF0aW9uYWxEb21haW5DaGFuZ2VkID0gJ2RvYzpmaWx0ZXItcmVsYXRpb25hbC1kb21haW4tY2hhbmdlZC1ldmVudCcsXHJcblxyXG4gIC8vIG5vdGlmeSB3aGVuIGZpbHRlciBjYWNoZSB3YXMgcmVxdWVzdGVkIGJ1dCBub3QgZm91bmRcclxuICBGaWx0ZXJDYWNoZU5vdEZvdW5kID0gJ2RvYzpmaWx0ZXItY2FjaGUtbm90LWZvdW5kLWV2ZW50JyxcclxuXHJcbiAgLy8gSGllcmFyY2h5IFNlbGVjdCBtb2RlbCBvYnNlcnZhYmxlIG5vdGlmaWNhdGlvbi5cclxuICBIaWVyYXJjaHlOb3RpZmljYXRpb24gPSAnZG9jOmhpZXJhcmNoeS1ub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBIaWVyYXJjaHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLlxyXG4gIEhpZXJhcmNoeVNlbGVjdGlvbiA9ICdkb2M6aGllcmFyY2h5LXNlbGVjdGlvbi1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgbWFwIG9wdGlvbnMgZGlhbG9nXHJcbiAgTWFwT3B0aW9uc0RpYWxvZyA9ICdkb2M6bWFwLW9wdGlvbnMtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gbm90aWZ5IHRoZSBQYWdlIFVJKGhpZGUvc2hvdyBzdGF0ZXMsIGxheW91dCkgbmVlZHMgdG8gYmUgdXBkYXRlZFxyXG4gIFVwZGF0ZVBhZ2VVSU5vdGlmaWNhdGlvbiA9ICdkb2M6dXBkYXRlLXBhZ2UtdWlub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBub3RpZnkgdG8gdGhlIFNjZW5lVmlldyBoYXMgYmVlbiBkcmF3bi5cclxuICBTY2VuZVZpZXdEcmF3bk5vdGlmaWNhdGlvbiA9ICdkb2M6c2NlbmUtdmlldy1kcmF3bi1ub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyBUaGUgQW5pbWF0aW9uQ29udHJvbENoYW5nZSBldmVudCBmaXJlcyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBhbiBhbmltYXRpb24gcGxheWJhY2sgYnV0dG9uOiBmb3J3YXJkLCBzdG9wLCBzbG93LCBmYXN0LCBldGMuXHJcbiAgQW5pbWF0aW9uQ29udHJvbENoYW5nZSA9ICdkb2M6YW5pbWF0aW9uLWNvbnRyb2wtY2hhbmdlLWV2ZW50JyxcclxuXHJcbiAgLy8gbm90aWZ5IHRoZSBzaGVldCBoYXMgYmVlbiByZW5hbWVkXHJcbiAgUmVuYW1lU2hlZXROb3RpZmljYXRpb24gPSAnZG9jOnJlbmFtZS1zaGVldC1ub3RpZmljYXRpb24tZXZlbnQnLFxyXG5cclxuICAvLyB1cGRhdGUgdGhlIHdlYiBxdWFudGl0YXRpdmUgY29sb3IgZGlhbG9nXHJcbiAgV2ViUXVhbnRpdGF0aXZlQ29sb3JEaWFsb2cgPSAnZG9jOndlYi1xdWFudGl0YXRpdmUtY29sb3ItZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIHRoZSBidXR0b24gY29uZmlnIGRpYWxvZ1xyXG4gIFVwZGF0ZUJ1dHRvbkNvbmZpZ0RpYWxvZyA9ICdkb2M6dXBkYXRlLWJ1dHRvbi1jb25maWctZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHRoZSByZWZlcmVuY2UgbGluZSBkaWFsb2csIHdoaWNoIGlzIG9ubHkgdmFsaWQgZHVyaW5nIHdlYiBhdXRob3JpbmdcclxuICBVcGRhdGVSZWZMaW5lRGlhbG9nID0gJ2RvYzp1cGRhdGUtcmVmLWxpbmUtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgdG8gdHJpZ2dlciBvdGhlciByZWZlcmVuY2UgbGluZSBkaWFsb2dzIHRvIGNsb3NlXHJcbiAgUmVmTGluZURpYWxvZ09wZW5pbmcgPSAnZG9jOnJlZi1saW5lLWRpYWxvZy1vcGVuaW5nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHRoZSBjbG9zZSBkYXRhIHNvdXJjZSBlcnJvciBkaWFsb2csIHdoaWNoIGlzIG9ubHkgdmFsaWQgZHVyaW5nIHdlYiBhdXRob3JpbmdcclxuICBDbG9zZURhdGFTb3VyY2VFcnJvckRpYWxvZyA9ICdkb2M6Y2xvc2UtZGF0YS1zb3VyY2UtZXJyb3ItZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gdXBkYXRlIHRoZSB3ZWIgU2F2ZSBEYXRhc291cmNlIGRpYWxvZ1xyXG4gIFdlYlNhdmVEYXRhc291cmNlRGlhbG9nID0gJ2RvYzp3ZWItc2F2ZS1kYXRhc291cmNlLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIHdhcm5pbmcgcmVzdWx0aW5nIGZyb20gV2FybmluZ01zZ1xyXG4gIFdhcm5pbmdNZXNzYWdlID0gJ2RvYzp3YXJuaW5nLW1lc3NhZ2UtZXZlbnQnLFxyXG5cclxuICAvLyBldmVudCBmb3IgdGhlIHRhYmxlIGNhbGMgZGlhbG9nLCBvbiB3ZWIsIHRoaXMgaXMgb25seSB2YWxpZCBkdXJpbmcgd2ViIGF1dGhvcmluZ1xyXG4gIFRhYmxlQ2FsY0RpYWxvZyA9ICdkb2M6dGFibGUtY2FsYy1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyB1c2VyIGludm9rZWQgYWN0aW9uIHdoaWNoIHJlcXVpcmVzIFRhYmxlIENhbGMgRGlhbG9nXHJcbiAgVGFibGVDYWxjQWN0aXZhdGVEaWFsb2cgPSAnZG9jOnRhYmxlLWNhbGMtYWN0aXZhdGUtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gZXZlbnQgZm9yIHRoZSB0cmVuZCBsaW5lIGRpYWxvZ1xyXG4gIFVwZGF0ZVRyZW5kTGluZUVkaXREaWFsb2cgPSAnZG9jOnVwZGF0ZS10cmVuZC1saW5lLWVkaXQtZGlhbG9nLWV2ZW50JyxcclxuXHJcbiAgLy8gVGhlIHRhYmxlIHBhZ2UgY2FjaGUgaGFzIGJlZW4gcmVmcmVzaGVkOyBwYWdlcyBtdXN0IGJlIHJlbG9hZGVkIGZyb20gdGhlIGNhY2hlLlxyXG4gIFBhZ2VDYWNoZVJlZnJlc2ggPSAnZG9jOnBhZ2UtY2FjaGUtcmVmcmVzaC1ldmVudCcsXHJcblxyXG4gIC8vIFRoZSB0YWJsZSBwYWdlIGNhY2hlIGhhcyBleHBpcmVkIGFuZCBhbGwgcmVzb3VyY2VzIGhhdmUgYmVlbiByZWxlYXNlZC5cclxuICBQYWdlQ2FjaGVFeHBpcmVkID0gJ2RvYzpwYWdlLWNhY2hlLWV4cGlyZWQtZXZlbnQnLFxyXG5cclxuICAvLyBBbGwgcGFnZXMsIGlkZW50aWZpZWQgYnkgcm93L2NvbCwgaW4gdGhlIHByb3ZpZGVkIGxpc3QgaGF2ZSBleHBpcmVkIGFuZCBzaG91bGQgYmUgcmVsb2FkZWQuXHJcbiAgUGFnZUNhY2hlUGFnZXNFeHBpcmVkID0gJ2RvYzpwYWdlLWNhY2hlLXBhZ2VzLWV4cGlyZWQtZXZlbnQnLFxyXG5cclxuICAvLyBBbGwgcGFnZXMgYmV0d2VlbSB0aGUgcmFuZ2UgKGluY2x1c2l2ZSkgaW4gdGhlIHByb3ZpZGVkIGxpc3QgaGF2ZSBleHBpcmVkIGFuZCBzaG91bGQgYmUgcmVsb2FkZWQuXHJcbiAgUGFnZUNhY2hlUGFnZVJhbmdlRXhwaXJlZCA9ICdkb2M6cGFnZS1jYWNoZS1wYWdlLXJhbmdlLWV4cGlyZWQtZXZlbnQnLFxyXG5cclxuICAvLyBUcmlnZ2VyZWQgd2hlbiB0aGUgdXNlciB3YW50cyB0byByZWxvYWQgYW4gYWRkLWluIGluc3RhbmNlLlxyXG4gIFJlbG9hZEFkZEluID0gJ2RvYzpyZWxvYWQtYWRkLWluLWV2ZW50JyxcclxuXHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gdGhlIHNlbGVjdGVkIG1hcmtzIGhhdmUgY2hhbmdlZC5cclxuICBTZWxlY3Rpb25DaGFuZ2VkID0gJ2RvYzpzZWxlY3Rpb24tY2hhbmdlZC1ldmVudCcsXHJcblxyXG4gIC8vIFRyaWdnZXJlZCB3aGVuIHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlciBoYXMgY2hhbmdlZC4gRW1pdHMgdGhlIG5hbWUgYW5kIGNhcHRpb24gb2YgdGhlIHBhcmFtZXRlclxyXG4gIFBhcmFtZXRlckNoYW5nZWQgPSAnZG9jOnBhcmFtZXRlci1jaGFuZ2VkLWV2ZW50JyxcclxuXHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gdGhlIGZpbHRlcnMgaGF2ZSBjaGFuZ2VkLlxyXG4gIEZpbHRlckNoYW5nZWQgPSAnZG9jOmZpbHRlci1jaGFuZ2VkLWV2ZW50JyxcclxuXHJcbiAgLy8gVHJpZ2dlcmVkIHdoZW4gc2F2ZWQgY2x1c3RlciBuZWVkcyB0byBiZSByZWNhbGN1bGF0ZWQuXHJcbiAgQ2x1c3RlclJlZml0Tm90aWZpY2F0aW9uID0gJ2RvYzpjbHVzdGVyLXJlZml0LW5vdGlmaWNhdGlvbi1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgZGV0YWlsZWQgZXJyb3IgZGlhbG9nXHJcbiAgVXBkYXRlRGV0YWlsZWRFcnJvckRpYWxvZyA9ICdkb2M6dXBkYXRlLWRldGFpbGVkLWVycm9yLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIHVwZGF0ZSB0aGUgYXhpcyBlZGl0IGRpYWxvZ1xyXG4gIFVwZGF0ZUVkaXRBeGlzRGlhbG9nID0gJ2RvYzp1cGRhdGUtZWRpdC1heGlzLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIG5vdGlmaWNhdGlvbiB0byBsYXVuY2ggdGhlIGh5YnJpZCBVSSBzaG93Y2FzZVxyXG4gIExhdW5jaEh5YnJpZFVJU2hvd2Nhc2UgPSAnZG9jOmxhdW5jaC1oeWJyaWQtdWlzaG93Y2FzZS1ldmVudCcsXHJcblxyXG4gIC8vIG5vdGlmaWNhdGlvbiBvZiBuZXcgZWNob2VkIHRleHQgZm9yIEh5YnJpZFVJIHNob3djYXNlIGRlbW9cclxuICBIeWJyaWRVSVNob3djYXNlRWNobyA9ICdkb2M6aHlicmlkLXVpc2hvd2Nhc2UtZWNoby1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgYmluIGRpYWxvZ1xyXG4gIFVwZGF0ZU51bWVyaWNCaW5FZGl0RGlhbG9nID0gJ2RvYzp1cGRhdGUtbnVtZXJpYy1iaW4tZWRpdC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBVcGRhdGUgZm9yIHRoZSByaWNoIHRleHQgZWRpdG9yIGRpYWxvZ1xyXG4gIFJpY2hUZXh0RWRpdG9yRGlhbG9nID0gJ2RvYzpyaWNoLXRleHQtZWRpdG9yLWRpYWxvZy1ldmVudCcsXHJcblxyXG4gIC8vIGV2ZW50IGZvciB0aGUgc29ydCBkaWFsb2dcclxuICBVcGRhdGVTb3J0RGlhbG9nID0gJ2RvYzp1cGRhdGUtc29ydC1kaWFsb2ctZXZlbnQnLFxyXG5cclxuICAvLyBhIHRlc3QgZXZlbnQgd2l0aCBhIHByZXMgbW9kZWxcclxuICBUZXN0RXZlbnRXaXRoTW9kZWwgPSAnZG9jOnRlc3QtZXZlbnQtd2l0aC1tb2RlbC1ldmVudCcsXHJcblxyXG4gIC8vIGEgdGVzdCBldmVudCB3aXRob3V0IGEgcHJlcyBtb2RlbFxyXG4gIFRlc3RFdmVudFdpdGhvdXRNb2RlbCA9ICdkb2M6dGVzdC1ldmVudC13aXRob3V0LW1vZGVsLWV2ZW50J1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQXBpIGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFBhcmFtIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCAqIGFzIFByZXNMYXllciBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmdzIH0gZnJvbSAnLi9FbnVtTWFwcGluZ3MnO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIGNvbnRhaW5pbmcgaGVscGVyIG1ldGhvZHMgZm9yIGNvbnZlcnRpbmcgZnJvbSBQcmVzTGF5ZXJQcmVzTW9kZWxzIHRvIHRoZWlyIEFwaVByZXNNb2RlbHMgZXF1aXZhbGVudHNcclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXJcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlciB7XHJcbiAgcHVibGljIHN0YXRpYyBQQVJBTUVURVJTX0RCX05BTUU6IHN0cmluZyA9ICdQYXJhbWV0ZXJzJztcclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0U2hlZXRQYXRoKHBsU2hlZXRQYXRoOiBQcmVzTGF5ZXIuU2hlZXRQYXRoUHJlc01vZGVsKTogQXBpLlNoZWV0UGF0aCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5TaGVldFBhdGggPSB7XHJcbiAgICAgIHNoZWV0TmFtZTogcGxTaGVldFBhdGguc2hlZXROYW1lLFxyXG4gICAgICBpc0Rhc2hib2FyZDogcGxTaGVldFBhdGguaXNEYXNoYm9hcmQsXHJcbiAgICAgIHN0b3J5Ym9hcmQ6IHBsU2hlZXRQYXRoLnN0b3J5Ym9hcmQsXHJcbiAgICAgIGZsaXBib2FyZFpvbmVJRDogcGxTaGVldFBhdGguZmxpcGJvYXJkWm9uZUlkLFxyXG4gICAgICBzdG9yeVBvaW50SUQ6IHBsU2hlZXRQYXRoLnN0b3J5UG9pbnRJZCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFZpc3VhbElkKHBsVmlzdWFsSWQ6IFByZXNMYXllci5WaXN1YWxJRFByZXNNb2RlbCk6IEFwaS5WaXN1YWxJZCB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5WaXN1YWxJZCA9IHtcclxuICAgICAgd29ya3NoZWV0OiBwbFZpc3VhbElkLndvcmtzaGVldCxcclxuICAgICAgZGFzaGJvYXJkOiBwbFZpc3VhbElkLmRhc2hib2FyZCxcclxuICAgICAgc3Rvcnlib2FyZDogcGxWaXN1YWxJZC5zdG9yeWJvYXJkLFxyXG4gICAgICBmbGlwYm9hcmRab25lSUQ6IHBsVmlzdWFsSWQuZmxpcGJvYXJkWm9uZUlkLFxyXG4gICAgICBzdG9yeVBvaW50SUQ6IHBsVmlzdWFsSWQuc3RvcnlQb2ludElkLFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uTG9jYXRvcihwbEFkZEluTG9jYXRvcjogUHJlc0xheWVyLkFkZEluTG9jYXRvclByZXNNb2RlbCk6IEFwaS5FeHRlbnNpb25Mb2NhdG9yIHtcclxuICAgIGxldCBkYXNoYm9hcmRQYXRoID0gdW5kZWZpbmVkO1xyXG4gICAgaWYgKHBsQWRkSW5Mb2NhdG9yLnNoZWV0UGF0aCkge1xyXG4gICAgICBkYXNoYm9hcmRQYXRoID0gUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChwbEFkZEluTG9jYXRvci5zaGVldFBhdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc3VsdDogQXBpLkV4dGVuc2lvbkxvY2F0b3IgPSB7XHJcbiAgICAgIGluc3RhbmNlSWQ6IHBsQWRkSW5Mb2NhdG9yLmFkZEluSW5zdGFuY2VJZCxcclxuICAgICAgZGFzaGJvYXJkUGF0aDogZGFzaGJvYXJkUGF0aFxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGFzaGJvYXJkSW5ab25lcyhwbERhc2hib2FyZDogUHJlc0xheWVyLkRhc2hib2FyZFByZXNNb2RlbCk6IEFycmF5PEFwaS5EYXNoYm9hcmRab25lPiB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXBpLkRhc2hib2FyZFpvbmU+KCk7XHJcblxyXG4gICAgZm9yIChjb25zdCB6b25lS2V5IG9mIE9iamVjdC5rZXlzKHBsRGFzaGJvYXJkLnpvbmVzKSkge1xyXG4gICAgICBjb25zdCB6b25lID0gcGxEYXNoYm9hcmQuem9uZXNbem9uZUtleV07XHJcbiAgICAgIGxldCBhcGlab25lOiBBcGkuRGFzaGJvYXJkWm9uZSA9IHtcclxuICAgICAgICBuYW1lOiB6b25lLnpvbmVDb21tb24ubmFtZSxcclxuICAgICAgICB6b25lSWQ6IHpvbmUuem9uZUlkLFxyXG4gICAgICAgIHpvbmVUeXBlOiBFbnVtTWFwcGluZ3Muem9uZVR5cGUuY29udmVydCh6b25lLnpvbmVDb21tb24uem9uZVR5cGUpLFxyXG4gICAgICAgIGhlaWdodDogem9uZS56b25lQ29tbW9uLmgsXHJcbiAgICAgICAgd2lkdGg6IHpvbmUuem9uZUNvbW1vbi53LFxyXG4gICAgICAgIHg6IHpvbmUuem9uZUNvbW1vbi54LFxyXG4gICAgICAgIHk6IHpvbmUuem9uZUNvbW1vbi55XHJcbiAgICAgIH07XHJcblxyXG4gICAgICByZXN1bHQucHVzaChhcGlab25lKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGFzaGJvYXJkSW5mbyhwbERhc2hib2FyZEluZm86IFByZXNMYXllci5BZGRJbkRhc2hib2FyZEluZm9QcmVzTW9kZWwpOiBBcGkuRXh0ZW5zaW9uRGFzaGJvYXJkSW5mbyB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5FeHRlbnNpb25EYXNoYm9hcmRJbmZvID0ge1xyXG4gICAgICB6b25lczogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydERhc2hib2FyZEluWm9uZXMocGxEYXNoYm9hcmRJbmZvLmRhc2hib2FyZFByZXNNb2RlbCksXHJcbiAgICAgIG5hbWU6IHBsRGFzaGJvYXJkSW5mby5kYXNoYm9hcmRQcmVzTW9kZWwuc2hlZXRQYXRoLnNoZWV0TmFtZSxcclxuICAgICAgZXh0ZW5zaW9uWm9uZUlkOiBwbERhc2hib2FyZEluZm8uem9uZUlkLFxyXG4gICAgICBzaXplOiBwbERhc2hib2FyZEluZm8uZGFzaGJvYXJkUHJlc01vZGVsLnZpZXdwb3J0U2l6ZVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uSW5zdGFuY2UocGxBZGRJbkluc3RhbmNlOiBQcmVzTGF5ZXIuQWRkSW5JbnN0YW5jZVByZXNNb2RlbCk6IEFwaS5FeHRlbnNpb25JbnN0YW5jZSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5FeHRlbnNpb25JbnN0YW5jZSA9IHtcclxuICAgICAgdXJsOiBwbEFkZEluSW5zdGFuY2UuYWRkSW5SZWdpc3RyYXRpb25QcmVzTW9kZWwudXJsLFxyXG4gICAgICBsb2NhdG9yOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RXh0ZW5zaW9uTG9jYXRvcihwbEFkZEluSW5zdGFuY2UuYWRkSW5Mb2NhdG9yUHJlc01vZGVsKVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uRW5pdnJpb25tZW50KHBsQWRkSW5FbnZpcm9ubWVudDogUHJlc0xheWVyLkFkZEluRW52aXJvbm1lbnRQcmVzTW9kZWwpOiBBcGkuRXh0ZW5zaW9uRW52aXJvbm1lbnQge1xyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRXh0ZW5zaW9uRW52aXJvbm1lbnQgPSB7XHJcbiAgICAgIGV4dGVuc2lvbkNvbnRleHQ6IEVudW1NYXBwaW5ncy5leHRlbnNpb25Db250ZXh0LmNvbnZlcnQocGxBZGRJbkVudmlyb25tZW50LmFkZEluQ29udGV4dCksXHJcbiAgICAgIGV4dGVuc2lvbk1vZGU6IEVudW1NYXBwaW5ncy5leHRlbnNpb25Nb2RlLmNvbnZlcnQocGxBZGRJbkVudmlyb25tZW50LmFkZEluTW9kZSksXHJcbiAgICAgIGV4dGVuc2lvbkxvY2FsZTogcGxBZGRJbkVudmlyb25tZW50LmFkZEluTG9jYWxlLFxyXG4gICAgICBleHRlbnNpb25MYW5ndWFnZTogcGxBZGRJbkVudmlyb25tZW50LmFkZEluTGFuZ3VhZ2UsXHJcbiAgICAgIHRhYmxlYXVWZXJzaW9uOiBwbEFkZEluRW52aXJvbm1lbnQudGFibGVhdVZlcnNpb24sXHJcbiAgICAgIG9wZXJhdGluZ1N5c3RlbTogcGxBZGRJbkVudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbSxcclxuICAgICAgYXBpVmVyc2lvbjogcGxBZGRJbkVudmlyb25tZW50LmFwaVZlcnNpb25cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEV4dGVuc2lvblNldHRpbmdzSW5mbyhwbEFkZEluU2V0dGluZ3M6IFByZXNMYXllci5BZGRJblNldHRpbmdzSW5mb1ByZXNNb2RlbCk6IEFwaS5FeHRlbnNpb25TZXR0aW5nc0luZm8ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRXh0ZW5zaW9uU2V0dGluZ3NJbmZvID0ge1xyXG4gICAgICAvLyBhZGRJblNldHRpbmdzIGlzIHVuZGVmaW5lZCBkdXJpbmcgYm9vdHN0cmFwIGluaXRpYWxpemF0aW9uXHJcbiAgICAgIHNldHRpbmdzVmFsdWVzOiBwbEFkZEluU2V0dGluZ3MuYWRkSW5TZXR0aW5ncyB8fCB7fVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RXh0ZW5zaW9uQm9vdHN0cmFwSW5mbyhwbEJvb3RzdHJhcEluZm86IFByZXNMYXllci5BZGRJbkJvb3RzdHJhcEluZm9QcmVzTW9kZWwpOiBBcGkuRXh0ZW5zaW9uQm9vdHN0cmFwSW5mbyB7XHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5FeHRlbnNpb25Cb290c3RyYXBJbmZvID0ge1xyXG4gICAgICBleHRlbnNpb25EYXNoYm9hcmRJbmZvOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RGFzaGJvYXJkSW5mbyhwbEJvb3RzdHJhcEluZm8uYWRkSW5EYXNoYm9hcmRJbmZvUHJlc01vZGVsKSxcclxuICAgICAgZXh0ZW5zaW9uRW52aXJvbm1lbnQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRFeHRlbnNpb25Fbml2cmlvbm1lbnQocGxCb290c3RyYXBJbmZvLmFkZEluRW52aXJvbm1lbnRQcmVzTW9kZWwpLFxyXG4gICAgICBleHRlbnNpb25JbnN0YW5jZTogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEV4dGVuc2lvbkluc3RhbmNlKHBsQm9vdHN0cmFwSW5mby5hZGRJbkluc3RhbmNlUHJlc01vZGVsKSxcclxuICAgICAgZXh0ZW5zaW9uU2V0dGluZ3NJbmZvOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RXh0ZW5zaW9uU2V0dGluZ3NJbmZvKHBsQm9vdHN0cmFwSW5mby5hZGRJblNldHRpbmdzSW5mbylcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEZpZWxkQ2FwdGlvblBhaXIocGxGaWVsZENhcHRpb25QYWlyOiBQcmVzTGF5ZXIuRmllbGRDYXB0aW9uUGFpclByZXNNb2RlbCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcGxGaWVsZENhcHRpb25QYWlyLmZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RmlsdGVyRXZlbnQocGxGaWx0ZXJFdmVudDogUHJlc0xheWVyLkZpbHRlckNoYW5nZUV2ZW50UHJlc01vZGVsKTogQXBpLkZpbHRlckV2ZW50IHtcclxuICAgIGNvbnN0IHJlc3VsdDogQXBpLkZpbHRlckV2ZW50ID0ge1xyXG4gICAgICB2aXN1YWxJZDogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKHBsRmlsdGVyRXZlbnQudmlzdWFsSWRQcmVzTW9kZWwpLFxyXG4gICAgICBmaWVsZE5hbWU6IHBsRmlsdGVyRXZlbnQuZmllbGRDYXB0aW9uXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGFTY2hlbWEoZGF0YVNjaGVtYTogUHJlc0xheWVyLkRhdGFTY2hlbWFQcmVzTW9kZWwpOiBBcGkuRGF0YVNjaGVtYSB7XHJcbiAgICBsZXQgYXBpRGF0YVNvdXJjZXM6IEFwaS5EYXRhU291cmNlTWFwID0geyB9O1xyXG5cclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGRhdGFTY2hlbWEsICdkYXRhU2NoZW1hJyk7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShkYXRhU2NoZW1hLmRhdGFTb3VyY2VzLCAnZGF0YVNjaGVtYS5kYXRhU291cmNlcycpO1xyXG5cclxuICAgIC8vIENvbnZlcnQgZWFjaCBwcmVzIGxheWVyIGRhdGFzb3VyY2UgaW4gdGhlIHNjaGVtYSB0byBhbiBBcGkgZGF0YXNvdXJjZVxyXG4gICAgT2JqZWN0LmtleXMoZGF0YVNjaGVtYS5kYXRhU291cmNlcykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIC8vIFNraXAgdGhlIGRlZmF1bHQgUGFyYW1ldGVycyBkYXRhc291cmNlIHdlIHJlY2VpdmUgZnJvbSB0aGUgcGxhdGZvcm0uXHJcbiAgICAgIGlmIChkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW2tleV0uZGF0YXNvdXJjZSAhPT0gUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuUEFSQU1FVEVSU19EQl9OQU1FKSB7XHJcbiAgICAgICAgYXBpRGF0YVNvdXJjZXNba2V5XSA9IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnREYXRhU291cmNlKGRhdGFTY2hlbWEuZGF0YVNvdXJjZXNba2V5XSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHNjaGVtYU1hcCA9IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRXb3Jrc2hlZXREYXRhU2NoZW1hTWFwKGRhdGFTY2hlbWEud29ya3NoZWV0RGF0YVNjaGVtYU1hcCk7XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRGF0YVNjaGVtYSA9IHtcclxuICAgICAgZGF0YVNvdXJjZXM6IGFwaURhdGFTb3VyY2VzLFxyXG4gICAgICB3b3Jrc2hlZXREYXRhU2NoZW1hTWFwOiBzY2hlbWFNYXAsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREYXRhU291cmNlKGRhdGFTb3VyY2U6IFByZXNMYXllci5EYXRhU291cmNlUHJlc01vZGVsKTogQXBpLkRhdGFTb3VyY2Uge1xyXG4gICAgY29uc3QgZXh0cmFjdFVwZGF0ZVRpbWUgPSAoZGF0YVNvdXJjZS5leHRyYWN0VXBkYXRlVGltZSA9PT0gJycpID8gdW5kZWZpbmVkIDogZGF0YVNvdXJjZS5leHRyYWN0VXBkYXRlVGltZTtcclxuICAgIGNvbnN0IGRhdGFTb3VyY2VGaWVsZHMgPSBuZXcgQXJyYXk8QXBpLkZpZWxkPigpO1xyXG5cclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGRhdGFTb3VyY2UsICdkYXRhU291cmNlJyk7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShkYXRhU291cmNlLmZpZWxkTGlzdCwgJ2RhdGFTY2hlbWEuZmllbGRMaXN0Jyk7XHJcblxyXG4gICAgZGF0YVNvdXJjZS5maWVsZExpc3QuZm9yRWFjaCgocGxGaWVsZCkgPT4ge1xyXG4gICAgICAvLyBJZiB0aGUgZGF0YXNvdXJjZSBjb250YWlucyBoaWVyYXJjaGllcyBvciBmb2xkZXJzLCB0aGUgYmFzZSBmaWVsZCB3aWxsIGNvbnRhaW5cclxuICAgICAgLy8gYSBsaXN0IG9mIHRoZSBmaWVsZHMgZ3JvdXBlZCBiZW5lYXRoIGl0LCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiB0aG9zZS5cclxuICAgICAgLy8gVGFibGVhdSBkb2VzIG5vdCBzdXBwb3J0IG5lc3RlZCBmb2xkZXJzIG9yIGhpZXJhcmNoaWVzLCBzbyB0aGlzIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVjdXJzaXZlLlxyXG4gICAgICBjb25zdCBoaWVyYXJjaHlNb2RlbCA9IHBsRmllbGQgYXMgUHJlc0xheWVyLkhpZXJhcmNoeVByZXNNb2RlbDtcclxuXHJcbiAgICAgIGlmIChoaWVyYXJjaHlNb2RlbC5jb2x1bW5MaXN0KSB7IC8vIElmIGNvbHVtbiBsaXN0IGlzIGRlZmluZWQsIHRoaXMgaXMgYSBoaWVyYXJjaHkuXHJcbiAgICAgICAgaGllcmFyY2h5TW9kZWwuY29sdW1uTGlzdC5mb3JFYWNoKGZpZWxkID0+IGRhdGFTb3VyY2VGaWVsZHMucHVzaChQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RmllbGQoZmllbGQpKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gVGhpcyBpcyBhIGJpdCBicml0dGxlIGZvciBub3csIGJ1dCB0aGlzIHZhbHVlIGlzIG5vdCBleHBvc2VkIHZpYSB0aGUgcGxhdGZvcm0gRmllbGRUeXBlIEVudW0uXHJcbiAgICAgICAgaWYgKHBsRmllbGQudHlwZSAhPT0gJ2ZpZWxkLWZvbGRlcicgJiYgcGxGaWVsZC50eXBlICE9PSAnZGltZW5zaW9uJykge1xyXG4gICAgICAgICAgZGF0YVNvdXJjZUZpZWxkcy5wdXNoKFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRGaWVsZChwbEZpZWxkKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQ6IEFwaS5EYXRhU291cmNlID0ge1xyXG4gICAgICBuYW1lOiBkYXRhU291cmNlLmRhdGFzb3VyY2VDYXB0aW9uLFxyXG4gICAgICBpZDogZGF0YVNvdXJjZS5kYXRhc291cmNlLFxyXG4gICAgICBpc0V4dHJhY3Q6IChleHRyYWN0VXBkYXRlVGltZSAhPT0gdW5kZWZpbmVkKSxcclxuICAgICAgZXh0cmFjdFVwZGF0ZVRpbWU6IGV4dHJhY3RVcGRhdGVUaW1lLFxyXG4gICAgICBmaWVsZHM6IGRhdGFTb3VyY2VGaWVsZHNcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFdvcmtzaGVldERhdGFTY2hlbWFNYXAoc2NoZW1hTWFwOiB7IFtrZXk6IHN0cmluZ106IFByZXNMYXllci5Xb3Jrc2hlZXREYXRhU2NoZW1hUHJlc01vZGVsIH0pOlxyXG4gICAgQXBpLldvcmtzaGVldERhdGFTY2hlbWFNYXAge1xyXG5cclxuICAgIGxldCByZXN1bHQ6IEFwaS5Xb3Jrc2hlZXREYXRhU2NoZW1hTWFwID0ge307XHJcblxyXG4gICAgT2JqZWN0LmtleXMoc2NoZW1hTWFwKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgLy8gV2UgbmVlZCB0byByZW1vdmUgYW55IHJlZmVyZW5jZXMgdG8gdGhlIFwiUGFyYW1ldGVyc1wiIGRhdGFzb3VyY2UuICBUaGlzIGlzIHRyZWF0ZWQgYXMgYSBzZXBhcmF0ZVxyXG4gICAgICAvLyBkYXRhc291cmNlIGJ5IHRoZSBwbGF0Zm9ybSwgYnV0IHRoZSBFeHRlbnNpb25zIEFQSSBhY2Nlc3NlcyBQYXJhbWV0ZXJzIGRpcmVjdGx5LlxyXG4gICAgICBsZXQgY2xlYW5SZWZlcmVuY2VkRGF0YVNvdXJjZUxpc3QgPSBzY2hlbWFNYXBba2V5XS5yZWZlcmVuY2VkRGF0YVNvdXJjZUxpc3QuZmlsdGVyKChkc05hbWUpID0+IHtcclxuICAgICAgICByZXR1cm4gZHNOYW1lICE9PSBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5QQVJBTUVURVJTX0RCX05BTUU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgY29uc3Qgd29ya3NoZWV0RGF0YVNvdXJjZUluZm86IEFwaS5Xb3Jrc2hlZXREYXRhU291cmNlSW5mbyA9IHtcclxuICAgICAgICBwcmltYXJ5RGF0YVNvdXJjZTogc2NoZW1hTWFwW2tleV0ucHJpbWFyeURhdGFzb3VyY2UsXHJcbiAgICAgICAgcmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0OiBjbGVhblJlZmVyZW5jZWREYXRhU291cmNlTGlzdFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVzdWx0W2tleV0gPSB3b3Jrc2hlZXREYXRhU291cmNlSW5mbztcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRGaWVsZChwbEZpZWxkOiBQcmVzTGF5ZXIuRmllbGRQcmVzTW9kZWwpOiBBcGkuRmllbGQge1xyXG4gICAgY29uc3QgZmllbGRDb2x1bW4gPSBwbEZpZWxkIGFzIFByZXNMYXllci5GaWVsZENvbHVtblByZXNNb2RlbDtcclxuICAgIGNvbnN0IGdyb3VwQ29sdW1uID0gcGxGaWVsZCBhcyBQcmVzTGF5ZXIuR3JvdXBQcmVzTW9kZWw7XHJcblxyXG4gICAgbGV0IGFnZ3JlZ2F0aW9uID0gQXBpLkZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmU7XHJcbiAgICBsZXQgcm9sZSA9IEFwaS5GaWVsZFJvbGVUeXBlLlVua25vd247XHJcbiAgICBsZXQgaXNDYWxjdWxhdGVkID0gZmFsc2U7XHJcblxyXG4gICAgLy8gV2UgZXhwZWN0IHRoYXQgZXZlcnkgRmllbGRQcmVzTW9kZWwgd2UgZ2V0IGJhY2sgZnJvbSB0aGUgY29tbWFuZCB0aGF0IHJldHVybnMgRmllbGRQcmVzTW9kZWxzXHJcbiAgICAvLyBpcyBhY3R1YWxseSBhbiBpbnN0YW5jZSBvZiB0aGUgZGVyaXZlZCBGaWVsZENvbHVtblByZXNNb2RlbC5cclxuICAgIGlmIChmaWVsZENvbHVtbi5hZ2dyZWdhdGlvbiAmJiBmaWVsZENvbHVtbi5maWVsZFJvbGUpIHtcclxuICAgICAgYWdncmVnYXRpb24gPSBFbnVtTWFwcGluZ3MuZmllbGRBZ2dyZWdhdGlvblR5cGUuY29udmVydChmaWVsZENvbHVtbi5hZ2dyZWdhdGlvbik7XHJcbiAgICAgIHJvbGUgPSBFbnVtTWFwcGluZ3MuZmllbGRSb2xlVHlwZS5jb252ZXJ0KGZpZWxkQ29sdW1uLmZpZWxkUm9sZSk7XHJcbiAgICAgIGlzQ2FsY3VsYXRlZCA9IGZpZWxkQ29sdW1uLmlzQ2FsY3VsYXRlZCB8fCBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5leHBlY3RlZCBJbnRlcm5hbCBFcnJvcjogZmllbGQgcHJlcyBtb2RlbCBpcyBtaXNzaW5nIGV4cGVjdGVkIHByb3BlcnRpZXMuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuRmllbGQgPSB7XHJcbiAgICAgIG5hbWU6IHBsRmllbGQuZGVzY3JpcHRpb24sXHJcbiAgICAgIGlkOiBwbEZpZWxkLm5hbWUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiBwbEZpZWxkLnVzZXJDYXB0aW9uLFxyXG4gICAgICBhZ2dyZWdhdGlvbjogYWdncmVnYXRpb24sXHJcbiAgICAgIGlzSGlkZGVuOiAhIShwbEZpZWxkLmlzSGlkZGVuKSxcclxuICAgICAgaXNHZW5lcmF0ZWQ6IHBsRmllbGQuaXNHZW5lcmF0ZWQsXHJcbiAgICAgIGlzQ2FsY3VsYXRlZEZpZWxkOiBpc0NhbGN1bGF0ZWQsXHJcbiAgICAgIHJvbGU6IHJvbGUsXHJcbiAgICAgIGlzQ29tYmluZWRGaWVsZDogISEoZ3JvdXBDb2x1bW4uaXNDb21iaW5lZEZpZWxkKVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0Sm9pbkRlc2NyaXB0aW9uKHBsSm9pbkRlc2NyaXB0aW9uOiBQcmVzTGF5ZXIuSm9pbkRlc2NyaXB0aW9uUHJlc01vZGVsKTogQXBpLkpvaW5EZXNjcmlwdGlvbiB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShwbEpvaW5EZXNjcmlwdGlvbiwgJ3BsSm9pbkRlc2NyaXB0aW9uJyk7XHJcbiAgICBsZXQgYXBpVGFibGVzOiBBcGkuVGFibGVJbmZvW10gPSBwbEpvaW5EZXNjcmlwdGlvbi5qb2luVGFibGVJbmZvcy5tYXAoam9pblRhYmxlID0+IHtcclxuICAgICAgY29uc3QgYXBpVGFibGU6IEFwaS5UYWJsZUluZm8gPSB7XHJcbiAgICAgICAgbmFtZTogam9pblRhYmxlLnRhYmxlQWxpYXMsXHJcbiAgICAgICAgaWQ6IGpvaW5UYWJsZS50YWJsZU5hbWUsXHJcbiAgICAgICAgY3VzdG9tU1FMOiAoam9pblRhYmxlLmlzQ3VzdG9tU3FsKSA/IGpvaW5UYWJsZS5zcWxRdWVyeSA6IHVuZGVmaW5lZCxcclxuICAgICAgICBjb25uZWN0aW9uQ2xhc3NOYW1lOiBqb2luVGFibGUuY29ubmVjdGlvbkNsYXNzTmFtZSxcclxuICAgICAgICBjb25uZWN0aW9uSWQ6IGpvaW5UYWJsZS5jb25uZWN0aW9uTmFtZVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmV0dXJuIGFwaVRhYmxlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBBcGkuSm9pbkRlc2NyaXB0aW9uID0ge1xyXG4gICAgICB0YWJsZXM6IGFwaVRhYmxlc1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0Q29ubmVjdGlvbkRlc2NycHRpb25TdW1tYXJpZXMocGxDb25uZWN0aW9uRGVzY3JpcHRpb246IFByZXNMYXllci5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5UHJlc01vZGVsW10pOlxyXG4gICAgQXBpLkNvbm5lY3Rpb25EZXNjcmlwdGlvblN1bW1hcnlbXSB7XHJcbiAgICByZXR1cm4gcGxDb25uZWN0aW9uRGVzY3JpcHRpb24ubWFwKHBsU3VtbWFyeSA9PiB7XHJcbiAgICAgIGNvbnN0IGFwaUNvbm5lY3Rpb246IEFwaS5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJ5ID0ge1xyXG4gICAgICAgIG5hbWU6IHBsU3VtbWFyeS5jb25uZWN0aW9uRGVzY3JpcHRpb25MYWJlbCxcclxuICAgICAgICBpZDogcGxTdW1tYXJ5LmNvbm5lY3Rpb25OYW1lLFxyXG4gICAgICAgIHR5cGU6IHBsU3VtbWFyeS5jb25uZWN0aW9uVHlwZUxhYmVsLFxyXG4gICAgICAgIHNlcnZlclVSSTogcGxTdW1tYXJ5LmNvbm5lY3Rpb25VcmlcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJldHVybiBhcGlDb25uZWN0aW9uO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL1ByZXNMYXllclRvQXBpQ29udmVydGVyLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gIERhdGFUeXBlLFxyXG4gIERhdGVSYW5nZVR5cGUsXHJcbiAgRGF0ZVN0ZXBQZXJpb2QsXHJcbiAgRG9tYWluUmVzdHJpY3Rpb25UeXBlLFxyXG4gIEV4dGVuc2lvbkNvbnRleHQsXHJcbiAgRXh0ZW5zaW9uTW9kZSxcclxuICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSxcclxuICBGaWVsZFJvbGVUeXBlLFxyXG4gIEZpbHRlckRvbWFpblR5cGUsXHJcbiAgRmlsdGVyTnVsbE9wdGlvbixcclxuICBGaWx0ZXJVcGRhdGVUeXBlXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgKiBhcyBFbnVtcyBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9FbnVtcyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp0eXBlZGVmIC0gRGlzYWJsZSB0aGlzIHRvIG1ha2UgZGVjbGFyaW5nIHRoZXNlIGNsYXNzZXMgYSBiaXQgZWFzaWVyICovXHJcbmV4cG9ydCBjbGFzcyBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncyB7XHJcbiAgcHVibGljIHN0YXRpYyB6b25lVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEVudW1zLlpvbmVUeXBlLCBEYXNoYm9hcmRPYmplY3RUeXBlPih7XHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfSW52YWxpZF06IERhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfVml6XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXQsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfQ29sb3JMZWdlbmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9TaGFwZUxlZ2VuZF06IERhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX1NpemVMZWdlbmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9NYXBMZWdlbmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9RdWlja0ZpbHRlcl06IERhc2hib2FyZE9iamVjdFR5cGUuUXVpY2tGaWx0ZXIsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfSGlnaGxpZ2h0ZXJdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLCAvLyBUT0RPXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfQ3VyclBhZ2VdOiBEYXNoYm9hcmRPYmplY3RUeXBlLlBhZ2VGaWx0ZXIsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfRW1wdHldOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX1RpdGxlXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5UaXRsZSxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9UZXh0XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0LFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX0JpdG1hcF06IERhc2hib2FyZE9iamVjdFR5cGUuSW1hZ2UsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfV2ViXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5XZWJQYWdlLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX0FkZEluXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5FeHRlbnNpb24sIC8vIFRPRE9cclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9QYXJhbUN0cmxdOiBEYXNoYm9hcmRPYmplY3RUeXBlLlBhcmFtZXRlckNvbnRyb2wsXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfRmxpcGJvYXJkTmF2XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9GbGlwYm9hcmRdOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0VudW1zLlpvbmVUeXBlLlpUX0xheW91dEJhc2ljXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9MYXlvdXRGbG93XTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9MYXlvdXRGcmVlRm9ybV06IERhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXHJcbiAgICBbRW51bXMuWm9uZVR5cGUuWlRfRW5kXTogRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcclxuICAgIFtFbnVtcy5ab25lVHlwZS5aVF9CdXR0b25dOiBEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gIH0sIERhc2hib2FyZE9iamVjdFR5cGUuQmxhbmspO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGV4dGVuc2lvbkNvbnRleHQgPSBuZXcgRW51bUNvbnZlcnRlcjxFbnVtcy5BZGRJbkNvbnRleHQsIEV4dGVuc2lvbkNvbnRleHQ+KHtcclxuICAgIFtFbnVtcy5BZGRJbkNvbnRleHQuVW5rbm93bl06IEV4dGVuc2lvbkNvbnRleHQuVW5rbm93bixcclxuICAgIFtFbnVtcy5BZGRJbkNvbnRleHQuRGVza3RvcF06IEV4dGVuc2lvbkNvbnRleHQuRGVza3RvcCxcclxuICAgIFtFbnVtcy5BZGRJbkNvbnRleHQuU2VydmVyXTogRXh0ZW5zaW9uQ29udGV4dC5TZXJ2ZXJcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBleHRlbnNpb25Nb2RlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuQWRkSW5Nb2RlLCBFeHRlbnNpb25Nb2RlPih7XHJcbiAgICBbRW51bXMuQWRkSW5Nb2RlLlVua25vd25dOiBFeHRlbnNpb25Nb2RlLlVua25vd24sXHJcbiAgICBbRW51bXMuQWRkSW5Nb2RlLkF1dGhvcmluZ106IEV4dGVuc2lvbk1vZGUuQXV0aG9yaW5nLFxyXG4gICAgW0VudW1zLkFkZEluTW9kZS5WaWV3aW5nXTogRXh0ZW5zaW9uTW9kZS5WaWV3aW5nXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGF0YVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxFbnVtcy5EYXRhVHlwZSwgRGF0YVR5cGU+ICh7XHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfQk9PTEVBTl06IERhdGFUeXBlLkJvb2wsXHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfREFURV06IERhdGFUeXBlLkRhdGUsXHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfREFURVRJTUVdOiBEYXRhVHlwZS5EYXRlVGltZSxcclxuICAgIFtFbnVtcy5EYXRhVHlwZS5EVF9JTlRFR0VSXTogRGF0YVR5cGUuSW50LFxyXG4gICAgW0VudW1zLkRhdGFUeXBlLkRUX1JFQUxdOiBEYXRhVHlwZS5GbG9hdCxcclxuICAgIFtFbnVtcy5EYXRhVHlwZS5EVF9TVFJJTkddOiBEYXRhVHlwZS5TdHJpbmcsXHJcbiAgICBbRW51bXMuRGF0YVR5cGUuRFRfU1BBVElBTF06IERhdGFUeXBlLlNwYXRpYWxcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWVsZEFnZ3JlZ2F0aW9uVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEVudW1zLkFnZ1R5cGUsIEZpZWxkQWdncmVnYXRpb25UeXBlPih7XHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfQVRUUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLkF0dHIsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfQVZHXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuQXZnLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX0NPVU5UXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnQsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfQ09VTlREXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRkLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX0RBWV06IEZpZWxkQWdncmVnYXRpb25UeXBlLkRheSxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19FTkRdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5FbmQsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfSE9VUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLkhvdXIsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfSU5PVVRdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Jbk91dCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19LVVJUT1NJU106IEZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX01BWF06IEZpZWxkQWdncmVnYXRpb25UeXBlLk1heCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19NRFldOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZHksXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfTUVESUFOXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuTWVkaWFuLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX01JTl06IEZpZWxkQWdncmVnYXRpb25UeXBlLk1pbixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19NSU5VVEVdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW51dGUsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfTU9OVEhZRUFSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuTW9udGhZZWFyLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX05PTkVdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ob25lLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1FUUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLlF0cixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19RVUFSVDFdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDEsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfUVVBUlQzXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQzLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1NFQ09ORF06IEZpZWxkQWdncmVnYXRpb25UeXBlLlNlY29uZCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19TS0VXTkVTU106IEZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1NUREVWXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXYsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5BR0dfU1RERVZQXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZwLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1NVTV06IEZpZWxkQWdncmVnYXRpb25UeXBlLlN1bSxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLlRSVU5DX0RBWV06IEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jRGF5LFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuVFJVTkNfSE9VUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jSG91cixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLlRSVU5DX01JTlVURV06IEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuVFJVTkNfTU9OVEhdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01vbnRoLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuVFJVTkNfUVRSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNRdHIsXHJcbiAgICBbRW51bXMuQWdnVHlwZS5UUlVOQ19TRUNPTkRdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLlRSVU5DX1dFRUtdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1dlZWssXHJcbiAgICBbRW51bXMuQWdnVHlwZS5UUlVOQ19ZRUFSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNZZWFyLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1VTRVJdOiBGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Vc2VyLFxyXG4gICAgW0VudW1zLkFnZ1R5cGUuQUdHX1ZBUl06IEZpZWxkQWdncmVnYXRpb25UeXBlLlZhcixcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19WQVJQXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFycCxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19XRUVLXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuV2VlayxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19XRUVLREFZXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuV2Vla2RheSxcclxuICAgIFtFbnVtcy5BZ2dUeXBlLkFHR19ZRUFSXTogRmllbGRBZ2dyZWdhdGlvblR5cGUuWWVhcixcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWVsZFJvbGVUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuRmllbGRSb2xlLCBGaWVsZFJvbGVUeXBlPih7XHJcbiAgICBbRW51bXMuRmllbGRSb2xlLlJPTEVfRElNRU5TSU9OXTogRmllbGRSb2xlVHlwZS5EaW1lbnNpb24sXHJcbiAgICBbRW51bXMuRmllbGRSb2xlLlJPTEVfTUVBU1VSRV06IEZpZWxkUm9sZVR5cGUuTWVhc3VyZVxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHBhcmFtZXRlclR5cGVzRG9tYWluVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEVudW1zLlBhcmFtZXRlclR5cGVzRG9tYWluVHlwZSwgRG9tYWluUmVzdHJpY3Rpb25UeXBlPih7XHJcbiAgICBbRW51bXMuUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlLkRvbWFpbl9BbnldOiBEb21haW5SZXN0cmljdGlvblR5cGUuQWxsLFxyXG4gICAgW0VudW1zLlBhcmFtZXRlclR5cGVzRG9tYWluVHlwZS5Eb21haW5fTGlzdF06IERvbWFpblJlc3RyaWN0aW9uVHlwZS5MaXN0LFxyXG4gICAgW0VudW1zLlBhcmFtZXRlclR5cGVzRG9tYWluVHlwZS5Eb21haW5fUmFuZ2VdOiBEb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2UsXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGF0ZVN0ZXBQZXJpb2QgPSBuZXcgRW51bUNvbnZlcnRlcjxFbnVtcy5EYXRlUGVyaW9kVHlwZSwgRGF0ZVN0ZXBQZXJpb2Q+KHtcclxuICAgIFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RZZWFyXTogRGF0ZVN0ZXBQZXJpb2QuWWVhcnMsXHJcbiAgICBbRW51bXMuRGF0ZVBlcmlvZFR5cGUuUGVyaW9kUXVhcnRlcl06IERhdGVTdGVwUGVyaW9kLlF1YXJ0ZXJzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZE1vbnRoXTogRGF0ZVN0ZXBQZXJpb2QuTW9udGhzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZFdlZWtdOiBEYXRlU3RlcFBlcmlvZC5XZWVrcyxcclxuICAgIFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2REYXldOiBEYXRlU3RlcFBlcmlvZC5EYXlzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZEhvdXJdOiBEYXRlU3RlcFBlcmlvZC5Ib3VycyxcclxuICAgIFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RNaW51dGVdOiBEYXRlU3RlcFBlcmlvZC5NaW51dGVzLFxyXG4gICAgW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZFNlY29uZF06IERhdGVTdGVwUGVyaW9kLlNlY29uZHNcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlUmFuZ2VUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZSwgRGF0ZVJhbmdlVHlwZT4oe1xyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VDdXJyZW50XTogRGF0ZVJhbmdlVHlwZS5DdXJyZW50LFxyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VDdXJyZW50VG9EYXRlXTogRGF0ZVJhbmdlVHlwZS5Ub0RhdGUsXHJcbiAgICBbRW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZS5SYW5nZUxhc3QxXTogRGF0ZVJhbmdlVHlwZS5MYXN0LFxyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VMYXN0Tl06IERhdGVSYW5nZVR5cGUuTGFzdE4sXHJcbiAgICBbRW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZS5SYW5nZU5leHQxXTogRGF0ZVJhbmdlVHlwZS5OZXh0LFxyXG4gICAgW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VOZXh0Tl06IERhdGVSYW5nZVR5cGUuTmV4dE5cclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJEb21haW5UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RW51bXMuRmlsdGVyc0RvbWFpblR5cGUsIEZpbHRlckRvbWFpblR5cGU+ICh7XHJcbiAgICBbRW51bXMuRmlsdGVyc0RvbWFpblR5cGUuUmVsZXZhbnRdOiBGaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50LFxyXG4gICAgW0VudW1zLkZpbHRlcnNEb21haW5UeXBlLkRhdGFiYXNlXTogRmlsdGVyRG9tYWluVHlwZS5EYXRhYmFzZVxyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQXBpVG9QcmVzTGF5ZXJFbnVtTWFwcGluZ3Mge1xyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyVXBkYXRlVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEZpbHRlclVwZGF0ZVR5cGUsIEVudW1zLkZpbHRlclVwZGF0ZVR5cGU+ICh7XHJcbiAgICBbRmlsdGVyVXBkYXRlVHlwZS5BZGRdOiBFbnVtcy5GaWx0ZXJVcGRhdGVUeXBlLkFERCxcclxuICAgIFtGaWx0ZXJVcGRhdGVUeXBlLkFsbF06IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuQUxMLFxyXG4gICAgW0ZpbHRlclVwZGF0ZVR5cGUuUmVwbGFjZV06IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuUkVQTEFDRSxcclxuICAgIFtGaWx0ZXJVcGRhdGVUeXBlLlJlbW92ZV06IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuUkVNT1ZFXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgbnVsbE9wdGlvbiA9IG5ldyBFbnVtQ29udmVydGVyPEZpbHRlck51bGxPcHRpb24sIEVudW1zLkZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcz4gKHtcclxuICAgIFtGaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlc106IEVudW1zLkZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcy5BbGwsXHJcbiAgICBbRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXTogRW51bXMuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLk5vbk51bGwsXHJcbiAgICBbRmlsdGVyTnVsbE9wdGlvbi5OdWxsVmFsdWVzXTogRW51bXMuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLk51bGxcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJEb21haW5UeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8RmlsdGVyRG9tYWluVHlwZSwgRW51bXMuRmlsdGVyc0RvbWFpblR5cGU+ICh7XHJcbiAgICBbRmlsdGVyRG9tYWluVHlwZS5SZWxldmFudF06IEVudW1zLkZpbHRlcnNEb21haW5UeXBlLlJlbGV2YW50LFxyXG4gICAgW0ZpbHRlckRvbWFpblR5cGUuRGF0YWJhc2VdOiBFbnVtcy5GaWx0ZXJzRG9tYWluVHlwZS5EYXRhYmFzZVxyXG4gIH0pO1xyXG59XHJcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9FbnVtTWFwcGluZ3MudHNcbiAqKi8iLCIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xyXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vL1xyXG4vLyBUaGlzIGZpbGUgaXMgdGhlIGNvcHlyaWdodGVkIHByb3BlcnR5IG9mIFRhYmxlYXUgU29mdHdhcmUgYW5kIGlzIHByb3RlY3RlZFxyXG4vLyBieSByZWdpc3RlcmVkIHBhdGVudHMgYW5kIG90aGVyIGFwcGxpY2FibGUgVS5TLiBhbmQgaW50ZXJuYXRpb25hbCBsYXdzIGFuZFxyXG4vLyByZWd1bGF0aW9ucy5cclxuLy9cclxuLy8gVW5saWNlbnNlZCB1c2Ugb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBwcm9oaWJpdGVkLiBQbGVhc2UgcmVmZXIgdG9cclxuLy8gdGhlIE5PVElDRVMudHh0IGZpbGUgZm9yIGZ1cnRoZXIgZGV0YWlscy5cclxuLy9cclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gV0FSTklORzogQ29tcHV0ZXIgZ2VuZXJhdGVkIGZpbGUuICBEbyBub3QgaGFuZCBtb2RpZnkuXHJcbi8vIERFUEVORFMgT046IFsnLi4vdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWNvcmUvbm9kZV9tb2R1bGVzL0B0YWJsZWF1L3ByZXNsYXllci1jb2RlZ2VuLXR5cGVzY3JpcHQvdGVtcGxhdGVzL2VudW0tdHMudGVtcGxhdGUnLCB1Jy4uL3R5cGVzY3JpcHQvanMtYXBpL2FwaS1jb3JlL3RlbXAtcHJlcy1sYXllci9hbGwtZW51bXMuZGF0YSddXHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRGF0YVNjYWxpbmcge1xyXG5cclxuICAvLyBcclxuICBTQ0FMSU5HX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIFNDQUxJTkdfU1RBTkRBUkRJWkVEID0gJ3N0YW5kYXJkaXplZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDQUxJTkdfTk9STUFMSVpFRCA9ICdub3JtYWxpemVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRm9yZWNhc3RNb2RlbFR5cGUge1xyXG5cclxuICAvLyBcclxuICBGb3JlY2FzdE1vZGVsVHlwZUF1dG9TZWFzb24gPSAnYXV0by1zZWFzb24nLFxyXG5cclxuICAvLyBcclxuICBGb3JlY2FzdE1vZGVsVHlwZUF1dG8gPSAnYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0TW9kZWxUeXBlQ3VzdG9tID0gJ2N1c3RvbSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvcmVjYXN0UmFuZ2VUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRm9yZWNhc3RSYW5nZVR5cGVBdXRvID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBGb3JlY2FzdFJhbmdlVHlwZU5leHQgPSAnbmV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0UmFuZ2VUeXBlRW5kT2YgPSAnZW5kLW9mJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRm9yZWNhc3RTdGF0dXMge1xyXG5cclxuICAvLyBcclxuICBGU19WQUxJRCA9ICdmcy12YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX0lOVkFMSURfREFURVRJTUUgPSAnZnMtaW52YWxpZC1kYXRldGltZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX0lOVkFMSURfUkVTUE9OU0UgPSAnZnMtaW52YWxpZC1yZXNwb25zZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX05FRURfTU9SRV9EQVRBID0gJ2ZzLW5lZWQtbW9yZS1kYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfVElNRV9TRVJJRVNfVE9PX1NIT1JUID0gJ2ZzLXRpbWUtc2VyaWVzLXRvby1zaG9ydCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RJTUVfU0VSSUVTX0lSUkVHVUxBUiA9ICdmcy10aW1lLXNlcmllcy1pcnJlZ3VsYXInLFxyXG5cclxuICAvLyBcclxuICBGU19OVUxMX0RBVEVUSU1FID0gJ2ZzLW51bGwtZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBGU19OVUxMX1JFU1BPTlNFID0gJ2ZzLW51bGwtcmVzcG9uc2UnLFxyXG5cclxuICAvLyBcclxuICBGU19NRVRBREFUQV9JTlZBTElEID0gJ2ZzLW1ldGFkYXRhLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBGU19OT19SRVNQT05TRSA9ICdmcy1uby1yZXNwb25zZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX0VYQ0VTU19EQVRBID0gJ2ZzLWV4Y2Vzcy1kYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfRVhDRVNTX1BBUlRJVElPTlMgPSAnZnMtZXhjZXNzLXBhcnRpdGlvbnMnLFxyXG5cclxuICAvLyBcclxuICBGU19ESU1FTlNJT05fSU5WQUxJRCA9ICdmcy1kaW1lbnNpb24taW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RBQkxFQ0FMQ19JTlZBTElEID0gJ2ZzLXRhYmxlY2FsYy1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfVElNRV9TRVJJRVNfVE9PX0lSUkVHVUxBUiA9ICdmcy10aW1lLXNlcmllcy10b28taXJyZWd1bGFyJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfQUdHUkVHQVRFX0ZJTFRFUiA9ICdmcy1hZ2dyZWdhdGUtZmlsdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfRElTQUdHUkVHQVRFX1JFU1BPTlNFID0gJ2ZzLWRpc2FnZ3JlZ2F0ZS1yZXNwb25zZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1BFUkNFTlRBR0VfSU5WQUxJRCA9ICdmcy1wZXJjZW50YWdlLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBGU19UT1RBTF9JTlZBTElEID0gJ2ZzLXRvdGFsLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBGU19FWENFU1NfREFURVRJTUUgPSAnZnMtZXhjZXNzLWRhdGV0aW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfREFURV9BR0dfSU5DT01QQVRJQkxFID0gJ2ZzLWRhdGUtYWdnLWluY29tcGF0aWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RJTUVfU0VSSUVTX05PVF9QT1NJVElWRSA9ICdmcy10aW1lLXNlcmllcy1ub3QtcG9zaXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBGU19SRVFVRVNURURfTU9ERUxfSU5WQUxJRCA9ICdmcy1yZXF1ZXN0ZWQtbW9kZWwtaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1RPT19TSE9SVF9GT1JfU0VBU09OID0gJ2ZzLXRvby1zaG9ydC1mb3Itc2Vhc29uJyxcclxuXHJcbiAgLy8gXHJcbiAgRlNfUkVRVUVTVEVEX01PREVMX1VOU1RBQkxFID0gJ2ZzLXJlcXVlc3RlZC1tb2RlbC11bnN0YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIEZTX1VOREVGSU5FRCA9ICdmcy11bmRlZmluZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTdHlsZUF0dHJpYnV0ZSB7XHJcblxyXG4gIC8vIFxyXG4gIHNhQWx0ZXJuYXRlVGV4dCA9ICdzYUFsdGVybmF0ZVRleHQnLFxyXG5cclxuICAvLyBcclxuICBzYUFsdE1hcmtDb2xvciA9ICdzYUFsdE1hcmtDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhQXNwZWN0ID0gJ3NhQXNwZWN0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FBdXRvU3VidGl0bGUgPSAnc2FBdXRvU3VidGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBzYUJhY2tncm91bmRDb2xvciA9ICdzYUJhY2tncm91bmRDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhQmFja2dyb3VuZFRyYW5zcGFyZW5jeSA9ICdzYUJhY2tncm91bmRUcmFuc3BhcmVuY3knLFxyXG5cclxuICAvLyBcclxuICBzYUJhbmRTaXplID0gJ3NhQmFuZFNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYUJhbmRDb2xvciA9ICdzYUJhbmRDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhQmFuZExldmVsID0gJ3NhQmFuZExldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb2R5VHlwZSA9ICdzYUJvZHlUeXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJDb2xvciA9ICdzYUJvcmRlckNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJDb2xvclRvcCA9ICdzYUJvcmRlckNvbG9yVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJDb2xvclJpZ2h0ID0gJ3NhQm9yZGVyQ29sb3JSaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyQ29sb3JCb3R0b20gPSAnc2FCb3JkZXJDb2xvckJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyQ29sb3JMZWZ0ID0gJ3NhQm9yZGVyQ29sb3JMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJTdHlsZSA9ICdzYUJvcmRlclN0eWxlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJTdHlsZVRvcCA9ICdzYUJvcmRlclN0eWxlVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJTdHlsZVJpZ2h0ID0gJ3NhQm9yZGVyU3R5bGVSaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyU3R5bGVCb3R0b20gPSAnc2FCb3JkZXJTdHlsZUJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyU3R5bGVMZWZ0ID0gJ3NhQm9yZGVyU3R5bGVMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJXaWR0aCA9ICdzYUJvcmRlcldpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJXaWR0aFRvcCA9ICdzYUJvcmRlcldpZHRoVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3JkZXJXaWR0aFJpZ2h0ID0gJ3NhQm9yZGVyV2lkdGhSaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyV2lkdGhCb3R0b20gPSAnc2FCb3JkZXJXaWR0aEJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQm9yZGVyV2lkdGhMZWZ0ID0gJ3NhQm9yZGVyV2lkdGhMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FCb3hwbG90U3R5bGUgPSAnc2FCb3hwbG90U3R5bGUnLFxyXG5cclxuICAvLyBcclxuICBzYUJyZWFrT25TcGVjaWFsID0gJ3NhQnJlYWtPblNwZWNpYWwnLFxyXG5cclxuICAvLyBcclxuICBzYUNlbGwgPSAnc2FDZWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsVyA9ICdzYUNlbGxXJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsSCA9ICdzYUNlbGxIJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsUSA9ICdzYUNlbGxRJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDZWxsUU1hcmsgPSAnc2FDZWxsUU1hcmsnLFxyXG5cclxuICAvLyBcclxuICBzYUNvbG9yID0gJ3NhQ29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYUNvbG9yTW9kZSA9ICdzYUNvbG9yTW9kZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhQ29sTGV2ZWxzID0gJ3NhQ29sTGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FDb2xWZXJ0TGV2ZWxzID0gJ3NhQ29sVmVydExldmVscycsXHJcblxyXG4gIC8vIFxyXG4gIHNhQ29sSG9yaXpIZWlnaHQgPSAnc2FDb2xIb3JpekhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhQ29sVmVydEhlaWdodCA9ICdzYUNvbFZlcnRIZWlnaHQnLFxyXG5cclxuICAvLyBEZXByZWNhdGVkXHJcbiAgc2FDb2xIZWlnaHQgPSAnc2FDb2xIZWlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYUNvbFdpZHRoID0gJ3NhQ29sV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYUNvbnRlbnQgPSAnc2FDb250ZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FEaXNwbGF5RmllbGRMYWJlbHMgPSAnc2FEaXNwbGF5RmllbGRMYWJlbHMnLFxyXG5cclxuICAvLyBcclxuICBzYURpc3BsYXlIZWFkZXIgPSAnc2FEaXNwbGF5SGVhZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FEaXNwbGF5QWx0ZXJuYXRlVGV4dCA9ICdzYURpc3BsYXlBbHRlcm5hdGVUZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FEaXZMZXZlbCA9ICdzYURpdkxldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FFbmFibGVkID0gJ3NhRW5hYmxlZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhRmlsbEFib3ZlQ29sb3IgPSAnc2FGaWxsQWJvdmVDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhRmlsbEJlbG93Q29sb3IgPSAnc2FGaWxsQmVsb3dDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhRmlsbENvbG9yID0gJ3NhRmlsbENvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FGb2dCR0NvbG9yID0gJ3NhRm9nQkdDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhRm9nRGVzYXR1cmF0aW9uV2l0aG91dFNlbGVjdGlvbiA9ICdzYUZvZ0Rlc2F0dXJhdGlvbldpdGhvdXRTZWxlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBzYUZvZ0Rlc2F0dXJhdGlvbldpdGhTZWxlY3Rpb24gPSAnc2FGb2dEZXNhdHVyYXRpb25XaXRoU2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FGb250ID0gJ3NhRm9udCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhRm9udEZhbWlseSA9ICdzYUZvbnRGYW1pbHknLFxyXG5cclxuICAvLyBcclxuICBzYUZvbnRTaXplID0gJ3NhRm9udFNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYUZvbnRTdHlsZSA9ICdzYUZvbnRTdHlsZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhRm9udFdlaWdodCA9ICdzYUZvbnRXZWlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYUdlb2dyYXBoaWNBcmVhVHlwZSA9ICdzYUdlb2dyYXBoaWNBcmVhVHlwZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhSEFsaWduID0gJ3NhSEFsaWduJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIYWxvQ29sb3IgPSAnc2FIYWxvQ29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYUhhbG9Db2xvclNlbGVjdGVkID0gJ3NhSGFsb0NvbG9yU2VsZWN0ZWQnLFxyXG5cclxuICAvLyBcclxuICBzYUhhc0ZpbGwgPSAnc2FIYXNGaWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIYXNIYWxvID0gJ3NhSGFzSGFsbycsXHJcblxyXG4gIC8vIERlcHJlY2F0ZWRcclxuICBzYUhhc0xhYmVsID0gJ3NhSGFzTGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBzYUhhc1N0cm9rZSA9ICdzYUhhc1N0cm9rZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhSGVpZ2h0ID0gJ3NhSGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIZWlnaHRIZWFkZXIgPSAnc2FIZWlnaHRIZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBzYUhpZ2hsaWdodExlZ2VuZCA9ICdzYUhpZ2hsaWdodExlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhSG5heGlzID0gJ3NhSG5heGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FIbmxhYmVsID0gJ3NhSG5sYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhSW5Ub29sdGlwID0gJ3NhSW5Ub29sdGlwJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FMaW5lRW5kID0gJ3NhTGluZUVuZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTGluZUVuZFNpemUgPSAnc2FMaW5lRW5kU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTGluZUludGVycG9sYXRpb24gPSAnc2FMaW5lSW50ZXJwb2xhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhTGluZU1hcmtlclBvc2l0aW9uID0gJ3NhTGluZU1hcmtlclBvc2l0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FMaW5lUGF0dGVybiA9ICdzYUxpbmVQYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FMaW5lUGF0dGVybk9ubHkgPSAnc2FMaW5lUGF0dGVybk9ubHknLFxyXG5cclxuICAvLyBcclxuICBzYUxpbmVWaXNpYmlsaXR5ID0gJ3NhTGluZVZpc2liaWxpdHknLFxyXG5cclxuICAvLyBcclxuICBzYU1hcCA9ICdzYU1hcCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFwU3R5bGUgPSAnc2FNYXBTdHlsZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFyZ2luID0gJ3NhTWFyZ2luJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJnaW5Ub3AgPSAnc2FNYXJnaW5Ub3AnLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmdpblJpZ2h0ID0gJ3NhTWFyZ2luUmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmdpbkJvdHRvbSA9ICdzYU1hcmdpbkJvdHRvbScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFyZ2luTGVmdCA9ICdzYU1hcmdpbkxlZnQnLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmtDb2xvciA9ICdzYU1hcmtDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya1RyYW5zcGFyZW5jeSA9ICdzYU1hcmtUcmFuc3BhcmVuY3knLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmtMYWJlbHNTaG93ID0gJ3NhTWFya0xhYmVsc1Nob3cnLFxyXG5cclxuICAvLyBcclxuICBzYVJ1bm5pbmdPcmRlckxhYmVsc1Nob3cgPSAnc2FSdW5uaW5nT3JkZXJMYWJlbHNTaG93JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzTW9kZSA9ICdzYU1hcmtMYWJlbHNNb2RlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzQ3VsbCA9ICdzYU1hcmtMYWJlbHNDdWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzTGluZUVuZEZpcnN0ID0gJ3NhTWFya0xhYmVsc0xpbmVFbmRGaXJzdCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya0xhYmVsc0xpbmVFbmRMYXN0ID0gJ3NhTWFya0xhYmVsc0xpbmVFbmRMYXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXJrTGFiZWxzUmFuZ2VNaW4gPSAnc2FNYXJrTGFiZWxzUmFuZ2VNaW4nLFxyXG5cclxuICAvLyBcclxuICBzYU1hcmtMYWJlbHNSYW5nZU1heCA9ICdzYU1hcmtMYWJlbHNSYW5nZU1heCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya0xhYmVsc1JhbmdlU2NvcGUgPSAnc2FNYXJrTGFiZWxzUmFuZ2VTY29wZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya0xhYmVsc1JhbmdlRmllbGQgPSAnc2FNYXJrTGFiZWxzUmFuZ2VGaWVsZCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWFya01hcmtlcnNNb2RlID0gJ3NhTWFya01hcmtlcnNNb2RlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNYXhIZWlnaHQgPSAnc2FNYXhIZWlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYU1heEZvbnRTaXplID0gJ3NhTWF4Rm9udFNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYU1heFN0cm9rZVdpZHRoID0gJ3NhTWF4U3Ryb2tlV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1heFdpZHRoID0gJ3NhTWF4V2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1pZFN0cm9rZVdpZHRoID0gJ3NhTWlkU3Ryb2tlV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1pbkhlaWdodCA9ICdzYU1pbkhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWluRm9udFNpemUgPSAnc2FNaW5Gb250U2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWluTGVuZ3RoID0gJ3NhTWluTGVuZ3RoJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FNaW5NYXBTaXplID0gJ3NhTWluTWFwU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhTWluU2l6ZSA9ICdzYU1pblNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYU1pblN0cm9rZVdpZHRoID0gJ3NhTWluU3Ryb2tlV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU1pbldpZHRoID0gJ3NhTWluV2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYU5vbmhpZ2hsaWdodENvbG9yID0gJ3NhTm9uaGlnaGxpZ2h0Q29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYU9taXRPblNwZWNpYWwgPSAnc2FPbWl0T25TcGVjaWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FPcGFjaXR5ID0gJ3NhT3BhY2l0eScsXHJcblxyXG4gIC8vIFxyXG4gIHNhT3JpZW50YXRpb24gPSAnc2FPcmllbnRhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhUGFkZGluZyA9ICdzYVBhZGRpbmcnLFxyXG5cclxuICAvLyBcclxuICBzYVBhZGRpbmdUb3AgPSAnc2FQYWRkaW5nVG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FQYWRkaW5nUmlnaHQgPSAnc2FQYWRkaW5nUmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBzYVBhZGRpbmdCb3R0b20gPSAnc2FQYWRkaW5nQm90dG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FQYWRkaW5nTGVmdCA9ICdzYVBhZGRpbmdMZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FQYWxldHRlID0gJ3NhUGFsZXR0ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhUmVuZGVyRm9sZFJldmVyc2VkID0gJ3NhUmVuZGVyRm9sZFJldmVyc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSZXZlcnNlUGFsZXR0ZSA9ICdzYVJldmVyc2VQYWxldHRlJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3VuZGluZyA9ICdzYVJvdW5kaW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3dIb3JpekxldmVscyA9ICdzYVJvd0hvcml6TGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3dIb3JpeldpZHRoID0gJ3NhUm93SG9yaXpXaWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhUm93TGV2ZWxzID0gJ3NhUm93TGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FSb3dWZXJ0V2lkdGggPSAnc2FSb3dWZXJ0V2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBzYVNlcGFyYXRvciA9ICdzYVNlcGFyYXRvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhU2hhcGUgPSAnc2FTaGFwZScsXHJcblxyXG4gIC8vIERlcHJlY2F0ZWRcclxuICBzYVNob3dMYWJlbHMgPSAnc2FTaG93TGFiZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FTaXplID0gJ3NhU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhU2l6ZUJhciA9ICdzYVNpemVCYXInLFxyXG5cclxuICAvLyBcclxuICBzYVNtYXJ0QXV0b0FsaWdubWVudCA9ICdzYVNtYXJ0QXV0b0FsaWdubWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhU3BhY2UgPSAnc2FTcGFjZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhU3Ryb2tlQ29sb3IgPSAnc2FTdHJva2VDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhU3Ryb2tlU2l6ZSA9ICdzYVN0cm9rZVNpemUnLFxyXG5cclxuICAvLyBcclxuICBzYVN1YnRpdGxlID0gJ3NhU3VidGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBzYVRleHRBbGlnbiA9ICdzYVRleHRBbGlnbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhVGV4dEFsaWduRGVmYXVsdCA9ICdzYVRleHRBbGlnbkRlZmF1bHQnLFxyXG5cclxuICAvLyBcclxuICBzYVRleHREZWNvcmF0aW9uID0gJ3NhVGV4dERlY29yYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBzYVRleHRJbmRlbnQgPSAnc2FUZXh0SW5kZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FUZXh0T3JpZW50YXRpb24gPSAnc2FUZXh0T3JpZW50YXRpb24nLFxyXG5cclxuICAvLyBcclxuICBzYVRleHRGb3JtYXQgPSAnc2FUZXh0Rm9ybWF0JyxcclxuXHJcbiAgLy8gXHJcbiAgc2FUaWNrQ29sb3IgPSAnc2FUaWNrQ29sb3InLFxyXG5cclxuICAvLyBcclxuICBzYVRpY2tMZW5ndGggPSAnc2FUaWNrTGVuZ3RoJyxcclxuXHJcbiAgLy8gRGVwcmVjYXRlZFxyXG4gIHNhVGlja1NwYWNpbmcgPSAnc2FUaWNrU3BhY2luZycsXHJcblxyXG4gIC8vIFxyXG4gIHNhVGl0bGUgPSAnc2FUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhVG90YWxMYWJlbCA9ICdzYVRvdGFsTGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBzYVZBbGlnbiA9ICdzYVZBbGlnbicsXHJcblxyXG4gIC8vIFxyXG4gIHNhVmVydGljYWxBbGlnbiA9ICdzYVZlcnRpY2FsQWxpZ24nLFxyXG5cclxuICAvLyBcclxuICBzYVZlcnRpY2FsQWxpZ25EZWZhdWx0ID0gJ3NhVmVydGljYWxBbGlnbkRlZmF1bHQnLFxyXG5cclxuICAvLyBcclxuICBzYVZuYXhpcyA9ICdzYVZuYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIHNhVm5sYWJlbCA9ICdzYVZubGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBzYVdhcm5PblNwZWNpYWwgPSAnc2FXYXJuT25TcGVjaWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgc2FXYXNob3V0ID0gJ3NhV2FzaG91dCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2hpc2tlckVuZCA9ICdzYVdoaXNrZXJFbmQnLFxyXG5cclxuICAvLyBcclxuICBzYVdoaXNrZXJTdHJva2VDb2xvciA9ICdzYVdoaXNrZXJTdHJva2VDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2hpc2tlclN0cm9rZVNpemUgPSAnc2FXaGlza2VyU3Ryb2tlU2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2lkdGggPSAnc2FXaWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIHNhV2lkdGhIZWFkZXIgPSAnc2FXaWR0aEhlYWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIHNhV3JhcCA9ICdzYVdyYXAnLFxyXG5cclxuICAvLyBcclxuICBzYVpvb20gPSAnc2Fab29tJyxcclxuXHJcbiAgLy8gU3BlY2lhbCBhdHRyaWJ1dGVzIHVzZWQgZm9yIG1hdGNoaW5nXHJcbiAgc2FOb25lID0gJ3NhTm9uZScsXHJcblxyXG4gIC8vIFNwZWNpYWwgYXR0cmlidXRlcyB1c2VkIGZvciBtYXRjaGluZ1xyXG4gIHNhQW55ID0gJ3NhQW55J1xyXG59XHJcblxyXG4vLyBsb3dlc3QgYml0IG9mIGVudW0gdmFsdWUgZGVub3RlcyB0d28tdG9uZSBzdHlsZXM7IG5ld2x5IGFkZGVkIHN0eWxlcyBzaG91bGQgZm9sbG93IHRoaXMgcGF0dGVybi5cclxuZXhwb3J0IGVudW0gQm94cGxvdFN0eWxlIHtcclxuXHJcbiAgLy8gbWFzayBmb3IgY2hlY2tpbmcgaWYgYSBzdHlsZSBpcyB0d28tdG9uZVxyXG4gIEJveHBsb3RTdHlsZVR3b1RvbmUgPSAndHdvLXRvbmUnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90U3R5bGVNb2Rlcm4gPSAnbW9kZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgQm94cGxvdFN0eWxlR2xhc3MgPSAnZ2xhc3MnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90U3R5bGVDbGFzc2ljID0gJ2NsYXNzaWMnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90U3R5bGVDbGFzc2ljVHdvVG9uZSA9ICdjbGFzc2ljLXR3by10b25lJ1xyXG59XHJcblxyXG4vLyB1c2VkIGZvciBib3hwbG90cyBhbmQgcHJlZGljdGlvbiBiYW5kIHdoaXNrZXJzXHJcbmV4cG9ydCBlbnVtIFdoaXNrZXJFbmQge1xyXG5cclxuICAvLyBcclxuICBXaGlza2VyRW5kTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgV2hpc2tlckVuZFNtYWxsID0gJ3NtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgV2hpc2tlckVuZExhcmdlID0gJ2xhcmdlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU3R5bGVFbGVtZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudEF4aXMgPSAnZWxlbWVudEF4aXMnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50Q2VsbCA9ICdlbGVtZW50Q2VsbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXRhbGFiZWwgPSAnZWxlbWVudERhdGFsYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREcm9wc3BvdCA9ICdlbGVtZW50RHJvcHNwb3QnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50SGVhZGVyID0gJ2VsZW1lbnRIZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50RmllbGRMYWJlbCA9ICdlbGVtZW50RmllbGRMYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRGaWVsZExhYmVsRGVjb3JhdGlvbiA9ICdlbGVtZW50RmllbGRMYWJlbERlY29yYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50RmllbGRMYWJlbFNwYW5uZXIgPSAnZWxlbWVudEZpZWxkTGFiZWxTcGFubmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudExhYmVsID0gJ2VsZW1lbnRMYWJlbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRNYXJrID0gJ2VsZW1lbnRNYXJrJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFBhbmUgPSAnZWxlbWVudFBhbmUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50VGFibGUgPSAnZWxlbWVudFRhYmxlJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFdvcmtzaGVldCA9ICdlbGVtZW50V29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudEJhc2VzaGVldCA9ICdlbGVtZW50QmFzZXNoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudERhc2hib2FyZCA9ICdlbGVtZW50RGFzaGJvYXJkJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFN0b3J5Ym9hcmQgPSAnZWxlbWVudFN0b3J5Ym9hcmQnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50Q2FwdGlvbiA9ICdlbGVtZW50Q2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREcm9wbGluZSA9ICdlbGVtZW50RHJvcGxpbmUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50UmVmbGluZSA9ICdlbGVtZW50UmVmbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRSZWZCYW5kID0gJ2VsZW1lbnRSZWZCYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFJlZkJveHBsb3QgPSAnZWxlbWVudFJlZkJveHBsb3QnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50R3JpZGxpbmUgPSAnZWxlbWVudEdyaWRsaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFplcm9saW5lID0gJ2VsZW1lbnRaZXJvbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRUcmVuZGxpbmUgPSAnZWxlbWVudFRyZW5kbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRUYWJsZURpdiA9ICdlbGVtZW50VGFibGVEaXYnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50SGVhZGVyRGl2ID0gJ2VsZW1lbnRIZWFkZXJEaXYnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50TWFwcGVkSW1hZ2UgPSAnZWxlbWVudE1hcHBlZEltYWdlJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudEFjdGlvbiA9ICdlbGVtZW50QWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFRpdGxlID0gJ2VsZW1lbnRUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRMZWdlbmQgPSAnZWxlbWVudExlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRMZWdlbmRUaXRsZSA9ICdlbGVtZW50TGVnZW5kVGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50TGVnZW5kVGl0bGVUZXh0ID0gJ2VsZW1lbnRMZWdlbmRUaXRsZVRleHQnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50QXhpc1RpdGxlID0gJ2VsZW1lbnRBeGlzVGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50QW5ub3RhdGlvbiA9ICdlbGVtZW50QW5ub3RhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXNoVGl0bGUgPSAnZWxlbWVudERhc2hUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXNoU3VidGl0bGUgPSAnZWxlbWVudERhc2hTdWJ0aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXNoVGV4dCA9ICdlbGVtZW50RGFzaFRleHQnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50RGFzaFpvbmUgPSAnZWxlbWVudERhc2hab25lJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudERhc2hDb250YWluZXIgPSAnZWxlbWVudERhc2hDb250YWluZXInLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50U2Nyb2xsYmFyID0gJ2VsZW1lbnRTY3JvbGxiYXInLFxyXG5cclxuICAvLyBTdGF0aWMgb24vb2ZmIG1hcCBsYXllcnNcclxuICBlbGVtZW50TWFwTGF5ZXIgPSAnZWxlbWVudE1hcExheWVyJyxcclxuXHJcbiAgLy8gQ29udGFpbnMgd2FzaG91dFxyXG4gIGVsZW1lbnRNYXAgPSAnZWxlbWVudE1hcCcsXHJcblxyXG4gIC8vIEluaXRpYWxseSBmb3IgVXJiYW5NYXBwaW5nL0NsYXJpdGFzIGRhdGFcclxuICBlbGVtZW50TWFwRGF0YUxheWVyID0gJ2VsZW1lbnRNYXBEYXRhTGF5ZXInLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50UXVpY2tGaWx0ZXIgPSAnZWxlbWVudFF1aWNrRmlsdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFF1aWNrRmlsdGVyVGl0bGUgPSAnZWxlbWVudFF1aWNrRmlsdGVyVGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50UGFyYW1ldGVyQ3RybCA9ICdlbGVtZW50UGFyYW1ldGVyQ3RybCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRQYXJhbWV0ZXJDdHJsVGl0bGUgPSAnZWxlbWVudFBhcmFtZXRlckN0cmxUaXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRQYWdlQ2FyZFRpdGxlID0gJ2VsZW1lbnRQYWdlQ2FyZFRpdGxlJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFN0b3J5RGVzY3JpcHRpb24gPSAnZWxlbWVudFN0b3J5RGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50U3RvcnlQb2ludENhcHRpb24gPSAnZWxlbWVudFN0b3J5UG9pbnRDYXB0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgZWxlbWVudFN0b3J5VGl0bGUgPSAnZWxlbWVudFN0b3J5VGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBlbGVtZW50VG9vbHRpcCA9ICdlbGVtZW50VG9vbHRpcCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRBbGwgPSAnZWxlbWVudEFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnRQYWdlQ2FyZEJvZHkgPSAnZWxlbWVudFBhZ2VDYXJkQm9keScsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXRhSGlnaGxpZ2h0ZXIgPSAnZWxlbWVudERhdGFIaWdobGlnaHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIGVsZW1lbnREYXRhSGlnaGxpZ2h0ZXJUaXRsZSA9ICdlbGVtZW50RGF0YUhpZ2hsaWdodGVyVGl0bGUnLFxyXG5cclxuICAvLyBTcGVjaWFsIGVsZW1lbnRzIHVzZWQgZm9yIG1hdGNoaW5nIGFuZCBvcmdhbml6YXRpb25cclxuICBlbGVtZW50Tm9uZSA9ICdlbGVtZW50Tm9uZScsXHJcblxyXG4gIC8vIFNwZWNpYWwgZWxlbWVudHMgdXNlZCBmb3IgbWF0Y2hpbmcgYW5kIG9yZ2FuaXphdGlvblxyXG4gIGVsZW1lbnRBbnkgPSAnZWxlbWVudEFueScsXHJcblxyXG4gIC8vIFNwZWNpYWwgZWxlbWVudHMgdXNlZCBmb3IgbWF0Y2hpbmcgYW5kIG9yZ2FuaXphdGlvblxyXG4gIGVsZW1lbnRSb290ID0gJ2VsZW1lbnRSb290J1xyXG59XHJcblxyXG4vLyBEbyBub3QgbWVzcyB3aXRoIHRoZXNlIHZhbHVlcy4gVGhleSBhcmUgc29tZXRpbWVzIHVzZWQgYXMgYXJyYXkgaW5kZXhlcy9ib3VuZHNcclxuZXhwb3J0IGVudW0gU3R5bGVEYXRhQ2xhc3Mge1xyXG5cclxuICAvLyBcclxuICBkY05vcm1hbCA9ICdkY05vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIGRjVG90YWwgPSAnZGNUb3RhbCcsXHJcblxyXG4gIC8vIFxyXG4gIGRjU3VidG90YWwgPSAnZGNTdWJ0b3RhbCcsXHJcblxyXG4gIC8vIFxyXG4gIGRjQ09VTlQgPSAnZGNDT1VOVCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFN0eWxlRmllbGRTY29wZSB7XHJcblxyXG4gIC8vIFxyXG4gIGZzTm9uZSA9ICdmc05vbmUnLFxyXG5cclxuICAvLyBcclxuICBmc1Jvd3MgPSAnZnNSb3dzJyxcclxuXHJcbiAgLy8gXHJcbiAgZnNDb2xzID0gJ2ZzQ29scydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFN0eWxlU3dhdGNoIHtcclxuXHJcbiAgLy8gXHJcbiAgc3NVbnNwZWNpZmllZCA9ICdzc1Vuc3BlY2lmaWVkJyxcclxuXHJcbiAgLy8gXHJcbiAgc3NMaWdodCA9ICdzc0xpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgc3NEYXJrID0gJ3NzRGFyaydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlYXVGb250U3R5bGUge1xyXG5cclxuICAvLyBcclxuICBOb3JtYWxTdHlsZSA9ICdmb250LXN0eWxlLW5vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIEl0YWxpYyA9ICdmb250LXN0eWxlLWl0YWxpYydcclxufVxyXG5cclxuLy8gVW5zdXBwb3J0ZWQgZm9yIEJldHN5XHJcbmV4cG9ydCBlbnVtIFRleHREZWNvcmF0aW9uIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9EZWNvcmF0aW9uID0gJ3RleHQtZGVjb3JhdGlvbi1ub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5kZXJsaW5lID0gJ3RleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUnLFxyXG5cclxuICAvLyBub3QgeWV0IHN1cHBvcnRlZFxyXG4gIE92ZXJsaW5lID0gJ3RleHQtZGVjb3JhdGlvbi1vdmVybGluZScsXHJcblxyXG4gIC8vIFxyXG4gIFN0cmlrZXRocm91Z2ggPSAndGV4dC1kZWNvcmF0aW9uLXN0cmlrZXRocm91Z2gnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGb250V2VpZ2h0IHtcclxuXHJcbiAgLy8gXHJcbiAgTm9ybWFsV2VpZ2h0ID0gJ2ZvbnQtd2VpZ2h0LW5vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIEJvbGQgPSAnZm9udC13ZWlnaHQtYm9sZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRleHRPcmllbnQge1xyXG5cclxuICAvLyBcclxuICBUT19BdXRvID0gJ3RleHQtb3JpZW50LWF1dG8nLFxyXG5cclxuICAvLyBcclxuICBUT19Ib3J6ID0gJ3RleHQtb3JpZW50LWhvcml6b250YWwnLFxyXG5cclxuICAvLyBcclxuICBUT19WZXJ0VXAgPSAndGV4dC1vcmllbnQtdmVydGljYWwtdXAnLFxyXG5cclxuICAvLyBcclxuICBUT19WZXJ0RG93biA9ICd0ZXh0LW9yaWVudC12ZXJ0aWNhbC1kb3duJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVGV4dEFsaWduIHtcclxuXHJcbiAgLy8gXHJcbiAgVEFfU3RhcnQgPSAndGV4dC1hbGlnbi1zdGFydCcsXHJcblxyXG4gIC8vIFxyXG4gIFRBX0NlbnRlciA9ICd0ZXh0LWFsaWduLWNlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFRBX0VuZCA9ICd0ZXh0LWFsaWduLWVuZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRleHRXcmFwTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFRleHRXcmFwT2ZmID0gJ3RleHQtd3JhcC1vZmYnLFxyXG5cclxuICAvLyBcclxuICBUZXh0V3JhcFRydW5jYXRlID0gJ3RleHQtd3JhcC10cnVuY2F0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFRleHRXcmFwT24gPSAndGV4dC13cmFwLW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dFdyYXBBdXRvID0gJ3RleHQtd3JhcC1hdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVGV4dFdob2xlTGluZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBUZXh0V2hvbGVMaW5lT2ZmID0gJ3RleHQtd2hvbGUtbGluZS1vZmYnLFxyXG5cclxuICAvLyBcclxuICBUZXh0V2hvbGVMaW5lT24gPSAndGV4dC13aG9sZS1saW5lLW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dFdob2xlTGluZUF1dG8gPSAndGV4dC13aG9sZS1saW5lLWF1dG8nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUZXh0QnJlYWtNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgVGV4dEJyZWFrV2hpdGVzcGFjZU9ubHkgPSAndGV4dC1icmVhay13cy1vbmx5JyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dEJyZWFrQXV0byA9ICd0ZXh0LWJyZWFrLWF1dG8nXHJcbn1cclxuXHJcbi8vIHR5cGUgb2YgYWdncmVnYXRpb25cclxuZXhwb3J0IGVudW0gQWdnVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEFHR19TVU0gPSAnc3VtJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0FWRyA9ICdhdmVyYWdlJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX01JTiA9ICdtaW4nLFxyXG5cclxuICAvLyBcclxuICBBR0dfTUFYID0gJ21heCcsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19TVERFViA9ICdzdGQtZGV2JyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1NUREVWUCA9ICdzdGQtZGV2LXAnLFxyXG5cclxuICAvLyBcclxuICBBR0dfVkFSID0gJ3ZhcicsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19WQVJQID0gJ3Zhci1wJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPVU5UID0gJ2NvdW50JyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPVU5URCA9ICdjb3VudC1kJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX01FRElBTiA9ICdtZWRpYW4nLFxyXG5cclxuICAvLyBcclxuICBBR0dfQVRUUiA9ICdhdHRyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19QRVJDRU5USUxFID0gJ3BlcmNlbnRpbGUnLFxyXG5cclxuICAvLyBcclxuICBBR0dfWUVBUiA9ICd5ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1FUUiA9ICdxdHInLFxyXG5cclxuICAvLyBcclxuICBBR0dfTU9OVEggPSAnbW9udGgnLFxyXG5cclxuICAvLyBcclxuICBBR0dfREFZID0gJ2RheScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19IT1VSID0gJ2hvdXInLFxyXG5cclxuICAvLyBcclxuICBBR0dfTUlOVVRFID0gJ21pbnV0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19TRUNPTkQgPSAnc2Vjb25kJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1dFRUsgPSAnd2VlaycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19XRUVLREFZID0gJ3dlZWtkYXknLFxyXG5cclxuICAvLyBcclxuICBBR0dfTU9OVEhZRUFSID0gJ21vbnRoLXllYXInLFxyXG5cclxuICAvLyBcclxuICBBR0dfTURZID0gJ21keScsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19FTkQgPSAnZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfWUVBUiA9ICd0cnVuYy15ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfUVRSID0gJ3RydW5jLXF0cicsXHJcblxyXG4gIC8vIFxyXG4gIFRSVU5DX01PTlRIID0gJ3RydW5jLW1vbnRoJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfV0VFSyA9ICd0cnVuYy13ZWVrJyxcclxuXHJcbiAgLy8gXHJcbiAgVFJVTkNfREFZID0gJ3RydW5jLWRheScsXHJcblxyXG4gIC8vIFxyXG4gIFRSVU5DX0hPVVIgPSAndHJ1bmMtaG91cicsXHJcblxyXG4gIC8vIFxyXG4gIFRSVU5DX01JTlVURSA9ICd0cnVuYy1taW51dGUnLFxyXG5cclxuICAvLyBcclxuICBUUlVOQ19TRUNPTkQgPSAndHJ1bmMtc2Vjb25kJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX1FVQVJUMSA9ICdxdWFydDEnLFxyXG5cclxuICAvLyBcclxuICBBR0dfUVVBUlQzID0gJ3F1YXJ0MycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19TS0VXTkVTUyA9ICdza2V3bmVzcycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19LVVJUT1NJUyA9ICdrdXJ0b3NpcycsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19JTk9VVCA9ICdpbi1vdXQnLFxyXG5cclxuICAvLyBcclxuICBBR0dfU1VNX1hTUVIgPSAnc3VtLXhzcXInLFxyXG5cclxuICAvLyBcclxuICBBR0dfVVNFUiA9ICd1c2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPTExFQ1QgPSAnY29sbGVjdCcsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19DT1ZBUiA9ICdjb3ZhcicsXHJcblxyXG4gIC8vIFxyXG4gIEFHR19DT1ZBUlAgPSAnY292YXJwJyxcclxuXHJcbiAgLy8gXHJcbiAgQUdHX0NPUlIgPSAnY29ycidcclxufVxyXG5cclxuLy8gRGF0YVZhbHVlRm9ybWF0dGVyOjpEYXRhVHlwZUVuY29kaW5ncyBoYXMgaGFyZGNvZGVkIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIGZvbGxvd2luZyBlbnVtIG1lbWJlcnMuIFNvIGFueSBjaGFuZ2VzIGhlcmUgc2hvdWxkIGJlIGRvbmUgdGhlcmUgdG9vXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRFRfSU5URUdFUiA9ICdpbnRlZ2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfUkVBTCA9ICdyZWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfU1RSSU5HID0gJ2NzdHJpbmcnLFxyXG5cclxuICAvLyBcclxuICBEVF9EQVRFVElNRSA9ICdkYXRldGltZScsXHJcblxyXG4gIC8vIFxyXG4gIERUX0JPT0xFQU4gPSAnYm9vbGVhbicsXHJcblxyXG4gIC8vIFxyXG4gIERUX0RBVEUgPSAnZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIERUX1RVUExFID0gJ3R1cGxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfU1BBVElBTCA9ICdzcGF0aWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfVU5LTk9XTiA9ICd1bmtub3duJyxcclxuXHJcbiAgLy8gXHJcbiAgRFRfQklOQVJZID0gJ2JpbmFyeScsXHJcblxyXG4gIC8vIFxyXG4gIERUX1RJTUUgPSAndGltZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERhdGVQZXJpb2RUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kWWVhciA9ICd5ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kUXVhcnRlciA9ICdxdWFydGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kTW9udGggPSAnbW9udGgnLFxyXG5cclxuICAvLyBcclxuICBQZXJpb2RXZWVrID0gJ3dlZWsnLFxyXG5cclxuICAvLyBcclxuICBQZXJpb2REYXkgPSAnZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kSG91ciA9ICdob3VyJyxcclxuXHJcbiAgLy8gXHJcbiAgUGVyaW9kTWludXRlID0gJ21pbnV0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFBlcmlvZFNlY29uZCA9ICdzZWNvbmQnXHJcbn1cclxuXHJcbi8vIEZvcm1hdCBwcmVwZW5kZWQgdG8gZm9ybWF0IHN0cmluZ3MgdG8gc3BlY2lmeSB0eXBlXHJcbmV4cG9ydCBlbnVtIEZvcm1hdENvZGUge1xyXG5cclxuICAvLyBcclxuICBBdXRvRm9ybWF0ID0gJ2F1dG8tZm9ybWF0JyxcclxuXHJcbiAgLy8gXHJcbiAgU3lzdGVtTG9uZ0RhdGUgPSAnc3lzdGVtLWxvbmctZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFN5c3RlbVNob3J0RGF0ZSA9ICdzeXN0ZW0tc2hvcnQtZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFN5c3RlbU51bWJlciA9ICdzeXN0ZW0tbnVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU3lzdGVtQ3VycmVuY3kgPSAnc3lzdGVtLWN1cnJlbmN5JyxcclxuXHJcbiAgLy8gXHJcbiAgU3lzdGVtVGltZSA9ICdzeXN0ZW0tdGltZScsXHJcblxyXG4gIC8vIFxyXG4gIEN1c3RvbSA9ICdjdXN0b20nLFxyXG5cclxuICAvLyBcclxuICBDdXN0b21JQ1UgPSAnY3VzdG9tLWljdScsXHJcblxyXG4gIC8vIFxyXG4gIEN1c3RvbU51bWJlciA9ICdjdXN0b20tbnVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tQ3VycmVuY3kgPSAnY3VzdG9tLWN1cnJlbmN5JyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tU2NpZW50aWZpYyA9ICdjdXN0b20tc2NpZW50aWZpYycsXHJcblxyXG4gIC8vIFxyXG4gIEN1c3RvbVBlcmNlbnRhZ2UgPSAnY3VzdG9tLXBlcmNlbnRhZ2UnXHJcbn1cclxuXHJcbi8vIFVuaXRzIHNwZWNpZmllZCBpbiBhIGZvcm1hdCBzdHJpbmdcclxuZXhwb3J0IGVudW0gVW5pdHNGb3JtYXRFbnVtIHtcclxuXHJcbiAgLy8gXHJcbiAgVW5pdHNGbXROb25lID0gJ3VuaXRzLW5vbmUnLFxyXG5cclxuICAvLyBcclxuICBVbml0c0ZtdFRob3VzYW5kcyA9ICd1bml0cy10aG91c2FuZHMnLFxyXG5cclxuICAvLyBcclxuICBVbml0c0ZtdE1pbGxpb25zID0gJ3VuaXRzLW1pbGxpb25zJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5pdHNGbXRCaWxsaW9uc0VuZ2xpc2ggPSAndW5pdHMtYmlsbGlvbnMtZW5nbGlzaCcsXHJcblxyXG4gIC8vIFxyXG4gIFVuaXRzRm10QmlsbGlvbnNTdGFuZGFyZCA9ICd1bml0cy1iaWxsaW9ucy1zdGFuZGFyZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvcmVjYXN0Q29sdW1uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEZPUkVDQVNUX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZPUkVDQVNUX1ZBTFVFID0gJ3ZhbHVlJyxcclxuXHJcbiAgLy8gXHJcbiAgRk9SRUNBU1RfSU5ESUNBVE9SID0gJ2luZGljYXRvcicsXHJcblxyXG4gIC8vIFxyXG4gIEZPUkVDQVNUX1BSRUNJU0lPTiA9ICdwcmVjaXNpb24nLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9RVUFMSVRZID0gJ3F1YWxpdHknLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9GSVRfVFJFTkQgPSAnZml0X3RyZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgRk9SRUNBU1RfUFJFQ0lTSU9OX1BFUkNFTlQgPSAncHJlY2lzaW9uX3BlcmNlbnQnLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9QUkVESUNUSU9OX0lOVEVSVkFMX1VQUEVSID0gJ3ByZWRpY3Rpb25fdXBwZXInLFxyXG5cclxuICAvLyBcclxuICBGT1JFQ0FTVF9QUkVESUNUSU9OX0lOVEVSVkFMX0xPV0VSID0gJ3ByZWRpY3Rpb25fbG93ZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNYXJrTWFya2Vyc01vZGUge1xyXG5cclxuICAvLyBcclxuICBNTU1fQXV0byA9ICdtbW0tYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIE1NTV9BbGwgPSAnbW1tX2FsbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1NTV9Ob25lID0gJ21tbV9ub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgTU1NX0RlZmF1bHQgPSAnbW1tX2RlZmF1bHQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQZXJjZW50TW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFBFUkNFTlRfQ0VMTF9JTl9QQU5FID0gJ2NlbGwtaW4tcGFuZScsXHJcblxyXG4gIC8vIFxyXG4gIFBFUkNFTlRfUk9XX0lOX1BBTkUgPSAncm93LWluLXBhbmUnLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX0NPTFVNTl9JTl9QQU5FID0gJ2NvbHVtbi1pbi1wYW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgUEVSQ0VOVF9QQU5FID0gJ3BhbmUnLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX1JPVyA9ICdyb3cnLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX0NPTFVNTiA9ICdjb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBQRVJDRU5UX1RBQkxFID0gJ3RhYmxlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU3BlY2lhbFZhbHVlc01vZGUge1xyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19ISURFX0FORF9XQVJOID0gJ2hpZGUtYW5kLXdhcm4nLFxyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19ISURFID0gJ2hpZGUnLFxyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19ISURFX0JSRUFLX0xJTkVTID0gJ2hpZGUtYnJlYWstbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBTUEVDSUFMX1ZBTFVFU19TSE9XID0gJ3Nob3cnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMYXlvdXRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgTEFZT1VUX0NBUlRFU0lBTiA9ICdjYXJ0ZXNpYW4nLFxyXG5cclxuICAvLyBcclxuICBMQVlPVVRfREVGQVVMVCA9ICdkZWZhdWx0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlbGZUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1RfTk9ORSA9ICdub25lLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfQ09MVU1OU19TSEVMRiA9ICdjb2x1bW5zLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfUk9XU19TSEVMRiA9ICdyb3dzLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfUEFHRVNfU0hFTEYgPSAncGFnZXMtc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9GSUxURVJfU0hFTEYgPSAnZmlsdGVyLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfSU1BR0VfU0hFTEYgPSAnaW1hZ2Utc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9NRUFTVVJFU19TSEVMRiA9ICdtZWFzdXJlcy1zaGVsZicsXHJcblxyXG4gIC8vIFxyXG4gIFNUX1NIT1dNRV9TSEVMRiA9ICdzaG93LW1lLXNoZWxmJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfRU5DT0RJTkdfU0hFTEYgPSAnZW5jb2Rpbmctc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9DTFVTVEVSX1NIRUxGID0gJ2NsdXN0ZXItc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9HRU9NRVRSWV9TSEVMRiA9ICdnZW9tZXRyeS1zaGVsZicsXHJcblxyXG4gIC8vIFxyXG4gIFNUX0VORCA9ICdlbmQtc2hlbGYnLFxyXG5cclxuICAvLyBcclxuICBTVF9GSU5BTCA9ICdmaW5hbC1zaGVsZidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFJlc3RyaWN0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJUX0lOVEVSU0VDVCA9ICdydC1pbnRlcnNlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBSVF9VTklPTiA9ICdydC11bmlvbidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRvb2x0aXBNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgVE1fTk9ORSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgVE1fU1RJQ0tZID0gJ3N0aWNreScsXHJcblxyXG4gIC8vIFxyXG4gIFRNX1NNT09USCA9ICdzbW9vdGgnLFxyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ29sdW1uR3JvdXBzIHtcclxuXHJcbiAgLy8gMHgwMVxyXG4gIENPTFNfSU5fT1VUUFVUID0gJ2NvbHMtaW4tb3V0cHV0JyxcclxuXHJcbiAgLy8gMHgwMlxyXG4gIENPTFNfSU5fRklMVEVSX1NIRUxGID0gJ2NvbHMtaW4tZmlsdGVyLXNoZWxmJyxcclxuXHJcbiAgLy8gMHgwNFxyXG4gIENPTFNfUkVGX0JZX0ZJTFRFUlMgPSAnY29scy1yZWYtYnktZmlsdGVycycsXHJcblxyXG4gIC8vIDB4MDhcclxuICBDT0xTX1JFRl9CWV9PTUVBU1VSRVMgPSAnY29scy1yZWYtYnktb21lYXN1cmVzJyxcclxuXHJcbiAgLy8gMHgxMFxyXG4gIENPTFNfUkVGX0JZX0pPSU5fTE9EID0gJ2NvbHMtcmVmLWJ5LWpvaW4tbG9kJyxcclxuXHJcbiAgLy8gMHgyMFxyXG4gIENPTFNfSElEREVOID0gJ2NvbHMtaGlkZGVuJyxcclxuXHJcbiAgLy8gMHg0MFxyXG4gIENPTFNfUkVGX0JZX1NPUlRTID0gJ2NvbHMtcmVmLWJ5LXNvcnRzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ09MU19SRUZfQllfRklMVEVSU19PUl9TT1JUUyA9ICdjb2xzLXJlZi1ieS1maWx0ZXJzLW9yLXNvcnRzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ09MU19PTl9TSEVMVkVTID0gJ2NvbHMtb24tc2hlbHZlcycsXHJcblxyXG4gIC8vIFxyXG4gIENPTFNfQUxMID0gJ2NvbHMtYWxsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQnV0dG9uc09wdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIEJPX0hJREUgPSAnYnV0dG9ucy1oaWRlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2VsZWN0aW9uUmVsYXhhdGlvbk9wdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIFNST19BTExPVyA9ICdzZWxlY3Rpb24tcmVsYXhhdGlvbi1hbGxvdycsXHJcblxyXG4gIC8vIFxyXG4gIFNST19ESVNBTExPVyA9ICdzZWxlY3Rpb24tcmVsYXhhdGlvbi1kaXNhbGxvdycsXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBFbmNvZGluZ1R5cGUge1xyXG5cclxuICAvLyBhIHRleHQgZW5jb2RpbmdcclxuICBFVF9URVhUID0gJ3RleHQtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIGNvbG9yIGVuY29kaW5nXHJcbiAgRVRfQ09MT1IgPSAnY29sb3ItZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHNpemUgZW5jb2RpbmdcclxuICBFVF9TSVpFID0gJ3NpemUtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHNoYXBlIGVuY29kaW5nXHJcbiAgRVRfU0hBUEUgPSAnc2hhcGUtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhbiBpbWFnZSBlbmNvZGluZ1xyXG4gIEVUX0lNQUdFID0gJ2ltYWdlLWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSBzb3J0IChwYXRoKSBlbmNvZGluZyAoY3VycmVudGx5IG9ubHkgZm9yIGxpbmUgb3IgcG9seWdvbiBjaGFydHMpXHJcbiAgRVRfU09SVCA9ICdzb3J0LWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSB3ZWRnZSBzaXplIChhbmdsZSkgZW5jb2RpbmcgKGN1cnJlbnRseSBvbmx5IGZvciBwaWUgY2hhcnRzKVxyXG4gIEVUX1dFREdFU0laRSA9ICd3ZWRnZS1zaXplLWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSBnZW9tZXRyeSBlbmNvZGluZ1xyXG4gIEVUX0dFT01FVFJZID0gJ2dlb21ldHJ5LWVuY29kaW5nJyxcclxuXHJcbiAgLy8gYSBsZXZlbCBvZiBkZXRhaWwgZW5jb2RpbmdcclxuICBFVF9MT0QgPSAnbGV2ZWwtb2YtZGV0YWlsLWVuY29kaW5nJyxcclxuXHJcbiAgLy8gZW5jb2RpbmcgdXNlZCBmb3IgdGhlIGRhdGEgaGlnaGxpZ2h0ZXIvbGVnZW5kIG1lY2hhbmlzbVxyXG4gIEVUX0hJR0hMSUdIVCA9ICdoaWdobGlnaHQtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHRvb2x0aXAgZW5jb2RpbmdcclxuICBFVF9UT09MVElQID0gJ3Rvb2x0aXAtZW5jb2RpbmcnLFxyXG5cclxuICAvLyBhIHRlbXBvcmFyeSBsYWJlbCBwbGFjZWQgYWJvdmUgbWFya3MgZm9yIHRoZSB0YWJsZSBjYWxjIGRpYWxvZ1xyXG4gIEVUX1JVTk5JTkdPUkRFUiA9ICdydW5uaW5nb3JkZXItZW5jb2RpbmcnLFxyXG5cclxuICAvLyB0aGUgbnVtYmVyIG9mIGVuY29kaW5ncywgdGhpcyBpcyBpbnZhbGlkIGlucHV0IGZvciBhbiBlbmNvZGluZyBwcmVzZW50YXRpb24gbW9kZWxcclxuICBOVU1fRU5DT0RJTkdTID0gJ251bS1lbmNvZGluZ3MnLFxyXG5cclxuICAvLyBhbiBpbnZhbGlkIGVuY29kaW5nXHJcbiAgRVRfSU5WQUxJRCA9ICdpbnZhbGlkLWVuY29kaW5nJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBvZiB2YWxpZCBob3Jpem9udGFsIGFsaWdubWVudHMuXHJcbmV4cG9ydCBlbnVtIExhYmVsSEFsaWdubWVudCB7XHJcblxyXG4gIC8vIFxyXG4gIExIQV9MZWZ0ID0gJ2gtYWxpZ24tbGVmdCcsXHJcblxyXG4gIC8vIFxyXG4gIExIQV9DZW50ZXIgPSAnaC1hbGlnbi1jZW50ZXInLFxyXG5cclxuICAvLyBcclxuICBMSEFfUmlnaHQgPSAnaC1hbGlnbi1yaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIExIQV9BdXRvbWF0aWMgPSAnaC1hbGlnbi1hdXRvJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBvZiB2YWxpZCB2ZXJ0aWNhbCBhbGlnbm1lbnRzLlxyXG5leHBvcnQgZW51bSBMYWJlbFZBbGlnbm1lbnQge1xyXG5cclxuICAvLyBcclxuICBMVkFfQm90dG9tID0gJ3YtYWxpZ24tYm90dG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgTFZBX0NlbnRlciA9ICd2LWFsaWduLWNlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIExWQV9Ub3AgPSAndi1hbGlnbi10b3AnLFxyXG5cclxuICAvLyBcclxuICBMVkFfQXV0b21hdGljID0gJ3YtYWxpZ24tYXV0bydcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gb2YgdmFsaWQgbGFiZWwgcG9zaXRpb25zLlxyXG5leHBvcnQgZW51bSBMYWJlbFBvc2l0aW9uIHtcclxuXHJcbiAgLy8gUG9zaXRpb24gZWFjaCB0ZXh0IHJ1biByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBvcmlnaW5hbCBiYm94LiAgVXNlIHRoZSBvcmlnaW5hbCBiYm94IGFzIHRoZSBoZWlnaHQgYW5kIHdpZHRoIG9mIHRoZSB0ZXh0IG1hcmsuICBVc2VkIGZvciBub24tc3RhY2tlZCBPTyB0ZXh0IG1hcmtzLlxyXG4gIENlbnRlckluT3JpZ2luYWxCYm94ID0gJ2xhYmVsLXBvc2l0aW9uLWNlbnRlci1pbi1vcmlnaW5hbC1ib3gnLFxyXG5cclxuICAvLyBQb3NpdGlvbiBlYWNoIHRleHQgcnVuIHJlbGF0aXZlIHRvIHRoZSBib3R0b20gbGVmdCBjb3JuZXIgb2YgdGhlIG1lYXN1cmVkIGJib3guIFVzZSB0aGUgbWVhc3VyZWQgYmJveCBhcyB0aGUgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgbGFiZWwuIFVzZWQgZm9yIGxhYmVsc1xyXG4gIE9yaWdpbkF0TG93ZXJMZWZ0ID0gJ2xhYmVsLXBvc2l0aW9uLW9yaWdpbi1hdC1sb3dlci1sZWZ0JyxcclxuXHJcbiAgLy8gUG9zaXRpb24gZWFjaCB0ZXh0IHJ1biByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBtZWFzdXJlZCBiYm94LiBVc2UgdGhlIG1lYXN1cmVkIGJib3ggYXMgdGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHRleHQgbWFyay4gVXNlZCBmb3IgbW9zdCB0ZXh0IG1hcmtzLlxyXG4gIE9yaWdpbkF0Q2VudGVyID0gJ2xhYmVsLXBvc2l0aW9uLW9yaWdpbi1hdC1jZW50ZXInXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHdheXMgdG8gdXNlIGNvbG9yLiAgVmFsdWVzIGNhbiBiZSBvcidlZCB0b2dldGhlciB0byBtYWtlIGEgbWFzayBmb3IgYWxsb3dlZCBvcHRpb25zXHJcbmV4cG9ydCBlbnVtIENvbG9yTW9kZSB7XHJcblxyXG4gIC8vIENvbG9yIHVzZXIgc3BlY2lmaWVkXHJcbiAgQ0xSTV9Vc2VyID0gJ2Nscm0tdXNlcicsXHJcblxyXG4gIC8vIENvbG9yIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcclxuICBDTFJNX0F1dG8gPSAnY2xybS1hdXRvJyxcclxuXHJcbiAgLy8gQ29sb3IgbWF0Y2hlcyBtYXJrIGNvbG9yXHJcbiAgQ0xSTV9NYXRjaCA9ICdjbHJtLW1hdGNoJyxcclxuXHJcbiAgLy8gTm8gY29sb3IgKHRyYW5zcGFyZW50IG9yIG5vdCBkcmF3bilcclxuICBDTFJNX05vbmUgPSAnY2xybS1ub25lJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xhYmVsc01vZGUge1xyXG5cclxuICAvLyBcclxuICBNTE1fQWxsID0gJ21sbS1hbGwnLFxyXG5cclxuICAvLyBcclxuICBNTE1fU2VsZWN0aW9uID0gJ21sbS1zZWxlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBNTE1fSGlnaGxpZ2h0ID0gJ21sbS1oaWdobGlnaHQnLFxyXG5cclxuICAvLyBcclxuICBNTE1fTGluZUVuZHMgPSAnbWxtLWxpbmUtZW5kcycsXHJcblxyXG4gIC8vIG1pbi9tYXggc2V0dGluZ1xyXG4gIE1MTV9SYW5nZSA9ICdtbG0tcmFuZ2UnLFxyXG5cclxuICAvLyBtb3N0IHJlY2VudCAob25seSByZWxldmFudCB3aGVuIGRhdGUgZmllbGQgaXMgaW4gcGxheSlcclxuICBNTE1fTW9zdFJlY2VudCA9ICdtbG0tbW9zdC1yZWNlbnQnLFxyXG5cclxuICAvLyAuLi50aGlzIGlzIFwiIHZpcnR1YWwgXCIgKHJ1bnRpbWUgb25seSwgbm90IHNhdmVkLCBub3Qgc2hvd24gYXMgYSB1c2VyIHNldHRpbmdcclxuICBNTE1fTXVsdGlwbGVWYWx1ZXMgPSAnbWxtLW11bHRpcGxlLXZhbHVlcycsXHJcblxyXG4gIC8vIFxyXG4gIE1MTV9EZWZhdWx0ID0gJ21sbS1kZWZhdWx0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xhYmVsc1Njb3BlIHtcclxuXHJcbiAgLy8gXHJcbiAgTUxTX1RhYmxlID0gJ21scy10YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIE1MU19QYW5lID0gJ21scy1wYW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgTUxTX0NlbGwgPSAnbWxzLWNlbGwnLFxyXG5cclxuICAvLyBcclxuICBNTFNfTXVsdGlNYXJrID0gJ21scy1tdWx0aW1hcmsnLFxyXG5cclxuICAvLyAuLi50aGlzIGlzIFwiIHZpcnR1YWwgXCIgKHJ1bnRpbWUgb25seSwgbm90IHNhdmVkLCBub3Qgc2hvd24gYXMgYSB1c2VyIHNldHRpbmcpXHJcbiAgTUxTX011bHRpcGxlVmFsdWVzID0gJ21scy1tdWx0aXBsZS12YWx1ZXMnLFxyXG5cclxuICAvLyBcclxuICBNTFNfRGVmYXVsdCA9ICdtbHMtZGVmYXVsdCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1hcmtMYWJlbHNWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgTUxWX0hpZGRlbiA9ICdtbHYtaGlkZGVuJyxcclxuXHJcbiAgLy8gXHJcbiAgTUxWX1Zpc2libGUgPSAnbWx2LXZpc2libGUnLFxyXG5cclxuICAvLyBcclxuICBNTFZfVXNlQ3VycmVudCA9ICdtbHYtdXNlLWN1cnJlbnQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTdGFja2luZ01vZGUge1xyXG5cclxuICAvLyBcclxuICBTdGFja2luZ09mZiA9ICdvZmYnLFxyXG5cclxuICAvLyBcclxuICBTdGFja2luZ09uID0gJ29uJyxcclxuXHJcbiAgLy8gXHJcbiAgU3RhY2tpbmdBdXRvID0gJ2F1dG8nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNYXJrQWxpZ25tZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgTWFya0FsaWdubWVudExlZnQgPSAnbWFyay1hbGlnbm1lbnQtbGVmdCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBbGlnbm1lbnRSaWdodCA9ICdtYXJrLWFsaWdubWVudC1yaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBbGlnbm1lbnRDZW50ZXIgPSAnbWFyay1hbGlnbm1lbnQtY2VudGVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFuZUxhYmVsQ29tcG9zaXRpb24ge1xyXG5cclxuICAvLyBcclxuICBQTENfTm9uZSA9ICdwYW5lLWxhYmVsLWNvbXBvc2l0aW9uLW5vbmUnLFxyXG5cclxuICAvLyBcclxuICBQTENfTWl4ZWQgPSAncGFuZS1sYWJlbC1jb21wb3NpdGlvbi1taXhlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFBMQ19BbGwgPSAncGFuZS1sYWJlbC1jb21wb3NpdGlvbi1hbGwnXHJcbn1cclxuXHJcbi8vIFRoZSB1c2VyLXNwZWNpZmllZCBtYXJrIHR5cGUgb24gdGhlIE1hcmtzIENhcmRcclxuZXhwb3J0IGVudW0gUHJpbWl0aXZlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFBUX0FVVE9NQVRJQyA9ICdhdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBQVF9URVhUID0gJ3RleHQnLFxyXG5cclxuICAvLyBcclxuICBQVF9JTUFHRSA9ICdpbWFnZScsXHJcblxyXG4gIC8vIFxyXG4gIFBUX1NIQVBFID0gJ3NoYXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgUFRfUkVDVEFOR0xFID0gJ3JlY3RhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFBUX0JBUiA9ICdiYXInLFxyXG5cclxuICAvLyBcclxuICBQVF9HQU5UVCA9ICdnYW50dCcsXHJcblxyXG4gIC8vIFxyXG4gIFBUX1NRVUFSRSA9ICdzcXVhcmUnLFxyXG5cclxuICAvLyBcclxuICBQVF9DSVJDTEUgPSAnY2lyY2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgUFRfUE9MWUxJTkUgPSAncG9seWxpbmUnLFxyXG5cclxuICAvLyBsaW5lIGNoYXJ0XHJcbiAgUFRfTElORSA9ICdsaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgUFRfUE9MWUdPTiA9ICdwb2x5Z29uJyxcclxuXHJcbiAgLy8gYXJlYSBjaGFydFxyXG4gIFBUX0FSRUEgPSAnYXJlYScsXHJcblxyXG4gIC8vIFxyXG4gIFBUX1BJRSA9ICdwaWUnLFxyXG5cclxuICAvLyBcclxuICBQVF9NVUxUSVBPTFlHT04gPSAnbXVsdGlwb2x5Z29uJyxcclxuXHJcbiAgLy8gTm90IGFuIGFjdHVhbCBwcmltaXRpdmUgdHlwZS4gVGhpcyBpcyBqdXN0IHVzZWQgdG8gZmxhZyB0aGUgVUkgdGhhdCBtdWx0aXBsZSB0eXBlcyBhcmUgaW4gcGxheS5cclxuICBQVF9NVUxUSVBMRSA9ICdtdWx0aXBsZScsXHJcblxyXG4gIC8vIHVzZWQgZm9yIGxvb3Bpbmcgb3ZlciBhbGwgdmFsdWVzXHJcbiAgTlVNX1BSSU1JVElWRVMgPSAnY291bnQnLFxyXG5cclxuICAvLyB1c2VkIHRvIGZsYWcgYW4gdW5zZXQgb3IgaW52YWxpZCBzdGF0ZVxyXG4gIFBUX0lOVkFMSUQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gRGVmaW5lcyB0aGUgd2F5IGEgZ2l2ZW4gcHJpbWl0aXZlIGJlaGF2ZXMgb24gYSB2aXogLSBmb3IgaW5zdGFuY2UsIGEgUFRfQ0lSQ0xFIGlzIHRyZWF0ZWQgYXMgYSBwb2ludCwgd2hpbGUgYSBQVF9QT0xZR09OIHdvdWxkIGJlIHRyZWF0ZWQgYXMgYW4gYXJlYS5cclxuZXhwb3J0IGVudW0gTWFya1R5cGUge1xyXG5cclxuICAvLyBcclxuICBNVF9QT0lOVCA9ICdwb2ludCcsXHJcblxyXG4gIC8vIFxyXG4gIE1UX0xJTkUgPSAnbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIE1UX0FSRUEgPSAnYXJlYScsXHJcblxyXG4gIC8vIFxyXG4gIE1UX0lOVkFMSUQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gUGFuZUF4aXMgaXMgdXNlZCB0byBkZXNjcmliZSB3aGljaCBheGlzIG9mIGEgcGFuZSBpcyB0aGUgaW5kZXBlbmRlbnQgYXhpcy5cclxuZXhwb3J0IGVudW0gUGFuZUF4aXMge1xyXG5cclxuICAvLyBUaGUgaW5kZXBlbmRlbnQgYXhpcyBpcyBpbmZlcnJlZCBmcm9tIG90aGVyIHByb3BlcnRpZXMgb2YgdGhlIHBhbmUuXHJcbiAgQVhJU19BVVRPID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBBWElTX1ggPSAneCcsXHJcblxyXG4gIC8vIFxyXG4gIEFYSVNfWSA9ICd5J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUm91bmRpbmcge1xyXG5cclxuICAvLyBcclxuICBSb3VuZGluZ19Ob25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBSb3VuZGluZ19TbWFsbCA9ICdzbWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFJvdW5kaW5nX01lZGl1bSA9ICdtZWRpdW0nLFxyXG5cclxuICAvLyBcclxuICBSb3VuZGluZ19MYXJnZSA9ICdsYXJnZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIExpbmVFbmQge1xyXG5cclxuICAvLyBcclxuICBMaW5lRW5kX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRfQXJyb3cgPSAnYXJyb3cnLFxyXG5cclxuICAvLyBcclxuICBMaW5lRW5kX09wZW5BcnJvdyA9ICdvcGVuLWFycm93JyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUVuZF9Eb3QgPSAnZG90J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGluZUVuZFNpemUge1xyXG5cclxuICAvLyBcclxuICBMaW5lRW5kU2l6ZV9TbWFsbGVzdCA9ICdzbWFsbGVzdCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX1NtYWxsZXIgPSAnc21hbGxlcicsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX1NtYWxsID0gJ3NtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUVuZFNpemVfTWVkaXVtID0gJ21lZGl1bScsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX0xhcmdlID0gJ2xhcmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUVuZFNpemVfTGFyZ2VyID0gJ2xhcmdlcicsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVFbmRTaXplX0xhcmdlc3QgPSAnbGFyZ2VzdCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEJvZHlUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgQm9keVR5cGVfTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgQm9keVR5cGVfQm94ID0gJ2JveCcsXHJcblxyXG4gIC8vIFxyXG4gIEJvZHlUeXBlX0VkZ2UgPSAnZWRnZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFN0eWxlVGhlbWUge1xyXG5cclxuICAvLyBcclxuICB0aGVtZUNsYXNzaWMgPSAnY2xhc3NpYycsXHJcblxyXG4gIC8vIFxyXG4gIHRoZW1lTW9kZXJuID0gJ21vZGVybicsXHJcblxyXG4gIC8vIFxyXG4gIHRoZW1lQ2xlYW4gPSAnY2xlYW4nLFxyXG5cclxuICAvLyBcclxuICB0aGVtZVNtb290aCA9ICdzbW9vdGgnLFxyXG5cclxuICAvLyBcclxuICB0aGVtZUN1c3RvbSA9ICdjdXN0b20nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBeGlzRm9sZFN0YXRlIHtcclxuXHJcbiAgLy8gXHJcbiAgYWZOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBhZkZvbGRlZCA9ICdmb2xkZWQnLFxyXG5cclxuICAvLyBcclxuICBhZlN5bmNocm9uaXplZCA9ICdzeW5jaHJvbml6ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMaW5lUGF0dGVybiB7XHJcblxyXG4gIC8vIFxyXG4gIExpbmVQYXR0ZXJuTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZVBhdHRlcm5Tb2xpZCA9ICdzb2xpZCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVQYXR0ZXJuRGFzaGVkID0gJ2Rhc2hlZCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVQYXR0ZXJuRG90dGVkID0gJ2RvdHRlZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIExpbmVWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgTGluZVZpc2liaWxpdHlBdXRvID0gJ2F1dG9tYXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVWaXNpYmlsaXR5T24gPSAnb24nLFxyXG5cclxuICAvLyBcclxuICBMaW5lVmlzaWJpbGl0eU9mZiA9ICdvZmYnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTdHlsZXNMaW5lUGF0dGVybiB7XHJcblxyXG4gIC8vIFxyXG4gIFN0eWxlc0xpbmVQYXR0ZXJuU29saWQgPSAnc29saWQnLFxyXG5cclxuICAvLyBcclxuICBTdHlsZXNMaW5lUGF0dGVybkRhc2hlZCA9ICdkYXNoZWQnLFxyXG5cclxuICAvLyBcclxuICBTdHlsZXNMaW5lUGF0dGVybkRvdHRlZCA9ICdkb3R0ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMaW5lQ2FwIHtcclxuXHJcbiAgLy8gXHJcbiAgTGluZUNhcEZsYXQgPSAnZmxhdCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVDYXBTcXVhcmUgPSAnc3F1YXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUNhcFJvdW5kID0gJ3JvdW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgTGluZUNhcFRyaWFuZ2xlID0gJ3RyaWFuZ2xlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGluZUpvaW4ge1xyXG5cclxuICAvLyBcclxuICBCZXZlbEpvaW4gPSAnYmV2ZWwnLFxyXG5cclxuICAvLyBcclxuICBNaXRlckpvaW4gPSAnbWl0ZXInLFxyXG5cclxuICAvLyBcclxuICBSb3VuZEpvaW4gPSAncm91bmQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMaW5lQWxpZ25tZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgQWxpZ25tZW50Q2VudGVyID0gJ2NlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEFsaWdubWVudEluc2V0ID0gJ2luc2V0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmlsbE1vZGUge1xyXG5cclxuICAvLyBcclxuICBGaWxsRXZlbk9kZCA9ICdldmVuLW9kZCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpbGxXaW5kaW5nID0gJ3dpbmRpbmcnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBCb3JkZXJTdHlsZSB7XHJcblxyXG4gIC8vIG5vbmVcclxuICBCb3JkZXJTdHlsZU5vbmUgPSAnYnMtbm9uZScsXHJcblxyXG4gIC8vIGhpZGRlblxyXG4gIEJvcmRlclN0eWxlSGlkZGVuID0gJ2JzLWhpZGRlbicsXHJcblxyXG4gIC8vIGRvdHRlZFxyXG4gIEJvcmRlclN0eWxlRG90dGVkID0gJ2JzLWRvdHRlZCcsXHJcblxyXG4gIC8vIGRhc2hlZFxyXG4gIEJvcmRlclN0eWxlRGFzaGVkID0gJ2JzLWRhc2hlZCcsXHJcblxyXG4gIC8vIHNvbGlkXHJcbiAgQm9yZGVyU3R5bGVTb2xpZCA9ICdicy1zb2xpZCcsXHJcblxyXG4gIC8vIGRvdWJsZVxyXG4gIEJvcmRlclN0eWxlRG91YmxlID0gJ2JzLWRvdWJsZScsXHJcblxyXG4gIC8vIGdyb292ZVxyXG4gIEJvcmRlclN0eWxlR3Jvb3ZlID0gJ2JzLWdyb292ZScsXHJcblxyXG4gIC8vIHJpZGdlXHJcbiAgQm9yZGVyU3R5bGVSaWRnZSA9ICdicy1yaWRnZScsXHJcblxyXG4gIC8vIGluc2V0XHJcbiAgQm9yZGVyU3R5bGVJbnNldCA9ICdicy1pbnNldCcsXHJcblxyXG4gIC8vIG91dHNldFxyXG4gIEJvcmRlclN0eWxlT3V0c2V0ID0gJ2JzLW91dHNldCcsXHJcblxyXG4gIC8vIGludmFsaWRcclxuICBCb3JkZXJTdHlsZUludmFsaWQgPSAnYnMtaW52YWxpZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIENvbG9yUGFsZXR0ZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBDb2xvclBhbGV0dGVSZWd1bGFyID0gJ2NvbG9yLXBhbGV0dGUtcmVndWxhcicsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yUGFsZXR0ZU9yZGVyZWREaXZlcmdpbmcgPSAncGFsZXR0ZS1vcmRlcmVkLWRpdmVyZ2luZycsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yUGFsZXR0ZU9yZGVyZWRMaW5lYXIgPSAncGFsZXR0ZS1vcmRlcmVkLWxpbmVhcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFBhbGV0dGVGbGFncyB7XHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm9uZSA9ICdwYWxldHRlLWZsYWctbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnQ3VzdG9tID0gJ3BhbGV0dGUtZmxhZy1jdXN0b20nLFxyXG5cclxuICAvLyBcclxuICBQYWxldHRlRmxhZ05vdFF1YW50aXRhdGl2ZSA9ICdwYWxldHRlLWZsYWctbm90LXF1YW50aXRhdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm90Q2F0ZWdvcmljYWwgPSAncGFsZXR0ZS1mbGFnLW5vdC1jYXRlZ29yaWNhbCcsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm90UmVmZXJlbmNlQmFuZCA9ICdwYWxldHRlLWZsYWctbm90LXJlZmVyZW5jZS1iYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgUGFsZXR0ZUZsYWdOb3RCb3hwbG90ID0gJ3BhbGV0dGUtZmxhZy1ub3QtYm94cGxvdCcsXHJcblxyXG4gIC8vIFxyXG4gIFBhbGV0dGVGbGFnTm90RmlsbGVkTWFwTGlnaHQgPSAncGFsZXR0ZS1mbGFnLW5vdC1maWxsZWQtbWFwLWxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgUGFsZXR0ZUZsYWdOb3RGaWxsZWRNYXBEYXJrID0gJ3BhbGV0dGUtZmxhZy1ub3QtZmlsbGVkLW1hcC1kYXJrJyxcclxuXHJcbiAgLy8gXHJcbiAgUGFsZXR0ZUZsYWdMZWdhY3kgPSAncGFsZXR0ZS1mbGFnLWxlZ2FjeSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERlZmF1bHRQYWxldHRlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNtYWxsTm9taW5hbCA9ICdwYWxldHRlLWRlZmF1bHQtc21hbGwtbm9taW5hbCcsXHJcblxyXG4gIC8vIFxyXG4gIExhcmdlTm9taW5hbCA9ICdwYWxldHRlLWRlZmF1bHQtbGFyZ2Utbm9taW5hbCcsXHJcblxyXG4gIC8vIFxyXG4gIE9yZGluYWwgPSAncGFsZXR0ZS1kZWZhdWx0LW9yZGluYWwnLFxyXG5cclxuICAvLyBcclxuICBRdWFudGl0YXRpdmVQb3NpdGl2ZSA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtcG9zJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlTmVnYXRpdmUgPSAncGFsZXR0ZS1kZWZhdWx0LXF1YW50LW5lZycsXHJcblxyXG4gIC8vIFxyXG4gIFF1YW50aXRhdGl2ZURpdmVyZ2luZyA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtZGl2JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlUG9zaXRpdmVMaWdodCA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtcG9zLWxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlTmVnYXRpdmVMaWdodCA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtbmVnLWxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlRGl2ZXJnaW5nTGlnaHQgPSAncGFsZXR0ZS1kZWZhdWx0LXF1YW50LWRpdi1saWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIFF1YW50aXRhdGl2ZVBvc2l0aXZlQXJlYSA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtcG9zLWFyZWEnLFxyXG5cclxuICAvLyBcclxuICBRdWFudGl0YXRpdmVOZWdhdGl2ZUFyZWEgPSAncGFsZXR0ZS1kZWZhdWx0LXF1YW50LW5lZy1hcmVhJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhbnRpdGF0aXZlRGl2ZXJnaW5nQXJlYSA9ICdwYWxldHRlLWRlZmF1bHQtcXVhbnQtZGl2LWFyZWEnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTaG93Qm91bmRzIHtcclxuXHJcbiAgLy8gXHJcbiAgQm90aCA9ICdzaG93LWJvdGgnLFxyXG5cclxuICAvLyBcclxuICBVcHBlciA9ICdzaG93LXVwcGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTG93ZXIgPSAnc2hvdy1sb3dlcidcclxufVxyXG5cclxuLy8gU2FtcGxlIHZzLiBwb3B1bGF0aW9uIHN0YW5kYXJkIGRldmlhdGlvblxyXG5leHBvcnQgZW51bSBTdERldlR5cGUge1xyXG5cclxuICAvLyBcclxuICBTYW1wbGUgPSAnc3RkZXYtc2FtcGxlJyxcclxuXHJcbiAgLy8gXHJcbiAgUG9wdWxhdGlvbiA9ICdzdGRldi1wb3B1bGF0aW9uJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZUZvcm11bGFHcm91cCB7XHJcblxyXG4gIC8vIFxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIExpbmUgPSAnbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIEJhbmQgPSAnYmFuZCcsXHJcblxyXG4gIC8vIFxyXG4gIERpc3RyaWJ1dGlvbiA9ICdkaXN0cmlidXRpb24nLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90ID0gJ2JveHBsb3QnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBSZWZlcmVuY2VMaW5lU2NvcGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUGVyQ2VsbCA9ICdwZXItY2VsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFBlclBhbmUgPSAncGVyLXBhbmUnLFxyXG5cclxuICAvLyBcclxuICBQZXJUYWJsZSA9ICdwZXItdGFibGUnLFxyXG59XHJcblxyXG4vLyBob3cgc2hvdWxkIHRoZSBsaW5lIGJlIGxhYmVsZWRcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZUxhYmVsVHlwZSB7XHJcblxyXG4gIC8vIG5vIGxhYmVsXHJcbiAgTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbGFiZWxcclxuICBBdXRvbWF0aWMgPSAnYXV0b21hdGljJyxcclxuXHJcbiAgLy8gXHJcbiAgVmFsdWUgPSAndmFsdWUnLFxyXG5cclxuICAvLyBcclxuICBDb21wdXRhdGlvbiA9ICdjb21wdXRhdGlvbicsXHJcblxyXG4gIC8vIGEgdXNlciBkZWZpbmVkIGxhYmVsXHJcbiAgQ3VzdG9tID0gJ2N1c3RvbScsXHJcbn1cclxuXHJcbi8vIGhvdyBzaG91bGQgdGhlIGxpbmUgYmUgY29tcHV0ZWRcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlIHtcclxuXHJcbiAgLy8gYSB1c2VyIHNwZWNpZmllZCBjb25zdGFudCB2YWx1ZVxyXG4gIENvbnN0YW50ID0gJ2NvbnN0YW50JyxcclxuXHJcbiAgLy8gXHJcbiAgVG90YWwgPSAndG90YWwnLFxyXG5cclxuICAvLyB0b3RhbCBvZiBhbGwgdmFsdWVzIGF0IHRoZSBnaXZlbiBzY29wZSA8LSBpcyB0aGlzIGNvcnJlY3Q/IGxvb2tzIGxpa2UgY29tbWVudCBmcm9tIEZvcm11bGFUb3RhbFxyXG4gIFN1bSA9ICdzdW0nLFxyXG5cclxuICAvLyBtaW5pbXVtIHZhbHVlIGluIHRoZSBzY29wZVxyXG4gIE1pbiA9ICdtaW4nLFxyXG5cclxuICAvLyBtYXhpbXVtIHZhbHVlIGluIHRoZSBzY29wZVxyXG4gIE1heCA9ICdtYXgnLFxyXG5cclxuICAvLyBhdmVyYWdlIHZhbHVlIGluIHRoZSBzY29wZVxyXG4gIEF2ZXJhZ2UgPSAnYXZlcmFnZScsXHJcblxyXG4gIC8vIG1lZGlhbiB2YWx1ZSBpbiB0aGUgc2NvcGVcclxuICBNZWRpYW4gPSAnbWVkaWFuJyxcclxuXHJcbiAgLy8gdGhlIG4gcXVhbnRpbGVzIHZhbHVlcyBpbiB0aGUgc2NvcGVcclxuICBRdWFudGlsZXMgPSAncXVhbnRpbGVzJyxcclxuXHJcbiAgLy8gYSBnaXZlbiBwZXJjZW50aWxlIGluIHRoZSBzY29wZVxyXG4gIFBlcmNlbnRpbGUgPSAncGVyY2VudGlsZScsXHJcblxyXG4gIC8vIG1lYW4gKy0gc3RhbmRhcmQgZGV2aWF0aW9uXHJcbiAgU3RhbmRhcmREZXZpYXRpb24gPSAnc3RhbmRhcmQtZGV2aWF0aW9uJyxcclxuXHJcbiAgLy8gYSBnaXZlbiBjb25maWRlbmNlIGludGVydmFsIGFyb3VuZCB0aGUgbWVhblxyXG4gIENvbmZpZGVuY2VJbnRlcnZhbCA9ICdjb25maWRlbmNlLWludGVydmFsJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVkaWFuQ29uZmlkZW5jZUludGVydmFsID0gJ21lZGlhbi1jb25maWRlbmNlLWludGVydmFsJ1xyXG59XHJcblxyXG4vLyBMaW5lIG9yIGNvbmZpZGVuY2UgaW50ZXJ2YWwgb3IgYm90aFxyXG5leHBvcnQgZW51bSBSZWZlcmVuY2VMaW5lQ29uZmlkZW5jZUludGVydmFsU3RhdGUge1xyXG5cclxuICAvLyBkaXNwbGF5IGxpbmUgb25seVxyXG4gIExpbmVPbmx5ID0gJ2xpbmUtb25seScsXHJcblxyXG4gIC8vIGRpc3BsYXkgdGhlIGxpbmUgYW5kIGEgY29uZmlkZW5jZSBpbnRlcnZhbFxyXG4gIExpbmVBbmRDb25maWRlbmNlSW50ZXJ2YWwgPSAnbGluZS1hbmQtaW50ZXJ2YWwnLFxyXG5cclxuICAvLyBkaXNwbGF5IGNvbmZpZGVuY2UgaW50ZXJ2YWwgb25seVxyXG4gIENvbmZpZGVuY2VJbnRlcnZhbE9ubHkgPSAnaW50ZXJ2YWwtb25seSdcclxufVxyXG5cclxuLy8gdHlwZSBvZiBkaXN0cmlidXRpb24uIGkuZS4gUGVyY2VudGFnZSwgUGVyY2VudGlsZSwgUXVhbnRpbGUsIGFuZCBTdGFuZGFyZCBEZXZpYXRpb25cclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlTGluZURpc3RyaWJ1dGlvblR5cGUge1xyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBwZXJjZW50YWdlXHJcbiAgUGVyY2VudGFnZXMgPSAncGVyY2VudGFnZXMnLFxyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBwZXJjZW50aWxlXHJcbiAgUGVyY2VudGlsZXMgPSAncGVyY2VudGlsZXMnLFxyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBxdWFudGlsZVxyXG4gIFF1YW50aWxlcyA9ICdxdWFudGlsZXMnLFxyXG5cclxuICAvLyBkaXN0cmlidXRpb24gdHlwZSBzdGFuZGFyZCBkZXZpYXRpb25cclxuICBTdGFuZGFyZERldmlhdGlvbiA9ICdzdGFuZGFyZC1kZXZpYXRpb24nXHJcbn1cclxuXHJcbi8vIHRoZSBraW5kIG9mIExPRCBjYWxjIHRvIHVzZSBmb3IgYSBnaXZlbiByZWZlcmVuY2UgbGluZVxyXG5leHBvcnQgZW51bSBSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGUge1xyXG5cclxuICAvLyBDcmVhdGUgYSBmb3JtdWxhIHVzaW5nIGEgRklYRUQtbGlrZSBsZXZlbC1vZi1kZXRhaWwgY2FsY3VsYXRpb24sIHRvIHdoaWNoIHNoZWV0IGZpbHRlcnMgYXBwbHksIHRoYXQgd2lsbCBnbyBvbnRvIGEgc3BlY2lmaWMgc2hlZXRcclxuICBNZWFzdXJlRm9ybXVsYSA9ICdtZWFzdXJlLWZvcm11bGEnLFxyXG5cclxuICAvLyBDcmVhdGUgYSBib29sZWFuIGZvcm11bGEgdGhhdCBjYW4gYmUgdXNlZCBhcyBhIGZpbHRlclxyXG4gIEJvb2xlYW5GaWx0ZXIgPSAnYm9vbGVhbi1maWx0ZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBCb3hwbG90V2hpc2tlclR5cGUge1xyXG5cclxuICAvLyBcclxuICBTdGFuZGFyZCA9ICdzdGFuZGFyZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1pbm1heCA9ICdtaW5tYXgnXHJcbn1cclxuXHJcbi8vIGNhdGVnb3JpZXMgb2YgY29ubmVjdGlvbiB0eXBlcyBkaXNwbGF5ZWQgYnkgdGhlIGNvbm5lY3Rpb24gVUlcclxuZXhwb3J0IGVudW0gQ29ubmVjdGlvblR5cGVDYXRlZ29yeSB7XHJcblxyXG4gIC8vIHN0YW5kYXJkIGRhdGFiYXNlXHJcbiAgQ1RDX0RhdGFiYXNlID0gJ2RhdGFiYXNlJyxcclxuXHJcbiAgLy8gJ01vcmUgSXRlbXMgLi4uJyBtZXRhIGl0ZW1cclxuICBDVENfTW9yZSA9ICdtb3JlJyxcclxuXHJcbiAgLy8gT3RoZXIgZmlsZSB0eXBlc1xyXG4gIENUQ19PdGhlciA9ICdvdGhlcicsXHJcblxyXG4gIC8vIGludmFsaWQgY29ubmVjdGlvbiBjYXRlZ29yeVxyXG4gIENUQ19JbnZhbGlkID0gJ2ludmFsaWQnXHJcbn1cclxuXHJcbi8vIGEgbG9naWNhbCBncm91cGluZyBvZiBjb25uZWN0aW9uIHR5cGVzIGRpc3BsYXllZCBieSB0aGUgY29ubmVjdGlvbiBVSVxyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uVHlwZUdyb3VwIHtcclxuXHJcbiAgLy8gaW4gYSBmaWxlXHJcbiAgQ1RHX0ZpbGUgPSAnZmlsZScsXHJcblxyXG4gIC8vIG9uIGEgc2VydmVyXHJcbiAgQ1RHX1NlcnZlciA9ICdzZXJ2ZXInLFxyXG5cclxuICAvLyBvbiBhIHJlY2VudCBzZXJ2ZXJcclxuICBDVEdfTXJ1U2VydmVyID0gJ21ydS1zZXJ2ZXInLFxyXG5cclxuICAvLyBpbnZhbGlkIGdyb3VwXHJcbiAgQ1RHX0ludmFsaWQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gVGhlIHR5cGUgb2YgbWV0YWRhdGEgYSBjb2x1bW4gY29udGFpbnNcclxuZXhwb3J0IGVudW0gQ3ViZU1ldGFkYXRhQ2F0ZWdvcnkge1xyXG5cclxuICAvLyBjdWJlJ3MgbmFtZVxyXG4gIENNQ19OYW1lID0gJ25hbWUnLFxyXG5cclxuICAvLyBjdWJlJ3MgZGVzY3JpcHRpb25cclxuICBDTUNfRGVzY3JpcHRpb24gPSAnZGVzY3JpcHRpb24nLFxyXG5cclxuICAvLyBjdWJlJ3MgbGFzdCB1cGRhdGVkIHRpbWVzdGFtcFxyXG4gIENNQ19MYXN0VXBkYXRlZCA9ICdsYXN0LXVwZGF0ZWQnLFxyXG5cclxuICAvLyBpbnZhbGlkXHJcbiAgQ01DX0ludmFsaWQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gVGhlIHR5cGUgb2Ygd2lkZ2V0IHRvIGRpc3BsYXkgdG8gdGhlIHVzZXIgd2hlbiB0aGV5IGFyZSBzcGVjaWZ5aW5nIGNvbm5lY3Rpb24gaW5mb1xyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uV2lkZ2V0VHlwZSB7XHJcblxyXG4gIC8vIHNob3cgdGhlIGpvaW4gYXJlYVxyXG4gIENXVF9Kb2luQXJlYSA9ICdqb2luLWFyZWEnLFxyXG5cclxuICAvLyBzaG93IHRoZSBjdWJlIHNlbGVjdGlvbiB1aVxyXG4gIENXVF9DdWJlU2VsZWN0aW9uID0gJ2N1YmUtc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gc2hvdyB0aGUgZ29vZ2xlIGFuYWx5dGljcyB1aVxyXG4gIENXVF9Hb29nbGVBbmFseXRpY3MgPSAnZ29vZ2xlLWFuYWx5dGljcycsXHJcblxyXG4gIC8vIHNob3cgdGhlIHRhYmxlYXUgc2VydmVyIHVpXHJcbiAgQ1dUX1RhYmxlYXVTZXJ2ZXIgPSAndGFibGVhdS1zZXJ2ZXInLFxyXG5cclxuICAvLyBkbyBub3Qgc2hvdyBhbnkgY29ubmVjdGlvbiB3aWRnZXRcclxuICBDV1RfTm9XaWRnZXQgPSAnbm8td2lkZ2V0JyxcclxuXHJcbiAgLy8gaW52YWxpZFxyXG4gIENXVF9JbnZhbGlkID0gJ2ludmFsaWQnXHJcbn1cclxuXHJcbi8vIFRoZSB0eXBlIG9mIGdvb2dsZSBhbmFseXRpY3MgYmFzaWMgaW5mb1xyXG5leHBvcnQgZW51bSBHb29nbGVCYXNpY0luZm9UeXBlIHtcclxuXHJcbiAgLy8gZ29vZ2xlIGFuYWx5dGljcyBhY2NvdW50XHJcbiAgR0FfQWNjb3VudCA9ICdnYS1hY2NvdW50JyxcclxuXHJcbiAgLy8gZ29vZ2xlIGFuYWx5dGljcyBwcm9wZXJ0eVxyXG4gIEdBX1Byb3BlcnR5ID0gJ2dhLXByb3BlcnR5JyxcclxuXHJcbiAgLy8gZ29vZ2xlIGFuYWx5dGljcyB2aWV3XHJcbiAgR0FfVmlldyA9ICdnYS12aWV3JyxcclxuXHJcbiAgLy8gaW52YWxpZFxyXG4gIEdBX0ludmFsaWQgPSAnaW52YWxpZCdcclxufVxyXG5cclxuLy8gVGhlIHdheSBpbiB3aGljaCBhIHBpZWNlIG9mIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24gaXMgc3BlY2lmaWVkXHJcbmV4cG9ydCBlbnVtIENvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFVzZXMgYSBjb21ibyBib3hcclxuICBDU1RfQ29tYm9Cb3ggPSAnY29tYm8tYm94JyxcclxuXHJcbiAgLy8gVXNlcyBhIGxpbmUgZWRpdFxyXG4gIENTVF9MaW5lRWRpdCA9ICdsaW5lLWVkaXQnLFxyXG5cclxuICAvLyBVc2VzIGEgbGluZSBlZGl0IHdpdGggYSBicm93c2UgYnV0dG9uIG5leHQgdG8gaXRcclxuICBDU1RfTGluZUVkaXRCcm93c2UgPSAnbGluZS1lZGl0LWJyb3dzZScsXHJcblxyXG4gIC8vIGludmFsaWRcclxuICBDU1RfSW52YWxpZCA9ICdpbnZhbGlkJ1xyXG59XHJcblxyXG4vLyBHQSBEYXRlIFJhbmdlXHJcbmV4cG9ydCBlbnVtIERhdGVSYW5nZSB7XHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUZpcnN0ID0gJ2RhdGUtcmFuZ2UtZmlyc3QnLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VMYXN0MzBEYXlzID0gJ2RhdGUtcmFuZ2UtbGFzdDMwJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlVG9kYXkgPSAnZGF0ZS1yYW5nZS10b2RheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZVllc3RlcmRheSA9ICdkYXRlLXJhbmdlLXllc3RlcmRheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUxhc3RXZWVrID0gJ2RhdGUtcmFuZ2UtbGFzdC13ZWVrJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlTGFzdE1vbnRoID0gJ2RhdGUtcmFuZ2UtbGFzdC1tb250aCcsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUxhc3RZZWFyID0gJ2RhdGUtcmFuZ2UtbGFzdC15ZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlVGhpc1dlZWtUb1llc3RlcmRheSA9ICdkYXRlLXJhbmdlLXRoaXMtd2Vlay10by15ZXN0ZXJkYXknLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VUaGlzTW9udGhUb1llc3RlcmRheSA9ICdkYXRlLXJhbmdlLXRoaXMtbW9udGgtdG8teWVzdGVyZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0ZVJhbmdlVGhpc1llYXJUb1llc3RlcmRheSA9ICdkYXRlLXJhbmdlLXRoaXMteWVhci10by15ZXN0ZXJkYXknLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VMYXN0V2Vla1RvWWVzdGVyZGF5ID0gJ2RhdGUtcmFuZ2UtbGFzdC13ZWVrLXRvLXllc3RlcmRheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUxhc3RNb250aFRvWWVzdGVyZGF5ID0gJ2RhdGUtcmFuZ2UtbGFzdC1tb250aC10by15ZXN0ZXJkYXknLFxyXG5cclxuICAvLyBcclxuICBEYXRlUmFuZ2VMYXN0WWVhclRvWWVzdGVyZGF5ID0gJ2RhdGUtcmFuZ2UtbGFzdC15ZWFyLXRvLXllc3RlcmRheScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUZpeGVkUmFuZ2UgPSAnZGF0ZS1yYW5nZS1maXhlZC1yYW5nZScsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUZpeGVkU3RhcnQgPSAnZGF0ZS1yYW5nZS1maXhlZC1zdGFydCcsXHJcblxyXG4gIC8vIFxyXG4gIERhdGVSYW5nZUNvdW50ID0gJ2RhdGUtcmFuZ2UtY291bnQnXHJcbn1cclxuXHJcbi8vIFNwZWNpZmllcyB0aGUgdHlwZSBvZiB3aWRnZXQgdG8gc2hvdyBpbiBDb25uZWN0U2VydmVyV2lkZ2V0XHJcbmV4cG9ydCBlbnVtIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlIHtcclxuXHJcbiAgLy8gaW52YWxpZFxyXG4gIENTV1RfSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gbWljcm9zb2Z0IGFjY2Vzc1xyXG4gIENTV1RfQWNjZXNzID0gJ2FjY2VzcycsXHJcblxyXG4gIC8vIGdlbmVyaWMgb2RiY1xyXG4gIENTV1RfT0RCQyA9ICdvZGJjJyxcclxuXHJcbiAgLy8gY3ViZXNcclxuICBDU1dUX0N1YmUgPSAnY3ViZScsXHJcblxyXG4gIC8vIHJlbGF0aW9uYWwgZGF0YSBzb3VyY2VzXHJcbiAgQ1NXVF9SZWxhdGlvbmFsID0gJ3JlbGF0aW9uYWwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkVudW1zTW9kZSB7XHJcblxyXG4gIC8vIG5vIGF1dGhlbnRpY2F0aW9uIHdpZGdldFxyXG4gIEF1dGhNb2RlTm9uZSA9ICdhdXRoLW1vZGUtbm9uZScsXHJcblxyXG4gIC8vIHVzZXJuYW1lIGFuZCBwYXNzd29yZFxyXG4gIEF1dGhNb2RlQmFzaWMgPSAnYXV0aC1tb2RlLWJhc2ljJyxcclxuXHJcbiAgLy8gdXNlcm5hbWUgYW5kIHBhc3N3b3JkIGNhbiBiZSBibGFua1xyXG4gIEF1dGhNb2RlQmFzaWNOb1ZhbGlkYXRlRmllbGRzID0gJ2F1dGgtbW9kZS1iYXNpYy1uby12YWxpZGF0ZS1maWVsZHMnLFxyXG5cclxuICAvLyBvbmx5IHVzZXJuYW1lXHJcbiAgQXV0aE1vZGVCYXNpY1VzZXJOYW1lT25seSA9ICdhdXRoLW1vZGUtYmFzaWMtdXNlcm5hbWUtb25seScsXHJcblxyXG4gIC8vIGF3cyBhY2Nlc3Mga2V5IGFuZCBzZWNyZXQgSURcclxuICBBdXRoTW9kZUJhc2ljQVdTID0gJ2F1dGgtbW9kZS1iYXNpYy1hd3MnLFxyXG5cclxuICAvLyB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCBhIGxpc3Qgb2YgQXV0aE9wdGlvbnMgd2l0aCByYWRpbyBidXR0b25zXHJcbiAgQXV0aE1vZGVSYWRpbyA9ICdhdXRoLW1vZGUtcmFkaW8nLFxyXG5cclxuICAvLyBMaWtlIEF1dGhNb2RlUmFkaW8sIGJ1dCBlbmFibGUgdXNlcm5hbWUvcGFzc3dvcmQgZXZlbiBmb3IgaW50ZWdyYXRlZCBhdXRoXHJcbiAgQXV0aE1vZGVSYWRpb1VuaW5kZW50ZWQgPSAnYXV0aC1tb2RlLXJhZGlvLXVuaW5kZW50ZWQnLFxyXG5cclxuICAvLyB1c2VybmFtZSwgcGFzc3dvcmQsIGFuZCBhIGxpc3Qgb2YgQXV0aE9wdGlvbnMgd2l0aCBhIGNvbWJvYm94XHJcbiAgQXV0aE1vZGVDb21ib0JveCA9ICdhdXRoLW1vZGUtY29tYm9ib3gnLFxyXG5cclxuICAvLyBMaWtlIEF1dGhNb2RlQ29tYm9ib3gsIGJ1dCB3aXRoIG9wdGlvbiBub3QgcmVxdWlyaW5nIHVzZXJuYW1lL3Bhc3N3b3JkXHJcbiAgQXV0aE1vZGVDb21ib0JveEludGVncmF0ZWQgPSAnYXV0aC1tb2RlLWNvbWJvYm94LWludGVncmF0ZWQnLFxyXG5cclxuICAvLyBkcml2ZXIsIGF1dGhlbnRpY2F0aW9uLCB1c2VybmFtZSwgcmVhbG0sIGV0Y1xyXG4gIEF1dGhNb2RlSGl2ZSA9ICdhdXRoLW1vZGUtaGl2ZScsXHJcblxyXG4gIC8vIG5vbmUsIGF6dXJlIG1hcmtldHBsYWNlIGFjY291bnQsIGV4cGxpY2l0XHJcbiAgQXV0aE1vZGVPRGF0YSA9ICdhdXRoLW1vZGUtb2RhdGEnLFxyXG5cclxuICAvLyBlZGl0aW9uLCBhdXRoZW50aWNhdGlvbiwgc3NvIGRvbWFpbiwgZXRjXHJcbiAgQXV0aE1vZGVTaGFyZVBvaW50ID0gJ2F1dGgtbW9kZS1zaGFyZXBvaW50JyxcclxuXHJcbiAgLy8gdXNlcm5hbWUsIHBhc3N3b3JkLCBjbGllbnQsICYgbGFuZ3VhZ2VcclxuICBBdXRoTW9kZVNBUEJXID0gJ2F1dGgtbW9kZS1zYXBidycsXHJcblxyXG4gIC8vIEFiaWxpdHkgdG8gc3dpdGNoIGJldHdlZW4gdHdvIGRpZmZlcmVudCBhdXRoIG1vZGVzIGVhY2ggaW4gdGhlaXIgb3duIG1vZGFsIGRpYWxvZ3MgKGJhc2ljIGFuZCBvYXV0aClcclxuICBBdXRoTW9kZVN3aXRjaE1vZGFsID0gJ2F1dGgtbW9kZS1zd2l0Y2gtbW9kYWwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBdXRoZW50aWNhdGlvbkVudW1zUmVjb25uZWN0TW9kZSB7XHJcblxyXG4gIC8vIEF1dGggbm90IG5lZWRlZCBmb3IgcmVjb25uZWN0XHJcbiAgUmVjb25uZWN0TW9kZU5vbmUgPSAncmVjb25uZWN0LW1vZGUtbm9uZScsXHJcblxyXG4gIC8vIFVzZXJuYW1lIGFuZCBwYXNzd29yZFxyXG4gIFJlY29ubmVjdE1vZGVCYXNpYyA9ICdyZWNvbm5lY3QtbW9kZS1iYXNpYycsXHJcblxyXG4gIC8vIEFjY2VzcyBmaWxlXHJcbiAgUmVjb25uZWN0TW9kZUFjY2VzcyA9ICdyZWNvbm5lY3QtbW9kZS1hY2Nlc3MnLFxyXG5cclxuICAvLyBNaWNyb3NvZnQgQXp1cmUgRGF0YSBNYXJrZXQgKE9EYXRhKVxyXG4gIFJlY29ubmVjdE1vZGVEYXRhTWFya2V0ID0gJ3JlY29ubmVjdC1tb2RlLWRhdGEtbWFya2V0JyxcclxuXHJcbiAgLy8gR29vZ2xlIE9BdXRoXHJcbiAgUmVjb25uZWN0TW9kZUdvb2dsZU9BdXRoID0gJ3JlY29ubmVjdC1tb2RlLWdvb2dsZS1vYXV0aCcsXHJcblxyXG4gIC8vIFNhbGVzZm9yY2VPQXV0aCwgd2l0aCB0aGUgb3B0aW9uIG9mIHVzZXJuYW1lL3Bhc3N3b3JkIGF1dGhcclxuICBSZWNvbm5lY3RNb2RlU2FsZXNmb3JjZU9BdXRoID0gJ3JlY29ubmVjdC1tb2RlLXNhbGVzZm9yY2Utb2F1dGgnLFxyXG5cclxuICAvLyBXZWIgZGF0YSBjb25uZWN0b3JcclxuICBSZWNvbm5lY3RNb2RlV2ViRGF0YSA9ICdyZWNvbm5lY3QtbW9kZS13ZWItZGF0YSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEF1dGhlbnRpY2F0aW9uRW51bXNBdXRoT3B0aW9uIHtcclxuXHJcbiAgLy8gRklSU1RcclxuICBBdXRoRXhwbGljaXQgPSAnYXV0aC1vcHRpb24tZXhwbGljaXQnLFxyXG5cclxuICAvLyBcclxuICBBdXRoRXhwbGljaXRVbmluZGVudGVkID0gJ2F1dGgtb3B0aW9uLWV4cGxpY2l0LXVuaW5kZW50ZWQnLFxyXG5cclxuICAvLyBcclxuICBBdXRoVXNlV2luZG93cyA9ICdhdXRoLW9wdGlvbi11c2Utd2luZG93cycsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhVc2VXaW5kb3dzUHJlZmVycmVkID0gJ2F1dGgtb3B0aW9uLXdpbmRvd3MtcHJlZmVycmVkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFRlcmFkYXRhID0gJ2F1dGgtb3B0aW9uLXRlcmFkYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aExEQVAgPSAnYXV0aC1vcHRpb24tbGRhcCcsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhWaXJ0dWFsTm9kZSA9ICdhdXRoLW9wdGlvbi12aXJ0dWFsLW5vZGUnLFxyXG5cclxuICAvLyBcclxuICBBdXRoT0RhdGFBY2NvdW50ID0gJ2F1dGgtb3B0aW9uLW9kYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aE5vbmUgPSAnYXV0aC1vcHRpb24tbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhLZXJiZXJvcyA9ICdhdXRoLW9wdGlvbi1rZXJiZXJvcycsXHJcblxyXG4gIC8vIEludHJvZHVjZWQgZm9yIEtlcmJlcm9zIHdpdGggZmFsbGJhY2ssIHJlY29nbml6aW5nIHRoYXQgdGhlIGRiIG1heSBvciBtYXkgbm90IGJlIG9uIFdpbmRvd3NcclxuICBBdXRoSW50ZWdyYXRlZCA9ICdhdXRoLW9wdGlvbi1pbnRlZ3JhdGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFVzZXJuYW1lID0gJ2F1dGgtb3B0aW9uLXVzZXJuYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFVzZXJuYW1lQW5kUGFzc3dvcmQgPSAnYXV0aC1vcHRpb24tdXNlcm5hbWUtYW5kLXBhc3N3b3JkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFNTTCA9ICdhdXRoLW9wdGlvbi1zc2wnLFxyXG5cclxuICAvLyBcclxuICBBdXRoSERJRW11bGF0b3IgPSAnYXV0aC1oZGktZW11bGF0b3InLFxyXG5cclxuICAvLyBcclxuICBBdXRoSERJU2VydmljZSA9ICdhdXRoLWhkaS1zZXJ2aWNlJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aEhUVFAgPSAnYXV0aC1odHRwJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aEhUVFBTID0gJ2F1dGgtaHR0cHMnLFxyXG5cclxuICAvLyBcclxuICBBdXRoQWNjZXNzTm9TZWN1cml0eSA9ICdhdXRoLW9wdGlvbi1hY2Nlc3Mtbm8nLFxyXG5cclxuICAvLyBcclxuICBBdXRoQWNjZXNzWWVzU2VjdXJpdHkgPSAnYXV0aC1vcHRpb24tYWNjZXNzLXllcycsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhPQXV0aCA9ICdhdXRoLW9hdXRoJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aEZvcm1zID0gJ2F1dGgtZm9ybXMnLFxyXG5cclxuICAvLyBcclxuICBBdXRoVGhpcmRQYXJ0eVNTTyA9ICdhdXRoLXRoaXJkLXBhcnR5LVNTTycsXHJcblxyXG4gIC8vIExBU1RcclxuICBBdXRoSW52YWxpZCA9ICdhdXRoLW9wdGlvbi1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgQXV0aFNBTUxJZFAgPSAnYXV0aC1vcHRpb24tc2FtbC1pZHAnXHJcbn1cclxuXHJcbi8vIGRhdGEgc291cmNlIHZhbGlkYXRpb24gbW9kZXNcclxuZXhwb3J0IGVudW0gRGF0YVNvdXJjZVBhcnNlclZhbGlkYXRpb25Nb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgV29ya2Jvb2tMb2FkVmFsaWRhdGlvbiA9ICd3b3JrYm9vay1sb2FkLXZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBBdXRvVmFsaWRhdGlvbiA9ICdhdXRvLXZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBGb3JjZVZhbGlkYXRpb24gPSAnZm9yY2UtdmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIFByZXZlbnRWYWxpZGF0aW9uID0gJ3ByZXZlbnQtdmFsaWRhdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIFByZXZlbnRWYWxpZGF0aW9uQW5kVGhyb3cgPSAncHJldmVudC12YWxpZGF0aW9uLWFuZC10aHJvdydcclxufVxyXG5cclxuLy8gRW51bSBmb3IgRGF0YUdyaWQvTWV0YWRhdGFHcmlkIGZpZWxkcyByZW9yZGVyaW5nXHJcbmV4cG9ydCBlbnVtIEZpZWxkT3JkZXJUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgREFUQVNPVVJDRV9PUkRFUiA9ICdkYXRhc291cmNlLW9yZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxQSEFfUEVSX1RBQkxFID0gJ2FscGhhLXBlci10YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIEFMUEhBQkVUSUNBTF9PUkRFUiA9ICdhbHBoYWJldGljYWwtb3JkZXInLFxyXG5cclxuICAvLyBcclxuICBDVVNUT01fT1JERVIgPSAnY3VzdG9tLW9yZGVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGluZUludGVycG9sYXRpb25Nb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgTElNX0xpbmVhciA9ICdsaW0tbGluZWFyJyxcclxuXHJcbiAgLy8gXHJcbiAgTElNX1N0ZXAgPSAnbGltLXN0ZXAnLFxyXG5cclxuICAvLyBcclxuICBMSU1fSnVtcCA9ICdsaW0tanVtcCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIExpbmVNYXJrZXJQb3NpdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIExNUF9MZWZ0ID0gJ2xtcC1sZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgTE1QX0NlbnRlciA9ICdsbXAtY2VudGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTE1QX1JpZ2h0ID0gJ2xtcC1yaWdodCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvbGRlclJvbGUge1xyXG5cclxuICAvLyBcclxuICBGT0xERVJfRElNRU5TSU9OUyA9ICdkaW1lbnNpb25zJyxcclxuXHJcbiAgLy8gXHJcbiAgRk9MREVSX01FQVNVUkVTID0gJ21lYXN1cmUnLFxyXG5cclxuICAvLyBcclxuICBGT0xERVJfR1JPVVBTID0gJ2dyb3VwcycsXHJcblxyXG4gIC8vIFxyXG4gIEZPTERFUl9QQVJBTUVURVJTID0gJ3BhcmFtZXRlcnMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWVsZFR5cGVJY29uU2V0IHtcclxuXHJcbiAgLy8gXHJcbiAgRlRfU0VUX0FMTCA9ICdhbGwnLFxyXG5cclxuICAvLyBcclxuICBGVF9TRVRfQ1VCRV9NRUFTVVJFUyA9ICdjdWJlLW1lYXN1cmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfU0VUX0NVQkVfRElNRU5TSU9OUyA9ICdjdWJlLWRpbWVuc2lvbnMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWVsZFBpdm90U3RyYXRlZ3kge1xyXG5cclxuICAvLyBcclxuICBQSVZPVF9PTl9LRVkgPSAncGl2b3Qtb24ta2V5JyxcclxuXHJcbiAgLy8gXHJcbiAgUElWT1RfT05fQUxJQVMgPSAncGl2b3Qtb24tYWxpYXMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBbGlhc1R5cGUge1xyXG5cclxuICAvLyBcclxuICBBTElBU19OT1RTRVQgPSAnYWxpYXMtbm90LXNldCcsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0JFR0lOID0gJ2FsaWFzLWJlZ2luJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfS0VZID0gJ2FsaWFzLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0tFWV9OQU1FID0gJ2FsaWFzLWtleS1uYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfS0VZX01FRE5BTUUgPSAnYWxpYXMta2V5LW1lZG5hbWUnLFxyXG5cclxuICAvLyBcclxuICBBTElBU19LRVlfTE9OR05BTUUgPSAnYWxpYXMta2V5LWxvbmduYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfTkFNRSA9ICdhbGlhcy1uYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfTkFNRV9LRVkgPSAnYWxpYXMtbmFtZS1rZXknLFxyXG5cclxuICAvLyBcclxuICBBTElBU19NRUROQU1FID0gJ2FsaWFzLW1lZG5hbWUnLFxyXG5cclxuICAvLyBcclxuICBBTElBU19NRUROQU1FX0tFWSA9ICdhbGlhcy1tZWRuYW1lLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0xPTkdOQU1FID0gJ2FsaWFzLWxvbmduYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgQUxJQVNfTE9OR05BTUVfS0VZID0gJ2FsaWFzLWxvbmduYW1lLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEFMSUFTX0VORCA9ICdhbGlhcy1lbmQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBbGlhc1R5cGVzIHtcclxuXHJcbiAgLy8gXHJcbiAgTUFTS19BTElBU19LRVkgPSAnbWFzay1hbGlhcy1rZXknLFxyXG5cclxuICAvLyBcclxuICBNQVNLX0FMSUFTX05BTUUgPSAnbWFzay1hbGlhcy1uYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgTUFTS19BTElBU19NRUROQU1FID0gJ21hc2stYWxpYXMtbWVkbmFtZScsXHJcblxyXG4gIC8vIFxyXG4gIE1BU0tfQUxJQVNfTE9OR05BTUUgPSAnbWFzay1hbGlhcy1sb25nbmFtZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZpZWxkUm9sZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJPTEVfRElNRU5TSU9OID0gJ2RpbWVuc2lvbicsXHJcblxyXG4gIC8vIFxyXG4gIFJPTEVfTUVBU1VSRSA9ICdtZWFzdXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgUk9MRV9VTktOT1dOID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWVsZFR5cGUge1xyXG5cclxuICAvLyBcclxuICBUWVBFX1FVQU5USVRBVElWRSA9ICdxdWFudGl0YXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBUWVBFX09SRElOQUwgPSAnb3JkaW5hbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRZUEVfTk9NSU5BTCA9ICdub21pbmFsJyxcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9VTktOT1dOID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEYXRhU291cmNlT3JkZXIge1xyXG5cclxuICAvLyBcclxuICBEU09fQUxQSEFCRVRJQyA9ICdkc28tYWxwaGFiZXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIERTT19PUkRJTkFMID0gJ2Rzby1vcmRpbmFsJ1xyXG59XHJcblxyXG4vLyBXaGVyZSB0aGUgY29sdW1uIGNvbWVzIGZyb21cclxuZXhwb3J0IGVudW0gQ29sdW1uQ2xhc3Mge1xyXG5cclxuICAvLyBBIG1ldGFkYXRhIGNvbHVtbiAoTyBvciBRIE1lYXN1cmVzKVxyXG4gIENPTF9NRVRBREFUQSA9ICdjb2wtbWV0YWRhdGEnLFxyXG5cclxuICAvLyBBIHBoeXNpY2FsIGNvbHVtbiBvbiB0aGUgZGF0YWJhc2VcclxuICBDT0xfREFUQUJBU0UgPSAnY29sLWRhdGFiYXNlJyxcclxuXHJcbiAgLy8gQSBudW1iZXJpYyBiaW4gKGEgc3BlY2lhbCBraW5kIG9mIGNhbGN1bGF0ZWQgY29sdW1uKVxyXG4gIENPTF9OVU1FUklDQklOID0gJ2NvbC1udW1lcmljYmluJyxcclxuXHJcbiAgLy8gQSBDYXRlZ29yaWNhbCBiaW4gKGdyb3VwKVxyXG4gIENPTF9DQVRFR09SSUNBTEJJTiA9ICdjb2wtY2F0ZWdvcmljYWxiaW4nLFxyXG5cclxuICAvLyBBIGNvbHVtbiBpbnN0YW5jZVxyXG4gIENPTF9JTlNUQU5DRSA9ICdjb2wtaW5zdGFuY2UnLFxyXG5cclxuICAvLyBBIChyYXcpIG1keCBjYWxjdWxhdGVkIGNvbHVtblxyXG4gIENPTF9NRFhDQUxDID0gJ2NvbC1tZHhjYWxjJyxcclxuXHJcbiAgLy8gQSB1c2VyLWRlZmluZWQgY2FsY3VsYXRlZCBjb2x1bW4sIFRhYmxlYXUgZXhwcmVzc2lvbiBzeW50YXhcclxuICBDT0xfVVNFUkNBTEMgPSAnY29sLXVzZXJjYWxjJyxcclxuXHJcbiAgLy8gQSBjb2x1bW4gdGhhdCB3b3VsZCBoYXZlIGJlZW4gQ09MX0RBVEFCQVNFLCBidXQgdGhlIHVuZGVybHlpbmcgZGF0YWJhc2UgY29sdW1uIGRvZXMgbm90IGV4aXN0XHJcbiAgQ09MX0RBTkdMSU5HID0gJ2NvbC1kYW5nbGluZycsXHJcblxyXG4gIC8vIEEgY29sdW1uIHRoYXQgY29udGFpbnMgbG9jYWwgc3VwcGxpZWQgZGF0YSAoZS5nLiBMYXRpdHVkZSlcclxuICBDT0xfTE9DQUxEQVRBID0gJ2NvbC1sb2NhbGRhdGEnLFxyXG5cclxuICAvLyBBIGNvbHVtbiB0aGF0IGNvbnRhaW5zIGEgdmlzdWFsIG1vZGVsIGF0dHJpYnV0ZSAoZS5nLiBQYW5lSW5kZXgsIENvbG9yLCAuLi4pXHJcbiAgQ09MX1ZJU1VBTERBVEEgPSAnY29sLXZpc3VhbGRhdGEnLFxyXG5cclxuICAvLyBBIGNvbHVtbiB0aGF0J3MgYSBHcm91cCAoYSBcIiBTZXQgXCIgaW4gVUkgdGVybWlub2xvZ3kpXHJcbiAgQ09MX0dST1VQID0gJ2NvbC1ncm91cCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFZUQWdnVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFZUQUdHX1NVTSA9ICdzdW0nLFxyXG5cclxuICAvLyBcclxuICBWVEFHR19BVkcgPSAnYXZnJyxcclxuXHJcbiAgLy8gXHJcbiAgVlRBR0dfTUlOID0gJ21pbicsXHJcblxyXG4gIC8vIFxyXG4gIFZUQUdHX01BWCA9ICdtYXgnLFxyXG5cclxuICAvLyBcclxuICBWVEFHR19TRVJWRVIgPSAnc2VydmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVlRBR0dfTk9ORSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgVlRBR0dfREVGQVVMVCA9ICdkZWZhdWx0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRW50aXR5VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vRW51bWVyYXRpb25FbnRpdHkgPSAnbm8tZW51bWVyYXRpb24tZW50aXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0YWJhc2VFbnRpdHkgPSAnZGF0YWJhc2UtZW50aXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hRW50aXR5ID0gJ3NjaGVtYS1lbnRpdHknLFxyXG5cclxuICAvLyBcclxuICBUYWJsZUVudGl0eSA9ICd0YWJsZS1lbnRpdHknXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQaWNrRW50aXR5U2VhcmNoVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFBpY2tFbnRpdHlTZWFyY2hUeXBlX1N0YXJ0c1dpdGggPSAnc3RhcnRzLXdpdGgnLFxyXG5cclxuICAvLyBcclxuICBQaWNrRW50aXR5U2VhcmNoVHlwZV9Db250YWlucyA9ICdjb250YWlucycsXHJcblxyXG4gIC8vIFxyXG4gIFBpY2tFbnRpdHlTZWFyY2hUeXBlX0V4YWN0TWF0Y2ggPSAnZXhhY3QtbWF0Y2gnLFxyXG5cclxuICAvLyBcclxuICBQaWNrRW50aXR5U2VhcmNoVHlwZV9ERUZBVUxUID0gJ2RlZmF1bHQnXHJcbn1cclxuXHJcbi8vIFBhcnNpbmcgbWV0aG9kcyBhbmQgc3RydWN0dXJlcy5cclxuZXhwb3J0IGVudW0gRXhwcmVzc2lvbk9wIHtcclxuXHJcbiAgLy8gXHJcbiAgTG9naWNhbE9yID0gJ29wLWxvZ2ljYWwtb3InLFxyXG5cclxuICAvLyBcclxuICBMb2dpY2FsQW5kID0gJ29wLWxvZ2ljYWwtYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgTG9naWNhbE5vdCA9ICdvcC1sb2dpY2FsLW5vdCcsXHJcblxyXG4gIC8vIFxyXG4gIEJpdHdpc2VYT3IgPSAnb3AtYml0d2lzZS14b3InLFxyXG5cclxuICAvLyBcclxuICBCaXR3aXNlT3IgPSAnb3AtYml0d2lzZS1vcicsXHJcblxyXG4gIC8vIFxyXG4gIEVxdWFscyA9ICdvcC1lcXVhbHMnLFxyXG5cclxuICAvLyBcclxuICBHcmVhdGVyID0gJ29wLWdyZWF0ZXInLFxyXG5cclxuICAvLyBcclxuICBMZXNzID0gJ29wLWxlc3MnLFxyXG5cclxuICAvLyBcclxuICBHRXF1YWwgPSAnb3AtZ2VxdWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgTEVxdWFsID0gJ29wLWxlcXVhbCcsXHJcblxyXG4gIC8vIFxyXG4gIE5FcXVhbCA9ICdvcC1uZXF1YWwnLFxyXG5cclxuICAvLyBcclxuICBQbHVzID0gJ29wLXBsdXMnLFxyXG5cclxuICAvLyBcclxuICBNaW51cyA9ICdvcC1taW51cycsXHJcblxyXG4gIC8vIFxyXG4gIEJpdHdpc2VBbmQgPSAnb3AtYml0d2lzZS1hbmQnLFxyXG5cclxuICAvLyBcclxuICBNdWx0aXBseSA9ICdvcC1tdWx0aXBseScsXHJcblxyXG4gIC8vIFxyXG4gIERpdmlkZSA9ICdvcC1kaXZpZGUnLFxyXG5cclxuICAvLyBcclxuICBNb2R1bG8gPSAnb3AtbW9kdWxvJyxcclxuXHJcbiAgLy8gXHJcbiAgUG93ZXIgPSAnb3AtcG93ZXInLFxyXG5cclxuICAvLyBcclxuICBQb3NpdGl2ZSA9ICdvcC1wb3NpdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIE5lZ2F0aXZlID0gJ29wLW5lZ2F0aXZlJyxcclxuXHJcbiAgLy8gXHJcbiAgQml0d2lzZU5vdCA9ICdvcC1iaXR3aXNlLW5vdCcsXHJcblxyXG4gIC8vIFxyXG4gIENvbHVtbiA9ICdvcC1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBTdHJpbmcgPSAnb3Atc3RyaW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgTnVtYmVyID0gJ29wLW51bWJlcicsXHJcblxyXG4gIC8vIFxyXG4gIERhdGUgPSAnb3AtZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEJvb2xlYW4gPSAnb3AtYm9vbGVhbicsXHJcblxyXG4gIC8vIFxyXG4gIEZ1bmNhbGwgPSAnb3AtZnVuY2FsbCcsXHJcblxyXG4gIC8vIFxyXG4gIExQYXJlbiA9ICdvcC1scGFyZW4nLFxyXG5cclxuICAvLyBcclxuICBSUGFyZW4gPSAnb3AtcnBhcmVuJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29tbWEgPSAnb3AtY29tbWEnLFxyXG5cclxuICAvLyBcclxuICBJZGVudCA9ICdvcC1pZGVudCcsXHJcblxyXG4gIC8vIFxyXG4gIE51bGwgPSAnb3AtbnVsbCcsXHJcblxyXG4gIC8vIFxyXG4gIElmID0gJ29wLWlmJyxcclxuXHJcbiAgLy8gXHJcbiAgRWxzZWlmID0gJ29wLWVsc2VpZicsXHJcblxyXG4gIC8vIFxyXG4gIENhc2UgPSAnb3AtY2FzZScsXHJcblxyXG4gIC8vIFxyXG4gIFdoZW4gPSAnb3Atd2hlbicsXHJcblxyXG4gIC8vIFxyXG4gIFRoZW4gPSAnb3AtdGhlbicsXHJcblxyXG4gIC8vIFxyXG4gIEVsc2UgPSAnb3AtZWxzZScsXHJcblxyXG4gIC8vIFxyXG4gIEVuZEV4cHIgPSAnb3AtZW5kZXhwcicsXHJcblxyXG4gIC8vIFxyXG4gIFdoaXRlc3BhY2UgPSAnb3Atd2hpdGVzcGFjZScsXHJcblxyXG4gIC8vIFxyXG4gIENvbW1lbnQgPSAnb3AtY29tbWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIExCcmFjZSA9ICdvcC1sYnJhY2UnLFxyXG5cclxuICAvLyBcclxuICBSQnJhY2UgPSAnb3AtcmJyYWNlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29sb24gPSAnb3AtY29sb24nLFxyXG5cclxuICAvLyBcclxuICBCYXIgPSAnb3AtYmFyJyxcclxuXHJcbiAgLy8gXHJcbiAgVHh0eXBlID0gJ29wLXR4dHlwZScsXHJcblxyXG4gIC8vIFxyXG4gIEVuZCA9ICdvcC1lbmQnLFxyXG5cclxuICAvLyBcclxuICBSQnJhY2tldHMgPSAnb3AtcmJyYWNrZXRzJyxcclxuXHJcbiAgLy8gdXNlZCB0byByZXByZXNlbnQgaW52YWxpZCB0b2tlbnNcclxuICBJbnZhbGlkID0gJ29wLWludmFsaWQnXHJcbn1cclxuXHJcbi8vIHRyaS1zdGF0ZSBib29sXHJcbmV4cG9ydCBlbnVtIFRyaUJvb2wge1xyXG5cclxuICAvLyBcclxuICBUQl9JbnZhbGlkID0gJ3RyaWJvb2wtaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIFRCX0ZhbHNlID0gJ3RyaWJvb2wtZmFsc2UnLFxyXG5cclxuICAvLyBcclxuICBUQl9UcnVlID0gJ3RyaWJvb2wtdHJ1ZSdcclxufVxyXG5cclxuLy8gdGFibGUgY2FsYyByZWZlcmVuY2Ugb3B0aW9ucyBzZXRcclxuZXhwb3J0IGVudW0gUmVmZXJlbmNlT3B0aW9uc1NldCB7XHJcblxyXG4gIC8vIFxyXG4gIFJPU19SZWxhdGl2ZSA9ICdyZWZlcmVuY2Utb3B0aW9ucy1zZXQtcmVsYXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBST1NfRml4ZWQgPSAncmVmZXJlbmNlLW9wdGlvbnMtc2V0LWZpeGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgUk9TX1BhcmFtZXRlciA9ICdyZWZlcmVuY2Utb3B0aW9ucy1zZXQtcGFyYW1ldGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUk9TX05vbmUgPSAncmVmZXJlbmNlLW9wdGlvbnMtc2V0LW5vbmUnXHJcbn1cclxuXHJcbi8vIHdpZGdldCBzdGF0ZVxyXG5leHBvcnQgZW51bSBXaWRnZXRTdGF0ZSB7XHJcblxyXG4gIC8vIFxyXG4gIEhpZGRlbiA9ICd3aWRnZXQtc3RhdGUtaGlkZGVuJyxcclxuXHJcbiAgLy8gXHJcbiAgRGlzYWJsZWQgPSAnd2lkZ2V0LXN0YXRlLWRpc2FibGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgRW5hYmxlZCA9ICd3aWRnZXQtc3RhdGUtZW5hYmxlZCdcclxufVxyXG5cclxuLy8gcmFuayB0eXBlXHJcbmV4cG9ydCBlbnVtIFJhbmtUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgQ29tcGV0aXRpb24gPSAncmFuay10eXBlLWNvbXBldGl0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTW9kaWZpZWRDb21wZXRpdGlvbiA9ICdyYW5rLXR5cGUtbW9kaWZpZWQtY29tcGV0aXRpb24nLFxyXG5cclxuICAvLyBcclxuICBEZW5zZSA9ICdyYW5rLXR5cGUtZGVuc2UnLFxyXG5cclxuICAvLyBcclxuICBVbmlxdWUgPSAncmFuay10eXBlLXVuaXF1ZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ2FsY0NvbW1hbmRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVGFibGVDYWxjQ29tbWFuZENsZWFyID0gJ2NsZWFyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2FsY05lc3RpbmdMZXZlbCB7XHJcblxyXG4gIC8vIFxyXG4gIFByaW1hcnkgPSAncHJpbWFyeScsXHJcblxyXG4gIC8vIHVzZWQgb25seSBmb3IgdHlwZSAhPSBUQ19DVVNUT01cclxuICBTZWNvbmRhcnkgPSAnc2Vjb25kYXJ5JyxcclxuXHJcbiAgLy8gdXNlZCBvbmx5IGZvciB0eXBlID09IFRDX0NVU1RPTVxyXG4gIE5lc3RlZCA9ICduZXN0ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEZWNpbWFsTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIERlY2ltYWxNb2RlQXV0b21hdGljID0gJ2F1dG9tYXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIERlY2ltYWxNb2RlTWFudWFsID0gJ21hbnVhbCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ2FsY09yZGVyaW5nVHlwZSB7XHJcblxyXG4gIC8vIEFkdmFuY2VkLi4uXHJcbiAgT1RGaWVsZCA9ICdmaWVsZCcsXHJcblxyXG4gIC8vIFRhYmxlIChBY3Jvc3MpXHJcbiAgT1RSb3dzID0gJ3Jvd3MnLFxyXG5cclxuICAvLyBUYWJsZSAoRG93bilcclxuICBPVENvbHVtbnMgPSAnY29sdW1ucycsXHJcblxyXG4gIC8vIFRhYmxlIChBY3Jvc3MgdGhlbiBEb3duKVxyXG4gIE9UVGFibGUgPSAndGFibGUnLFxyXG5cclxuICAvLyBUYWJsZSAoRG93biB0aGVuIEFjcm9zcylcclxuICBPVFRhYmxlQ29sdW1uUHJlY2VkZW5jZSA9ICd0YWJsZS1jb2x1bW4tcHJlY2VkZW5jZScsXHJcblxyXG4gIC8vIFBhbmUgQWNyb3NzXHJcbiAgT1RSb3dJblBhbmUgPSAncm93LWluLXBhbmUnLFxyXG5cclxuICAvLyBQYW5lIChEb3duKVxyXG4gIE9UQ29sdW1uSW5QYW5lID0gJ2NvbHVtbi1pbi1wYW5lJyxcclxuXHJcbiAgLy8gUGFuZSAoQWNyb3NzIHRoZW4gRG93bilcclxuICBPVFBhbmUgPSAncGFuZScsXHJcblxyXG4gIC8vIFBhbmUgKERvd24gdGhlbiBBY3Jvc3MpXHJcbiAgT1RQYW5lQ29sdW1uUHJlY2VkZW5jZSA9ICdwYW5lLWNvbHVtbi1wcmVjZWRlbmNlJyxcclxuXHJcbiAgLy8gQ2VsbFxyXG4gIE9UQ2VsbEluUGFuZSA9ICdjZWxsLWluLXBhbmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUYWJsZUNhbGNTb3J0TW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNNX0F1dG9tYXRpYyA9ICdzb3J0LW1vZGUtYXV0b21hdGljJyxcclxuXHJcbiAgLy8gXHJcbiAgU01fQ3VzdG9tID0gJ3NvcnQtbW9kZS1jdXN0b20nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlIHtcclxuXHJcbiAgLy8gbm9uZSAodXNlZCB0byBpbml0aWFsaXplIHZhcmlhYmxlcylcclxuICBUQ19OT05FID0gJ25vbmUnLFxyXG5cclxuICAvLyBSdW5uaW5nIFRvdGFsXHJcbiAgVENfQ1VNVUxBVElWRSA9ICdjdW11bGF0aXZlJyxcclxuXHJcbiAgLy8gTW92aW5nIENhbGN1bGF0aW9uXHJcbiAgVENfV0lORE9XID0gJ3dpbmRvdycsXHJcblxyXG4gIC8vIERpZmZlcmVuY2UgRnJvbVxyXG4gIFRDX0RJRkYgPSAnZGlmZicsXHJcblxyXG4gIC8vIFBlcmNlbnQgRGlmZmVyZW5jZSBGcm9tXHJcbiAgVENfUENURElGRiA9ICdwY3QtZGlmZicsXHJcblxyXG4gIC8vIFBlcmNlbnQgRnJvbVxyXG4gIFRDX1BDVFZBTFVFID0gJ3BjdC12YWx1ZScsXHJcblxyXG4gIC8vIFBlcmNlbnQgT2YgVG90YWxcclxuICBUQ19QQ1RUT1RBTCA9ICdwY3QtdG90YWwnLFxyXG5cclxuICAvLyBSYW5rXHJcbiAgVENfUkFOSyA9ICdyYW5rJyxcclxuXHJcbiAgLy8gUGVyY2VudGlsZVxyXG4gIFRDX1BDVFJBTksgPSAncGN0LXJhbmsnLFxyXG5cclxuICAvLyBDdXN0b21cclxuICBUQ19DVVNUT00gPSAnY3VzdG9tJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFJ1blRvdGFsID0gJ3J1bi10b3RhbCcsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZERpZmZlcmVuY2UgPSAnZGlmZmVyZW5jZScsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFBjdERpZmYgPSAncGN0LWRpZmYnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRQY3RUb3RhbCA9ICdwY3QtdG90YWwnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRSYW5rID0gJ3JhbmsnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRQY3RSYW5rID0gJ3BjdC1yYW5rJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tUYWJsZUNhbGNDb21tYW5kTW92aW5nQXZnID0gJ21vdmluZy1hdmcnLFxyXG5cclxuICAvLyBcclxuICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRZdGQgPSAneXRkJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tUYWJsZUNhbGNDb21tYW5kQ2dyID0gJ2NncicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFlPdmVyWSA9ICd5LW92ZXIteScsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrVGFibGVDYWxjQ29tbWFuZFl0ZEdyb3d0aCA9ICd5dGQtZ3Jvd3RoJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tUYWJsZUNhbGNDb21tYW5kQ3VzdG9tID0gJ2N1c3RvbSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kUmVsID0gJ3JlbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kQWJzID0gJ2FicycsXHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kUGFyYW0gPSAncGFyYW0nLFxyXG5cclxuICAvLyBcclxuICBUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZE1vcmUgPSAnbW9yZSdcclxufVxyXG5cclxuLy8gcmVsYXRpdmUgYWRkcmVzc2luZ1xyXG5leHBvcnQgZW51bSBUYWJsZUNhbGNSZWxhdGl2ZUFkZHJlc3Mge1xyXG5cclxuICAvLyBcclxuICBSZWxBZGRyRmlyc3QgPSAncmVsYXRpdmUtYWRkcmVzcy1maXJzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFJlbEFkZHJQcmV2aW91cyA9ICdyZWxhdGl2ZS1hZGRyZXNzLXByZXZpb3VzJyxcclxuXHJcbiAgLy8gXHJcbiAgUmVsQWRkck5leHQgPSAncmVsYXRpdmUtYWRkcmVzcy1uZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmVsQWRkckxhc3QgPSAncmVsYXRpdmUtYWRkcmVzcy1sYXN0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2F0ZWdvcmljYWxCaW5JdGVtVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVuYmlubmVkID0gJ3VuYmlubmVkJyxcclxuXHJcbiAgLy8gXHJcbiAgQmluTWVtYmVyID0gJ2NhdGVnb3JpY2FsLWJpbi1tZW1iZXInLFxyXG5cclxuICAvLyBcclxuICBCaW4gPSAnY2F0ZWdvcmljYWwtYmluJ1xyXG59XHJcblxyXG4vLyBUaGUgY2xhc3MgcHJvcGVydGllc1xyXG5leHBvcnQgZW51bSBDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9uZSA9ICdub25lJyxcclxuXHJcbiAgLy8gXHJcbiAgR2VuZXJpY0F1dGhDbGFzcyA9ICdnZW5lcmljLWF1dGgtY2xhc3MnLFxyXG5cclxuICAvLyBcclxuICBQcm92aWRlckNsYXNzID0gJ3Byb3ZpZGVyLWNsYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0YUNvbm5lY3Rpb25DbGFzcyA9ICdkYXRhLWNvbm5lY3Rpb24tY2xhc3MnXHJcbn1cclxuXHJcbi8vIFRoZSBjb25uZWN0b3IgdHlwZVxyXG5leHBvcnQgZW51bSBDb25uZWN0b3JUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgV2ViRGF0YUNvbm5lY3RvciA9ICd3ZWItZGF0YS1jb25uZWN0b3InLFxyXG5cclxuICAvLyBcclxuICBDbG91ZEZpbGVDb25uZWN0b3IgPSAnY2xvdWQtZmlsZS1jb25uZWN0b3InLFxyXG5cclxuICAvLyBcclxuICBMZWdhY3lDb25uZWN0b3IgPSAnbGVnYWN5LWNvbm5lY3RvcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFRhYmxlUGlsbEljb24ge1xyXG5cclxuICAvLyBcclxuICBMaXN0SXRlbSA9ICdsaXN0LWl0ZW0nLFxyXG5cclxuICAvLyBcclxuICBTaGVldCA9ICdzaGVldCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvdW5kVGFibGUgPSAnZm91bmQtdGFibGUnLFxyXG5cclxuICAvLyBcclxuICBOYW1lZFJhbmdlID0gJ25hbWVkLXJhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgU3RvcmVkUHJvY2VkdXJlID0gJ3N0b3JlZC1wcm9jZWR1cmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBKb2luVmFsaWRhdGlvbkVycm9yIHtcclxuXHJcbiAgLy8gXHJcbiAgSlZFX05vRXJyb3IgPSAnbm8tZXJyb3InLFxyXG5cclxuICAvLyBcclxuICBKVkVfRW1wdHlDbGF1c2UgPSAnZW1wdHktY2xhdXNlJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX1R5cGVNaXNtYXRjaCA9ICd0eXBlLW1pc21hdGNoJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX0ludmFsaWRGaWVsZCA9ICdpbnZhbGlkLWZpZWxkJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX0JhZENsYXVzZSA9ICdiYWQtY2xhdXNlJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX0JhZElucHV0UmVsYXRpb24gPSAnYmFkLWlucHV0LXJlbGF0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX1JlcGVhdGVkRmllbGRSZWZlcmVuY2VzID0gJ3JlcGVhdGVkLWZpZWxkLXJlZmVyZW5jZXMnLFxyXG5cclxuICAvLyBcclxuICBKVkVfVW5zdXBwb3J0ZWRKb2luVHlwZSA9ICd1bnN1cHBvcnRlZC1qb2luLXR5cGUnLFxyXG5cclxuICAvLyBcclxuICBKVkVfSW52YWxpZENhbGN1bGF0aW9uID0gJ2ludmFsaWQtY2FsY3VsYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBKVkVfTm9uU3BhdGlhbFR5cGUgPSAnbm9uLXNwYXRpYWwtdHlwZScsXHJcblxyXG4gIC8vIFxyXG4gIEpWRV9Ob25TcGF0aWFsQ29tcGFyaXNvbiA9ICdub24tc3BhdGlhbC1jb21wJyxcclxuXHJcbiAgLy8gXHJcbiAgSlZFX1Vua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIENvbm5lY3Rpb25UeXBlRW51bSB7XHJcblxyXG4gIC8vIC1kLXMgaXMgdXNlZCB0byBmb3JjZSB0aGUgZW51bSBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgRFMgd2l0aCBjYXBpdGFsIGxldHRlcnMgaW4gLmNzIGp1c3QgbGlrZSB0aGUgLmNwcFxyXG4gIEludmFsaWREUyA9ICdpbnZhbGlkLWQtcycsXHJcblxyXG4gIC8vIFxyXG4gIEZpbGVEUyA9ICdmaWxlLWQtcycsXHJcblxyXG4gIC8vIFxyXG4gIFNlcnZlckRTID0gJ3NlcnZlci1kLXMnLFxyXG5cclxuICAvLyBcclxuICBJbnRlcm5ldERTID0gJ2ludGVybmV0LWQtcycsXHJcblxyXG4gIC8vIFxyXG4gIFRhYmxlYXVTZXJ2ZXJEUyA9ICd0YWJsZWF1LXNlcnZlci1kLXMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uRXJyb3JTdGFnZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVua25vd24gPSAndW5rbm93bicsXHJcblxyXG4gIC8vIFxyXG4gIENyZWF0ZVByb3RvY29sRmFpbGVkID0gJ2NyZWF0ZS1wcm90b2NvbC1mYWlsZWQnLFxyXG5cclxuICAvLyBcclxuICBMb2FkTWV0YWRhdGFGYWlsZWQgPSAnbG9hZC1tZXRhZGF0YS1mYWlsZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTb3J0RGlyZWN0aW9uIHtcclxuXHJcbiAgLy8gYXNjZW5kaW5nXHJcbiAgU1RfQVNDID0gJ2FzYycsXHJcblxyXG4gIC8vIGRlc2NlbmRpbmdcclxuICBTVF9ERVNDID0gJ2Rlc2MnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTb3J0VHlwZSB7XHJcblxyXG4gIC8vIFVzZSB0aGUgZGVmaW5lZCBvcmRlcmluZ1xyXG4gIFNUX05BVFVSQUwgPSAnZGF0YS1zb3VyY2Utb3JkZXInLFxyXG5cclxuICAvLyBBbHBoYWJldGljL251bWVyaWMgb3JkZXJpbmcgb2YgZGF0YVxyXG4gIFNUX0FMUEhBQkVUSUMgPSAnYWxwaGEnLFxyXG5cclxuICAvLyBTcGVjaWZ5IGEgc2Vjb25kYXJ5IGZpZWxkXHJcbiAgU1RfQ09NUFVURUQgPSAnZmllbGQnLFxyXG5cclxuICAvLyBNYW51YWxseSBkZWZpbmVkIG9yZGVyaW5nXHJcbiAgU1RfTUFOVUFMID0gJ21hbnVhbCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFNvcnRFbmQge1xyXG5cclxuICAvLyBcclxuICBTVF9UT1AgPSAndG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfQk9UVE9NID0gJ2JvdHRvbSdcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gZm9yIHRoZSB0eXBlIG9mIGpvaW4gY29ubmVjdGluZyB0d28gdGFibGVzXHJcbmV4cG9ydCBlbnVtIFNRTEpvaW5UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1FMX0lubmVySm9pbiA9ICdzcWwtaW5uZXItam9pbicsXHJcblxyXG4gIC8vIFxyXG4gIFNRTF9MZWZ0Sm9pbiA9ICdzcWwtbGVmdC1qb2luJyxcclxuXHJcbiAgLy8gXHJcbiAgU1FMX1JpZ2h0Sm9pbiA9ICdzcWwtcmlnaHQtam9pbicsXHJcblxyXG4gIC8vIFxyXG4gIFNRTF9GdWxsSm9pbiA9ICdzcWwtZnVsbC1qb2luJyxcclxuXHJcbiAgLy8gXHJcbiAgU1FMX0Nyb3NzSm9pbiA9ICdzcWwtY3Jvc3Mtam9pbidcclxufVxyXG5cclxuLy8gVGhlIHJlc3VsdCBvZiBwYXJzaW5nIGFuZCBzZXR0aW5nIGEgZGF0YSB2YWx1ZSBmb3IgYSBwcm9wZXJ0eSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzLlxyXG5leHBvcnQgZW51bSBTZXRBeGlzRGF0YVZhbHVlUmVzdWx0IHtcclxuXHJcbiAgLy8gXHJcbiAgU3VjY2VzcyA9ICdzZXQtYXhpcy1kYXRhLXZhbHVlLXJlc3VsdC1zdWNjZXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgUGFyc2VGYWlsdXJlID0gJ3NldC1heGlzLWRhdGEtdmFsdWUtcmVzdWx0LXBhcnNlLWZhaWx1cmUnLFxyXG5cclxuICAvLyBcclxuICBWYWx1ZUZhaWx1cmUgPSAnc2V0LWF4aXMtZGF0YS12YWx1ZS1yZXN1bHQtdmFsdWUtZmFpbHVyZSdcclxufVxyXG5cclxuLy8gVGhlIHR5cGUgb2YgYW4gYXhpcycgZXh0ZW50XHJcbmV4cG9ydCBlbnVtIEF4aXNFeHRlbnRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgQXV0b21hdGljID0gJ2F4aXMtZXh0ZW50LWF1dG9tYXRpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVuaWZvcm0gPSAnYXhpcy1leHRlbnQtdW5pZm9ybScsXHJcblxyXG4gIC8vIFxyXG4gIEluZGVwZW5kZW50ID0gJ2F4aXMtZXh0ZW50LWluZGVwZW5kZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWQgPSAnYXhpcy1leHRlbnQtZml4ZWQnXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHVuaXRzIHRpY2sgc3BhY2luZyBjYW4gdGFrZVxyXG5leHBvcnQgZW51bSBUaWNrU3BhY2luZ1VuaXRzIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9Vbml0cyA9ICduby11bml0cycsXHJcblxyXG4gIC8vIFxyXG4gIFllYXJzID0gJ3llYXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVhcnRlcnMgPSAncXVhcnRlcnMnLFxyXG5cclxuICAvLyBcclxuICBNb250aHMgPSAnbW9udGhzJyxcclxuXHJcbiAgLy8gXHJcbiAgV2Vla3MgPSAnd2Vla3MnLFxyXG5cclxuICAvLyBcclxuICBEYXlzID0gJ2RheXMnLFxyXG5cclxuICAvLyBcclxuICBIb3VycyA9ICdob3VycycsXHJcblxyXG4gIC8vIFxyXG4gIE1pbnV0ZXMgPSAnbWludXRlcycsXHJcblxyXG4gIC8vIFxyXG4gIFNlY29uZHMgPSAnc2Vjb25kcydcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gb2Ygd2hldGhlciB0b3RhbHMgYXJlIGluY2x1ZGVkIGluIG9yIGV4Y2x1ZGVkIGZyb20gdGhlIGNvbG9yIGVuY29kaW5nXHJcbmV4cG9ydCBlbnVtIFRvdGFsc0luY2x1c2lvbiB7XHJcblxyXG4gIC8vIFRvdGFscyBpbmNsdWRlZCBpbiBjb2xvciBlbmNvZGluZ1xyXG4gIEluY2x1ZGVUb3RhbHMgPSAnaW5jbHVkZS10b3RhbHMnLFxyXG5cclxuICAvLyBUb3RhbHMgZXhjbHVkZWQgZnJvbSBjb2xvciBlbmNvZGluZ1xyXG4gIEV4Y2x1ZGVUb3RhbHMgPSAnZXhjbHVkZS10b3RhbHMnXHJcbn1cclxuXHJcbi8vIEhvdyB0aWNrIG1hcmtzIGFyZSBiZWluZyBjYWxjdWxhdGVkXHJcbmV4cG9ydCBlbnVtIFRpY2tNYXJrU3RhdGUge1xyXG5cclxuICAvLyBcclxuICBUaWNrc0F1dG9tYXRpYyA9ICd0aWNrcy1hdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBUaWNrc01hbnVhbCA9ICd0aWNrcy1tYW51YWwnLFxyXG5cclxuICAvLyBcclxuICBUaWNrc05vbmUgPSAndGlja3MtTm9uZSdcclxufVxyXG5cclxuLy8gU2V0dGluZyBmb3IgdHlwZSBvZiBheGlzIHJhbmdlXHJcbmV4cG9ydCBlbnVtIEF4aXNSYW5nZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBBdXRvbWF0aWNSYW5nZSA9ICdhdXRvbWF0aWMtcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBVbmlmb3JtUmFuZ2UgPSAndW5pZm9ybS1yYW5nZScsXHJcblxyXG4gIC8vIFxyXG4gIEluZGVwZW5kZW50UmFuZ2UgPSAnaW5kZXBlbmRlbnQtcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBGaXhlZFJhbmdlID0gJ2ZpeGVkLXJhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWRNaW4gPSAnZml4ZWQtbWluJyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWRNYXggPSAnZml4ZWQtbWF4JyxcclxuXHJcbiAgLy8gXHJcbiAgRml4ZWRNaW5Vbmlmb3JtTWF4ID0gJ2ZpeGVkLW1pbi11bmlmb3JtLW1heCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkTWluSW5kZXBlbmRlbnRNYXggPSAnZml4ZWQtbWluLWluZGVwZW5kZW50LW1heCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkTWF4VW5pZm9ybU1pbiA9ICdmaXhlZC1tYXgtdW5pZm9ybS1taW4nLFxyXG5cclxuICAvLyBcclxuICBGaXhlZE1heEluZGVwZW5kZW50TWluID0gJ2ZpeGVkLW1heC1pbmRlcGVuZGVudC1taW4nLFxyXG5cclxuICAvLyBcclxuICBGaXhlZFJhbmdlT3JkaW5hbCA9ICdmaXhlZC1yYW5nZS1vcmRpbmFsJ1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2Ygd2lkZ2V0IG9uIHRoZSB0b29sYmFyIG9mIHJpY2ggdGV4dCBlZGl0b3JcclxuZXhwb3J0IGVudW0gUmljaFRleHRFZGl0b3JXaWRnZXRLZXkge1xyXG5cclxuICAvLyBcclxuICBOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBGb250U2l6ZSA9ICdmb250c2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvbnROYW1lID0gJ2ZvbnRuYW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9udENvbG9yID0gJ2NvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgQm9sZCA9ICdib2xkJyxcclxuXHJcbiAgLy8gXHJcbiAgSXRhbGljID0gJ2l0YWxpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVuZGVybGluZSA9ICd1bmRlcmxpbmUnLFxyXG5cclxuICAvLyBcclxuICBBbGlnbkxlZnQgPSAnanVzdGlmeWxlZnQnLFxyXG5cclxuICAvLyBcclxuICBBbGlnbkNlbnRlciA9ICdqdXN0aWZ5Y2VudGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQWxpZ25SaWdodCA9ICdqdXN0aWZ5cmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBDbGVhckZvcm1hdHRpbmcgPSAnY2xlYXJmb3JtYXR0aW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFibGVhdUtleXdvcmRzID0gJ3RhYmxlYXVrZXl3b3JkcydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIENlbGxTaXplQ2hhbmdlIHtcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX1RhbGxlciA9ICd0YWxsZXInLFxyXG5cclxuICAvLyBcclxuICBDU0NfU2hvcnRlciA9ICdzaG9ydGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX1dpZGVyID0gJ3dpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX05hcnJvd2VyID0gJ25hcnJvd2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NDX0JpZ2dlciA9ICdiaWdnZXInLFxyXG5cclxuICAvLyBcclxuICBDU0NfU21hbGxlciA9ICdzbWFsbGVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2VsbFR5cGVFbnVtIHtcclxuXHJcbiAgLy8gXHJcbiAgQ0xUX1NxdWFyZSA9ICdzcXVhcmUnLFxyXG5cclxuICAvLyBcclxuICBDTFRfVGV4dCA9ICd0ZXh0J1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyBwcmVzIG1vZGVsXHJcbmV4cG9ydCBlbnVtIFR5cGVPZkZvcm1hdEl0ZW0ge1xyXG5cclxuICAvLyBcclxuICBGVF9Gb3JtYXRJdGVtID0gJ2Zvcm1hdEl0ZW0nLFxyXG5cclxuICAvLyBcclxuICBGVF9Gb3JtYXRDb250YWluZXIgPSAnZm9ybWF0Q29udGFpbmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfRm9ybWF0Q29udHJvbCA9ICdmb3JtYXRDb250cm9sJ1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyBjb250YWluZXJcclxuZXhwb3J0IGVudW0gVHlwZU9mRm9ybWF0Q29udGFpbmVyIHtcclxuXHJcbiAgLy8gXHJcbiAgRlRfRm9ybWF0UGFuZSA9ICdmb3JtYXRQYW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfRm9ybWF0U2VjdGlvbiA9ICdmb3JtYXRTZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfQ29sbGFwc2libGVTZWN0aW9uID0gJ2NvbGxhcHNpYmxlU2VjdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIEZUX0NvbXBvc2l0ZUNvbnRhaW5lciA9ICdjb21wb3NpdGVDb250YWluZXInLFxyXG5cclxuICAvLyBcclxuICBGVF9Vbml0Q29udGFpbmVyID0gJ3VuaXRDb250YWluZXInLFxyXG5cclxuICAvLyBcclxuICBGVF9UYWIgPSAndGFiJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfVGFiR3JvdXAgPSAndGFiR3JvdXAnXHJcbn1cclxuXHJcbi8vIHJlcHJlc2VudHMgdHlwZSBvZiBmb3JtYXR0aW5nIGNvbnRyb2xcclxuZXhwb3J0IGVudW0gVHlwZU9mRm9ybWF0Q29udHJvbCB7XHJcblxyXG4gIC8vIFxyXG4gIEZUX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZUX051bWVyaWNDb250cm9sID0gJ251bWVyaWMtY29udHJvbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZUX1RleHRDb250cm9sID0gJ3RleHQtY29udHJvbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZUX0NvbG9yQ29udHJvbCA9ICdjb2xvci1jb250cm9sJyxcclxuXHJcbiAgLy8gXHJcbiAgRlRfU2VsZWN0b3JDb250cm9sID0gJ3NlbGVjdG9yLWNvbnRyb2wnLFxyXG5cclxuICAvLyBcclxuICBGVF9Ub2dnbGVDb250cm9sID0gJ3RvZ2dsZS1jb250cm9sJ1xyXG59XHJcblxyXG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyB3aWRnZXRcclxuZXhwb3J0IGVudW0gRm9ybWF0V2lkZ2V0S2V5IHtcclxuXHJcbiAgLy8gXHJcbiAgRldLX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZXS19Gb250RmFtaWx5ID0gJ2ZvbnRGYW1pbHknLFxyXG5cclxuICAvLyBcclxuICBGV0tfRm9udFNpemUgPSAnZm9udFNpemUnLFxyXG5cclxuICAvLyBcclxuICBGV0tfQ29sb3JTd2F0Y2ggPSAnY29sb3JTd2F0Y2gnLFxyXG5cclxuICAvLyBcclxuICBGV0tfQm9sZCA9ICdib2xkJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0l0YWxpY3MgPSAnaXRhbGljcycsXHJcblxyXG4gIC8vIFxyXG4gIEZXS19VbmRlcmxpbmUgPSAndW5kZXJsaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0xpbmVWaXNpYmlsaXR5ID0gJ2xpbmVWaXNpYmlsaXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0xpbmVQYXR0ZXJuID0gJ2xpbmVQYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX0xpbmVTaXplID0gJ2xpbmVTaXplJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX051bWJlclR5cGUgPSAnbnVtZXJpY1R5cGUnLFxyXG5cclxuICAvLyBcclxuICBGV0tfRGVjaW1hbFBsYWNlcyA9ICdkZWNpbWFsUGxhY2VzJyxcclxuXHJcbiAgLy8gXHJcbiAgRldLX1Rob3VzYW5kc1NlcGFyYXRvciA9ICd0aG91c2FuZHNTZXBhcmF0b3InLFxyXG5cclxuICAvLyBcclxuICBGV0tfTnVtZXJpY1VuaXRzID0gJ251bWVyaWNVbml0cydcclxufVxyXG5cclxuLy8gcmVwcmVzZW50cyBpZGVudGlmaWVyIGZvciBlYWNoIG5vZGUgaW4gZm9ybWF0IHBhbmVcclxuZXhwb3J0IGVudW0gRm9ybWF0Tm9kZUlkZW50aWZpZXIge1xyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTm9uZV9LZXkgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Xb3JrYm9va19LZXkgPSAnd29ya2Jvb2snLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udF9LZXkgPSAnZm9udCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Db2xvcl9LZXkgPSAnY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZXNfS2V5ID0gJ2xpbmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRBbGxfS2V5ID0gJ2ZvbnQtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRBbGxDb250cm9sc19LZXkgPSAnZm9udC1hbGwtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udE1vcmVfS2V5ID0gJ2ZvbnQtbW9yZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250V29ya3NoZWV0VGl0bGVzX0tleSA9ICd3b3Jrc2hlZXQtdGl0bGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRUb29sVGlwX0tleSA9ICdmb250LXRvb2x0aXAnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udFdvcmtzaGVldF9LZXkgPSAnZm9udC13b3Jrc2hlZXQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udERhc2hUaXRsZXNfS2V5ID0gJ2Rhc2gtdGl0bGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRTdG9yeVRpdGxlc19LZXkgPSAnc3RvcnktdGl0bGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRUaXRsZXNDb250cm9sc19LZXkgPSAndGl0bGVzLWNvbnRyb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRUb29sdGlwQ29udHJvbHNfS2V5ID0gJ3Rvb2x0aXAtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udFdvcmtzaGVldENvbnRyb2xzX0tleSA9ICd3b3Jrc2hlZXQtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZU1vcmVfS2V5ID0gJ2xpbmUtbW9yZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lR3JpZF9LZXkgPSAnbGluZS1ncmlkJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVHcmlkVGFic19LZXkgPSAnbGluZS1ncmlkLXRhYnMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9fS2V5ID0gJ2xpbmUtemVybycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lWmVyb1RhYnNfS2V5ID0gJ2xpbmUtemVyby10YWJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVBeGlzVGlja19LZXkgPSAnbGluZS1heGlzLXRpY2snLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrVGFic19LZXkgPSAnbGluZS1heGlzLXRpY2stdGFicycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lQXhpc1J1bGVyX0tleSA9ICdsaW5lLWF4aXMtcnVsZXInLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNSdWxlclRhYnNfS2V5ID0gJ2xpbmUtYXhpcy1ydWxlci10YWJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVIZWFkZXJEaXZpZGVyX0tleSA9ICdsaW5lLWhlYWRlci1kaXZpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVIZWFkZXJEaXZpZGVyVGFic19LZXkgPSAnbGluZS1oZWFkZXItZGl2aWRlci10YWJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVQYW5lRGl2aWRlcl9LZXkgPSAnbGluZS1wYW5lRGl2aWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGFuZURpdmlkZXJUYWJzX0tleSA9ICdsaW5lLXBhbmVEaXZpZGVyLXRhYnMnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUdyaWRBbGxfS2V5ID0gJ2xpbmUtZ3JpZC1hbGwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUdyaWRSb3dfS2V5ID0gJ2xpbmUtZ3JpZC1yb3cnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUdyaWRDb2x1bW5fS2V5ID0gJ2xpbmUtZ3JpZC1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9BbGxfS2V5ID0gJ2xpbmUtemVyby1hbGwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9Sb3dfS2V5ID0gJ2xpbmUtemVyby1yb3cnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVplcm9Db2x1bW5fS2V5ID0gJ2xpbmUtemVyby1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrQWxsX0tleSA9ICdsaW5lLWF4aXMtdGljay1hbGwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrUm93X0tleSA9ICdsaW5lLWF4aXMtdGljay1yb3cnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrQ29sdW1uX0tleSA9ICdsaW5lLWF4aXMtdGljay1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNSdWxlckFsbF9LZXkgPSAnbGluZS1heGlzLXJ1bGVyLWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lQXhpc1J1bGVyUm93X0tleSA9ICdsaW5lLWF4aXMtcnVsZXItcm93JyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVBeGlzUnVsZXJDb2x1bW5fS2V5ID0gJ2xpbmUtYXhpcy1ydWxlci1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVJlZmVyZW5jZV9LZXkgPSAnbGluZS1yZWZlcmVuY2UnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZURyb3BfS2V5ID0gJ2xpbmUtZHJvcCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lVHJlbmRfS2V5ID0gJ2xpbmUtdHJlbmQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZVZpc2liaWxpdHlfS2V5ID0gJ2xpbmUtdmlzaWJpbGl0eScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGF0dGVybl9LZXkgPSAnbGluZS1wYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0xpbmVXaWR0aF9LZXkgPSAnbGluZS13aWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lQ29sb3JfS2V5ID0gJ2xpbmUtY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfVGlja0NvbG9yX0tleSA9ICd0aWNrLWNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0JvcmRlclBhdHRlcm5fS2V5ID0gJ2JvcmRlci1wYXR0ZXJuJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0JvcmRlckNvbG9yX0tleSA9ICdib3JkZXItY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRGl2aWRlckNvbG9yX0tleSA9ICdkaXZpZGVyLWNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X0ZvbnRGYW1pbHlfS2V5ID0gJ2ZvbnQtZmFtaWx5LWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250U2l6ZV9LZXkgPSAnZm9udC1zaXplLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Cb2xkX0tleSA9ICdib2xkLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9JdGFsaWNzX0tleSA9ICdpdGFsaWNzLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9VbmRlcmxpbmVfS2V5ID0gJ3VuZGVybGluZS1rZXknLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfRm9udENvbG9yX0tleSA9ICdmb250LWNvbG9yLWtleScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9OdW1iZXJfQ29udGFpbmVyX0tleSA9ICdudW1iZXItY29udGFpbmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X051bWJlcl9UeXBlX0tleSA9ICdudW1iZXItY29udGFpbmVyLXR5cGUnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTnVtYmVyX1VuaXRzX0tleSA9ICdudW1iZXItY29udGFpbmVyLXVuaXRzJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9ybWF0X051bWJlcl9EZWNpbWFsX0tleSA9ICdudW1iZXItY29udGFpbmVyLWRlY2ltYWwnLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTnVtYmVyX1Rob3VzYW5kc19TZXBhcmF0b3JfS2V5ID0gJ251bWJlci1jb250YWluZXItdGhvdXNhbmRzLXNlcGFyYXRvcicsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250UGlja2VyTWluaW1hbF9LZXkgPSAnZm9udC1waWNrZXItbWluaW1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9Gb250UGlja2VyRGVmYXVsdF9LZXkgPSAnZm9udC1waWNrZXItZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGlja2VyRGVmYXVsdF9LZXkgPSAnbGluZS1waWNrZXItZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdF9MaW5lUGlja2VyTm9WaXNfS2V5ID0gJ2xpbmUtcGlja2VyLW5vLXZpc2liaWxpdHknLFxyXG5cclxuICAvLyBcclxuICBGb3JtYXRfTGluZUF4aXNUaWNrUGlja2VyX0tleSA9ICdsaW5lLWF4aXMtdGljay1waWNrZXInXHJcbn1cclxuXHJcbi8vIHJlcHJlc2VudHMgdGhlIGNvbG9yIHN3YXRjaCB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgQ29sb3JDb250cm9sUHJlc01vZGVsXHJcbmV4cG9ydCBlbnVtIENvbG9yU3dhdGNoVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIENTVF9EYXJrID0gJ2Rhcmstc3dhdGNoJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1NUX0xpZ2h0ID0gJ2xpZ2h0LXN3YXRjaCdcclxufVxyXG5cclxuLy8gcmVwcmVzZW50cyB0aGUgdHlwZSBvZiBhIHN0eWxlIHBpY2tlciwgYWZmZWN0aW5nIHRoZSBwcmV2aWV3IHJlbmRlcmluZyBhbmQsIHBvc3NpYmx5LCB0aGUgbGF5b3V0XHJcbmV4cG9ydCBlbnVtIFBpY2tlclR5cGUge1xyXG5cclxuICAvLyBcclxuICBQVF9Ob25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBQVF9Gb250ID0gJ2ZvbnQnLFxyXG5cclxuICAvLyBcclxuICBQVF9MaW5lID0gJ2xpbmUnLFxyXG5cclxuICAvLyBcclxuICBQVF9OdW1iZXIgPSAnbnVtYmVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVXBkYXRlU2NvcGUge1xyXG5cclxuICAvLyBcclxuICBVU19Xb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgVVNfRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcsXHJcblxyXG4gIC8vIFxyXG4gIFVTX1F1aWNrRmlsdGVycyA9ICdxdWljay1maWx0ZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVVNfU3RvcnkgPSAnc3RvcnknXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5TW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIE1PREVfVFlQRV9JTiA9ICd0eXBlX2luJyxcclxuXHJcbiAgLy8gXHJcbiAgTU9ERV9DT01QQUNUX0xJU1QgPSAnY29tcGFjdCcsXHJcblxyXG4gIC8vIFxyXG4gIE1PREVfTElTVCA9ICdsaXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgTU9ERV9TTElERVIgPSAnc2xpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTU9ERV9EQVRFVElNRSA9ICdkYXRldGltZSdcclxufVxyXG5cclxuLy8gZmxhZ3MgZm9yIGRpc3BsYXkgb3B0aW9uc1xyXG5leHBvcnQgZW51bSBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5RmxhZyB7XHJcblxyXG4gIC8vIFxyXG4gIERJU1BMQVlfQ1VTVE9NX1RJVExFID0gJ2N1c3RvbV90aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIERJU1BMQVlfSElERV9TTElERVJfU0xJREVSID0gJ2hpZGVfc2xpZGVyX3NsaWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIERJU1BMQVlfSElERV9TTElERVJfUkVBRE9VVCA9ICdoaWRlX3NsaWRlcl9yZWFkb3V0JyxcclxuXHJcbiAgLy8gXHJcbiAgRElTUExBWV9ISURFX1NMSURFUl9CVVRUT05TID0gJ2hpZGVfc2xpZGVyX2J1dHRvbnMnXHJcbn1cclxuXHJcbi8vIFRoZSBmb2xsb3cgc3VwcG9ydHMgMTAyNCBjdXN0b20gcGFsZXR0ZXMsIGVhY2ggd2l0aCA0bSBzaGFwZXMuIEVuY29kaW5nIGlzIHBhbGV0dGUgJmx0OyZsdDsgUGFsZXR0ZVNoaWZ0IHwgc2hhcGUuXHJcbmV4cG9ydCBlbnVtIFNoYXBlRW5jb2RlQ29uc3RhbnRzIHtcclxuXHJcbiAgLy8gU2hpZnQgdmFsdWUgZm9yIHBhbGV0dGVcclxuICBFbmNvZGVQYWxldHRlU2hpZnQgPSAncGFsZXR0ZVNoaWZ0JyxcclxuXHJcbiAgLy8gTWFzayBmb3IgZ2V0dGluZyBwYWxldHRlIGZyb20gZW5jb2RlZCB2YWx1ZS4gKFRoZW4gc2hpZnQgZG93bilcclxuICBFbmNvZGVQYWxldHRlTWFzayA9ICdwYWxldHRlTWFzaycsXHJcblxyXG4gIC8vIE1hc2sgZm9yIGdldHRpbmcgc2hhcGUgZnJvbSBlbmNvZGVkIHZhbHVlXHJcbiAgRW5jb2RlU2hhcGVNYXNrID0gJ3NoYXBlTWFzaydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFNoYXBlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlQ2lyY2xlID0gJ2NpcmNsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlU3F1YXJlID0gJ3NxdWFyZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlUGx1cyA9ICdwbHVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVUaW1lcyA9ICd0aW1lcycsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlQXN0ZXJpc2sgPSAnYXN0ZXJpc2snLFxyXG5cclxuICAvLyBcclxuICBTaGFwZURpYW1vbmQgPSAnZGlhbW9uZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlVHJpYW5nbGUgPSAndHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZURvd25UcmlhbmdsZSA9ICdkb3duLXRyaWFuZ2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVMZWZ0VHJpYW5nbGUgPSAnbGVmdC10cmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlUmlnaHRUcmlhbmdsZSA9ICdyaWdodC10cmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIE1heEFsbFNoYXBlcyA9ICdpbnZhbGlkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hhcGVQYWxldHRlIHtcclxuXHJcbiAgLy8gYnVpbHQtaW4gcGFsZXR0ZVxyXG4gIFNoYXBlUGFsZXR0ZUZpbGxlZCA9ICdmaWxsZWQnLFxyXG5cclxuICAvLyBjdXN0b20gcGFsZXR0ZXNcclxuICBTaGFwZVBhbGV0dGVDdXN0b20xID0gJ2N1c3RvbTEnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b20yID0gJ2N1c3RvbTInLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b20zID0gJ2N1c3RvbTMnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b200ID0gJ2N1c3RvbTQnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b201ID0gJ2N1c3RvbTUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b202ID0gJ2N1c3RvbTYnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b203ID0gJ2N1c3RvbTcnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b204ID0gJ2N1c3RvbTgnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b205ID0gJ2N1c3RvbTknLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVDdXN0b20xMCA9ICdjdXN0b20xMCcsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlUGFsZXR0ZUN1c3RvbTExID0gJ2N1c3RvbTExJyxcclxuXHJcbiAgLy8gYW5kIHNvIG9uLi4uXHJcbiAgU2hhcGVQYWxldHRlQ3VzdG9tMTIgPSAnY3VzdG9tMTInLFxyXG5cclxuICAvLyBcclxuICBTaGFwZVBhbGV0dGVIaWRkZW4gPSAnaGlkZGVuJ1xyXG59XHJcblxyXG4vLyBTaGFwZVR5cGUgYW5kIHBhbGV0dGUgbWFwcGVkIGludG8gYSBzaW5nbGUgdmFsdWUuIFRoaXMgZW51bSBkZXBlbmRzIG9uIFNoYXBlVHlwZSBhbmQgdGhlIGltcGxlbWVudGF0aW9uIG9mIFNoYXBlTWFuYWdlcjo6SW50RW5jb2RlLlxyXG5leHBvcnQgZW51bSBTaGFwZUlEIHtcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRENpcmNsZSA9ICdzaGFwZUlEQ2lyY2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRFNxdWFyZSA9ICdzaGFwZUlEU3F1YXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRFBsdXMgPSAnc2hhcGVJRFBsdXMnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlEVGltZXMgPSAnc2hhcGVJRFRpbWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREFzdGVyaXNrID0gJ3NoYXBlSURBc3RlcmlzaycsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSUREaWFtb25kID0gJ3NoYXBlSUREaWFtb25kJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJRFRyaWFuZ2xlID0gJ3NoYXBlSURUcmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSUREb3duVHJpYW5nbGUgPSAnc2hhcGVJRERvd25UcmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSURMZWZ0VHJpYW5nbGUgPSAnc2hhcGVJRExlZnRUcmlhbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSURSaWdodFRyaWFuZ2xlID0gJ3NoYXBlSURSaWdodFRyaWFuZ2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZENpcmNsZSA9ICdzaGFwZUlERmlsbGVkQ2lyY2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZFNxdWFyZSA9ICdzaGFwZUlERmlsbGVkU3F1YXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZFBsdXMgPSAnc2hhcGVJREZpbGxlZFBsdXMnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkVGltZXMgPSAnc2hhcGVJREZpbGxlZFRpbWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVJREZpbGxlZFN0YXIgPSAnc2hhcGVJREZpbGxlZFN0YXInLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkRGlhbW9uZCA9ICdzaGFwZUlERmlsbGVkRGlhbW9uZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNoYXBlSURGaWxsZWRUcmlhbmdsZSA9ICdzaGFwZUlERmlsbGVkVHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkRG93blRyaWFuZ2xlID0gJ3NoYXBlSURGaWxsZWREb3duVHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkTGVmdFRyaWFuZ2xlID0gJ3NoYXBlSURGaWxsZWRMZWZ0VHJpYW5nbGUnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUlERmlsbGVkUmlnaHRUcmlhbmdsZSA9ICdzaGFwZUlERmlsbGVkUmlnaHRUcmlhbmdsZScsXHJcblxyXG4gIC8vIDArKFNoYXBlUGFsZXR0ZUhpZGRlbjw8RW5jb2RlUGFsZXR0ZVNoaWZ0KVxyXG4gIFNoYXBlSURVbnNjYWxlZEZpbGxlZENpcmNsZSA9ICdzaGFwZUlEVW5zY2FsZWRGaWxsZWRDaXJjbGUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBMZWdlbmRUeXBlRW51bSB7XHJcblxyXG4gIC8vIFxyXG4gIENvbG9yID0gJ2NvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGUgPSAnc2hhcGUnLFxyXG5cclxuICAvLyBcclxuICBTaXplID0gJ3NpemUnLFxyXG5cclxuICAvLyBcclxuICBIaWdobGlnaHRMZWdlbmQgPSAnaGlnaGxpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgTWFwID0gJ21hcCcsXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBCcnVzaFNwZWNpYWxGaWVsZHMge1xyXG5cclxuICAvLyBcclxuICBCU0ZfSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgQlNGX0FsbEZpZWxkcyA9ICdhbGwnLFxyXG5cclxuICAvLyBcclxuICBCU0ZfRGF0ZXNBbmRUaW1lcyA9ICdkYXRlLXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBCU0ZfVHJhaWxzID0gJ3RyYWlscycsXHJcblxyXG4gIC8vIFxyXG4gIEJTRl9FbnRpcmVUYWJsZSA9ICd0YWJsZSdcclxufVxyXG5cclxuLy8gd2hhdCBraW5kIG9mIGN1cnZlIHdpbGwgYmUgZml0IHRvIHRoZSBkYXRhIGdpdmVuIHJlc3BvbnNlIHZhcmlhYmxlIFkgYW5kIGEgc2luZ2xlIHF1YW50aXRhdGl2ZSBmYWN0b3IgWFxyXG5leHBvcnQgZW51bSBUcmVuZExpbmVGaXRUeXBlIHtcclxuXHJcbiAgLy8gZXF1YXRpb24gPSBZIH4gWCArIDFcclxuICBUcmVuZExpbmVGaXRUeXBlX19MaW5lYXJGaXQgPSAnbGluZWFyJyxcclxuXHJcbiAgLy8gZXF1YXRpb24gPSBZIH4gWF4yICsgWCArIDFcclxuICBUcmVuZExpbmVGaXRUeXBlX19Qb2x5bm9taWFsRml0ID0gJ3BvbHlub21pYWwnLFxyXG5cclxuICAvLyBlcXVhdGlvbiA9IFkgfiBsb2coWClcclxuICBUcmVuZExpbmVGaXRUeXBlX19Mb2dGaXQgPSAnbG9nJyxcclxuXHJcbiAgLy8gZXF1YXRpb24gPSBZIH4gZXhwKFgpXHJcbiAgVHJlbmRMaW5lRml0VHlwZV9fRXhwRml0ID0gJ2V4cCcsXHJcblxyXG4gIC8vIGVxdWF0aW9uID0gWSB+IFheYlxyXG4gIFRyZW5kTGluZUZpdFR5cGVfX1Bvd2VyRml0ID0gJ3Bvd2VyJ1xyXG59XHJcblxyXG4vLyB0eXBlIGZvciBjb21wb25lbnRzIG9mIGEgY29tbWFuZCBwcmVzZW50YXRpb24gbW9kZWxcclxuZXhwb3J0IGVudW0gQ29tbWFuZHNFbnVtSXRlbVR5cGUge1xyXG5cclxuICAvLyBpdGVtIHdpdGggdGV4dCBhbmQgYW4gYXNzb2NpYXRlZCBjb21tYW5kXHJcbiAgSXRlbSA9ICdpdGVtJyxcclxuXHJcbiAgLy8gZHluYW1pYyByYW5nZSBvZiBpdGVtcyBnZW5lcmF0ZWQgYnkgYW4gYXNzb2NpYXRlZCBjb21tYW5kXHJcbiAgSXRlbVJhbmdlID0gJ3JhbmdlJyxcclxuXHJcbiAgLy8gbGlzdCBvZiBzdWJjb21tYW5kc1xyXG4gIFN1YkNvbW1hbmRzSXRlbSA9ICdzdWJjb21tYW5kcycsXHJcblxyXG4gIC8vIGxvZ2ljYWwgc2VwYXJhdGlvbiBiZXR3ZWVuIGdyb3VwcyBvZiBjb21tYW5kc1xyXG4gIFNlcGFyYXRvckl0ZW0gPSAnc2VwYXJhdG9yJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRG9tYWluX0FueSA9ICdhbnknLFxyXG5cclxuICAvLyBcclxuICBEb21haW5fTGlzdCA9ICdsaXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgRG9tYWluX1JhbmdlID0gJ3JhbmdlJ1xyXG59XHJcblxyXG4vLyBDYXRlZ29yaWNhbCBmaWx0ZXIgdHlwZSB1c2FnZS5cclxuZXhwb3J0IGVudW0gRmlsdGVyc0NhdGVnb3JpY2FsRmlsdGVyVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFZpc3VhbCA9ICd2aXN1YWwnLFxyXG5cclxuICAvLyBcclxuICBFeHRyYWN0ID0gJ2V4dHJhY3QnLFxyXG5cclxuICAvLyBcclxuICBHcm91cCA9ICdncm91cCdcclxufVxyXG5cclxuLy8gRmlsdGVyIGNvbnRleHQgZG9tYWluc1xyXG5leHBvcnQgZW51bSBGaWx0ZXJzRG9tYWluVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJlbGV2YW50ID0gJ3JlbGV2YW50JyxcclxuXHJcbiAgLy8gXHJcbiAgQ2FzY2FkaW5nID0gJ2Nhc2NhZGluZycsXHJcblxyXG4gIC8vIFxyXG4gIENhc2NhZGluZ0NvbnRleHQgPSAnY2FzY2FkaW5nLWNvbnRleHQnLFxyXG5cclxuICAvLyBcclxuICBDb250ZXh0ID0gJ2NvbnRleHQnLFxyXG5cclxuICAvLyBcclxuICBEYXRhYmFzZSA9ICdhbGwnXHJcbn1cclxuXHJcbi8vIFNlbGVjdGlvbiAocmVsYXRpb25hbCBvbmx5KSAtIFJhbmdlIHR5cGVcclxuZXhwb3J0IGVudW0gRmlsdGVyc1JhbmdlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEFsbCA9ICdhbGwnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZCA9ICdzZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hbnVhbCA9ICdtYW51YWwnXHJcbn1cclxuXHJcbi8vIFBhdHRlcm4gYmFzZWQgZmlsdGVyaW5nXHJcbmV4cG9ydCBlbnVtIEZpbHRlcnNQYXR0ZXJuVHlwZSB7XHJcblxyXG4gIC8vIHN0YXJ0cyB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0dGVybiB0ZXh0XHJcbiAgU3RhcnRzV2l0aCA9ICdzdGFydHMtd2l0aCcsXHJcblxyXG4gIC8vIGVuZHMgd2l0aCB0aGUgc3BlY2lmaWVkIHBhdHRlcm4gdGV4dFxyXG4gIEVuZHNXaXRoID0gJ2VuZHMtd2l0aCcsXHJcblxyXG4gIC8vIGNvbnRhaW5zIHRoZSBzcGVjaWZpZWQgcGF0dGVybiB0ZXh0XHJcbiAgQ29udGFpbnMgPSAnY29udGFpbnMnLFxyXG5cclxuICAvLyBleGFjdGx5IG1hdGNoZXMgdGhlIHNwZWNpZmllZCBwYXR0ZXJuIHRleHRcclxuICBFeGFjdE1hdGNoID0gJ2V4YWN0LW1hdGNoJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmlsdGVyc0xpbWl0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEJ5RmllbGQgPSAnYnktZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtdWxhID0gJ2Zvcm11bGEnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGaWx0ZXJzQ29uZGl0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEJ5RmllbGQgPSAnYnktZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBGb3JtdWxhID0gJ2Zvcm11bGEnXHJcbn1cclxuXHJcbi8vIEhpZ2hlciBsZXZlbCBpbnRlcHJldGF0aW9uIG9mIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXIncyByYW5nZVxyXG5leHBvcnQgZW51bSBGaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VDdXJyZW50ID0gJ2N1cnInLFxyXG5cclxuICAvLyBcclxuICBSYW5nZUN1cnJlbnRUb0RhdGUgPSAndG9kYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VMYXN0MSA9ICdsYXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VOZXh0MSA9ICduZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmFuZ2VMYXN0TiA9ICdsYXN0bicsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlTmV4dE4gPSAnbmV4dG4nLFxyXG5cclxuICAvLyBcclxuICBSYW5nZU90aGVyMSA9ICdvdGhlcicsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlT3RoZXJOID0gJ290aGVybicsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlSW52YWxpZCA9ICdpbnZhbGlkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmlsdGVyc0ZpbHRlck1vZGUge1xyXG5cclxuICAvLyBcclxuICBMb2NhbCA9ICdsb2NhbCcsXHJcblxyXG4gIC8vIFxyXG4gIEdsb2JhbCA9ICdnbG9iYWwnLFxyXG5cclxuICAvLyBcclxuICBTaGFyZWQgPSAnc2hhcmVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFwcGVkR2xvYmFsID0gJ21hcHBlZC1nbG9iYWwnXHJcbn1cclxuXHJcbi8vIEhvdyB1bmNvbW1pdHRlZCBzZWxlY3Rpb24gc3RhdGUgaXMgYmVpbmcgdHJhY2tlZFxyXG5leHBvcnQgZW51bSBGaWx0ZXJzU2VsZWN0aW9uVHJhY2tpbmcge1xyXG5cclxuICAvLyBQYXNzZWQgbWVtYmVycyBoYXZlIGJlZW4gdXBkYXRlZDogZWFjaCBpbmNsdWRlZCBtZW1iZXJzJyBzZWxlY3Rpb24gc3RhdGUgc2hvdWxkIGJlIGZsaXBwZWQgZnJvbSBpdHMgaW5pdGlhbCBzdGF0ZS5cclxuICBEaWZmZXJlbmNlc0Zyb21CYXNlID0gJ2RpZmZlcmVuY2VzJyxcclxuXHJcbiAgLy8gUGFzc2VkIG1lbWJlcnMgc2hvdWxkIGJlIHVuY29uZGl0aW9uYWxseSBzZWxlY3RlZFxyXG4gIFNlbGVjdGVkVmFsdWVzID0gJ3NlbGVjdGVkJyxcclxuXHJcbiAgLy8gRG9uJ3Qgc2F2ZSBhbnkgc2VsZWN0aW9uIHN0YXRlLiBUaGlzIHNhdmVzIG1lbW9yeSBhdCB0aGUgY29zdCBvZiBub3QgYmVpbmcgcmVjb3ZlcmFibGUgaWYgdGhlIGNvbnRyb2xsZXIgaXMgZ29uZS5cclxuICBOb25lID0gJ2RvbnQtdHJhY2stc2VsZWN0aW9uLXN0YXRlJ1xyXG59XHJcblxyXG4vLyBmaWx0ZXIgdXBkYXRlIG9wdGlvbnNcclxuZXhwb3J0IGVudW0gRmlsdGVyVXBkYXRlVHlwZSB7XHJcblxyXG4gIC8vIHNlbGVjdCBhbGwgdmFsdWVzIGluIGZpbHRlclxyXG4gIEFMTCA9ICdmaWx0ZXItYWxsJyxcclxuXHJcbiAgLy8gYWRkIGl0ZW1zIHRvIGV4aXN0aW5nIGZpbHRlclxyXG4gIEFERCA9ICdmaWx0ZXItYWRkJyxcclxuXHJcbiAgLy8gcmVtb3ZlIGl0ZW1zIGZyb20gZXhpc3RpbmcgZmlsdGVyXHJcbiAgUkVNT1ZFID0gJ2ZpbHRlci1yZW1vdmUnLFxyXG5cclxuICAvLyByZXBsYWNlIGV4aXN0aW5nIGZpbHRlciB3aXRoIGdpdmVuIG9wdGlvbnNcclxuICBSRVBMQUNFID0gJ2ZpbHRlci1yZXBsYWNlJyxcclxuXHJcbiAgLy8gbWl4dHVyZSBvZiBhZGQgKyByZW1vdmFsXHJcbiAgREVMVEEgPSAnZmlsdGVyLWRlbHRhJyxcclxuXHJcbiAgLy8gY2xlYXIgdGhlIGZpbHRlclxyXG4gIENMRUFSID0gJ2ZpbHRlci1jbGVhcicsXHJcblxyXG4gIC8vIGVhY2ggdmFsdWUgaW4gdGhlIGZpbHRlciwgYnV0IGluZGl2aWR1YWxseSBzZWxlY3RlZFxyXG4gIEVBQ0ggPSAnZmlsdGVyLWVhY2gnXHJcbn1cclxuXHJcbi8vIGFkZGl0aW9uYWwgY29udGV4dCBuZWVkZWQgdG8gcGVyZm9ybSBhIGZpbHRlciB1cGRhdGUgY29ycmVjdGx5XHJcbmV4cG9ydCBlbnVtIEZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGUge1xyXG5cclxuICAvLyB0aGUgZmlsdGVyJ3MgZG9tYWluIGlzIGEgbWFudWFsbHkgdHlwZWQgaW4gb3Igc2VsZWN0ZWQgc3Vic2V0IG9mIHRoZSBmdWxsIGRvbWFpblxyXG4gIENVU1RPTV9ET01BSU4gPSAnZmlsdGVyLXVwZGF0ZS1jdXN0b20tZG9tYWluJyxcclxuXHJcbiAgLy8gbm8gcXVhbGlmaWNhdGlvbnMgdG8gdGhlIGZpbHRlci11cGRhdGUgYXJlIHNwZWNpZmllZFxyXG4gIE5PX1FVQUxJRklDQVRJT05TID0gJ2ZpbHRlci11cGRhdGUtbm8tcXVhbCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZpbHRlcnNQcmVzZXRUeXBlIHtcclxuXHJcbiAgLy8ga2VlcCB0aGUgc2VsZWN0aW9uIGNob3NlbiBieSB0aGUgdXNlclxyXG4gIE5vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIHVwZGF0ZSB0byB0aGUgbGF0ZXN0IHZhbHVlcyBpbiB0aGUgZGF0YWJhc2VcclxuICBMYXN0VmFsdWVzID0gJ2xhc3QtdmFsdWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VycmVudFZhbHVlcyA9ICdjdXJyZW50LXZhbHVlcydcclxufVxyXG5cclxuLy8gTm90ZTogYW4gZW1wdHkgcmFuZ2UgKGJvdGggZW5kcG9pbnRzIE5VTEwpIGlzIGRlZmluZWQgdG8gbWVhbiAnYWxsIG5vbi1OVUxMIHZhbHVlcycsIGJ5IHN5bW1ldHJ5IHdpdGggd2hhdCBhIHNpbmdsZS1lbmRlZCByYW5nZSBtZWFucywgc28gYW4gZW1wdHkgcmFuZ2UgYW5kIEluUmFuZ2UgcmVhbGx5IG1lYW5zIE5vbk51bGwsIGFuZCBhbiBlbXB0eSByYW5nZSBhbmQgblJhbmdlT3JOdWxsIHJlYWxseSBtZWFucyBBbGxcclxuZXhwb3J0IGVudW0gRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzIHtcclxuXHJcbiAgLy8gdGhlIGlkZW50aXR5IGZpbHRlciAoZXZlcnl0aGluZyBpcyBpbmNsdWRlZClcclxuICBBbGwgPSAnaW5jbHVkZS1hbGwnLFxyXG5cclxuICAvLyBhbGwgdmFsdWVzIHdoaWNoIGFyZSBub24tbnVsbHB0clxyXG4gIE5vbk51bGwgPSAnaW5jbHVkZS1ub24tbnVsbCcsXHJcblxyXG4gIC8vIGFsbCB2YWx1ZXMgd2hpY2ggYXJlIG51bGxwdHJcclxuICBOdWxsID0gJ2luY2x1ZGUtbnVsbCcsXHJcblxyXG4gIC8vIG9ubHkgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2UgYW5kIHdoaWNoIGFyZSBub24gbnVsbFxyXG4gIEluUmFuZ2UgPSAnaW5jbHVkZS1yYW5nZScsXHJcblxyXG4gIC8vIHZhbHVlcyB3aXRoaW4gdGhlIHJhbmdlIG9yIHdoaWNoIGFyZSBudWxscHRyXHJcbiAgSW5SYW5nZU9yTnVsbCA9ICdpbmNsdWRlLXJhbmdlLW9yLW51bGwnLFxyXG5cclxuICAvLyBhbGwgdmFsdWVzIGFyZSBmaWx0ZXJlZCBvdXQuIFVzZXIgY2Fubm90IGNyZWF0ZSB0aGlzIHR5cGUgb2YgZmlsdGVyIGRpcmVjdGx5OyBpcyBvbmx5IGNyZWF0ZWQgd2hlbiB0d28gZmlsdGVycyBpbnRlcnNlY3QgYW5kIHRoZWlyIGluY2x1ZGVkVmFsdWVzIGNvbmZsaWN0IHNvIHRoZXkgd2lsbCBpbmNsdWRlIG5vdGhpbmcgKGUuZy4sIE5vbk51bGwgd2l0aCBOdWxsKVxyXG4gIE5vbmUgPSAnaW5jbHVkZS1ub25lJ1xyXG59XHJcblxyXG4vLyBGaXNjYWwgWWVhciBTdGFydGluZyBNb250aFxyXG5leHBvcnQgZW51bSBGWVNWYWx1ZXMge1xyXG5cclxuICAvLyBcclxuICBGWVNWYWx1ZXNfX0ZZU19KQU5VQVJZID0gJ2Z5cy1qYW51YXJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfRkVCUlVBUlkgPSAnZnlzLWZlYnJ1YXJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfTUFSQ0ggPSAnZnlzLW1hcmNoJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfQVBSSUwgPSAnZnlzLWFwcmlsJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfTUFZID0gJ2Z5cy1tYXknLFxyXG5cclxuICAvLyBcclxuICBGWVNWYWx1ZXNfX0ZZU19KVU5FID0gJ2Z5cy1qdW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfSlVMWSA9ICdmeXMtanVseScsXHJcblxyXG4gIC8vIFxyXG4gIEZZU1ZhbHVlc19fRllTX0FVR1VTVCA9ICdmeXMtYXVndXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfU0VQVEVNQkVSID0gJ2Z5cy1zZXB0ZW1iZXInLFxyXG5cclxuICAvLyBcclxuICBGWVNWYWx1ZXNfX0ZZU19PQ1RPQkVSID0gJ2Z5cy1vY3RvYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfTk9WRU1CRVIgPSAnZnlzLW5vdmVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRllTVmFsdWVzX19GWVNfREVDRU1CRVIgPSAnZnlzLWRlY2VtYmVyJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFnZU5hdkZsYWdzRmxhZ3Mge1xyXG5cclxuICAvLyBcclxuICBOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBMb29wZWRQbGF5YmFjayA9ICdsb29wZWQtcGxheWJhY2snLFxyXG5cclxuICAvLyBcclxuICBTaG93RHJvcGRvd24gPSAnc2hvdy1kcm9wZG93bicsXHJcblxyXG4gIC8vIFxyXG4gIFNob3dTbGlkZXIgPSAnc2hvdy1zbGlkZXInLFxyXG5cclxuICAvLyBcclxuICBTaG93UGxheUN0cmxzID0gJ3Nob3ctcGxheS1jb250cm9scycsXHJcblxyXG4gIC8vIFxyXG4gIFNob3dUcmFpbEN0cmxzID0gJ3Nob3ctdHJhaWwtY29udHJvbHMnLFxyXG5cclxuICAvLyBcclxuICBTeW5jaHJvbml6ZWQgPSAnc3luY2hyb25pemVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFnZVRyYWlsRW51bXNNYXJrc1RvVHJhaWwge1xyXG5cclxuICAvLyBcclxuICBNYW51YWwgPSAnbWFudWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgQWxsID0gJ2FsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdGVkID0gJ3NlbGVjdGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWQgPSAnaGlnaGxpZ2h0ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBQYWdlVHJhaWxFbnVtc1RyYWlsVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE1hcmtzID0gJ21hcmtzJyxcclxuXHJcbiAgLy8gXHJcbiAgVHJhaWxzID0gJ3RyYWlscycsXHJcblxyXG4gIC8vIFxyXG4gIEJvdGggPSAnYm90aCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFBhZ2VUcmFpbEVudW1zVHJhaWxFZmZlY3Qge1xyXG5cclxuICAvLyBcclxuICBOb25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBUcmFuc3BhcmVuY3kgPSAndHJhbnNwYXJlbmN5J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gUGFnZVRyYWlsRW51bXNUcmFpbEZsYWdzIHtcclxuXHJcbiAgLy8gXHJcbiAgTm9GbGFncyA9ICduby1mbGFncycsXHJcblxyXG4gIC8vIFxyXG4gIERyYXdJZkhpZ2hsaWdodGVkID0gJ2RyYXctaWYtaGlnaGxpZ2h0ZWQnLFxyXG5cclxuICAvLyBcclxuICBEcmF3SWZTZWxlY3RlZCA9ICdkcmF3LWlmLXNlbGVjdGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJhd0Fsd2F5cyA9ICdkcmF3LWFsd2F5cycsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVzRW5hYmxlZCA9ICdsaW5lcy1lbmFibGVkJ1xyXG59XHJcblxyXG4vLyBzaW1wbGUgcGFnZSBjaGFuZ2UgY29tbWFuZHNcclxuZXhwb3J0IGVudW0gQ2hhbmdlUGFnZUNoYW5nZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBUb0ZpcnN0ID0gJ2ZpcnN0JyxcclxuXHJcbiAgLy8gXHJcbiAgVG9OZXh0ID0gJ25leHQnLFxyXG5cclxuICAvLyBcclxuICBUb1ByZXYgPSAncHJldmlvdXMnLFxyXG5cclxuICAvLyBcclxuICBUb0xhc3QgPSAnbGFzdCdcclxufVxyXG5cclxuLy8gU3RvcCwgc3RhcnQgaW4gYSBkaXJlY3Rpb24sIG9yIHNldCBzcGVlZCBvZiBwYWdlIGFuaW1hdGlvblxyXG5leHBvcnQgZW51bSBDaGFuZ2VQYWdlUGFnZUFuaW1hdGlvbkNvbnRyb2wge1xyXG5cclxuICAvLyBcclxuICBTdG9wID0gJ3N0b3AnLFxyXG5cclxuICAvLyBcclxuICBGb3J3YXJkID0gJ2ZvcndhcmQnLFxyXG5cclxuICAvLyBcclxuICBCYWNrd2FyZCA9ICdiYWNrd2FyZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNsb3dTcGVlZCA9ICdzbG93LXNwZWVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTm9ybWFsU3BlZWQgPSAnbm9ybWFsLXNwZWVkJyxcclxuXHJcbiAgLy8gXHJcbiAgRmFzdFNwZWVkID0gJ2Zhc3Qtc3BlZWQnLFxyXG5cclxuICAvLyBcclxuICBUb2dnbGVGb3J3YXJkID0gJ3RvZ2dsZS1mb3J3YXJkJyxcclxuXHJcbiAgLy8gXHJcbiAgVG9nZ2xlQmFja3dhcmQgPSAndG9nZ2xlLWJhY2t3YXJkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGVnZW5kSXRlbUxheW91dCB7XHJcblxyXG4gIC8vIFxyXG4gIExlZ2VuZEl0ZW1MYXlvdXRWZXJ0ID0gJ3ZlcnRpY2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgTGVnZW5kSXRlbUxheW91dEhvcnogPSAnaG9yaXpvbnRhbCcsXHJcblxyXG4gIC8vIFxyXG4gIExlZ2VuZEl0ZW1MYXlvdXRHcmlkID0gJ2dyaWQnLFxyXG5cclxuICAvLyBcclxuICBMZWdlbmRJdGVtTGF5b3V0QXV0byA9ICdhdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTGVnZW5kSXRlbU9yZGVyIHtcclxuXHJcbiAgLy8gXHJcbiAgTGVnZW5kSXRlbU9yZGVyTm9ybWFsID0gJ25vcm1hbCcsXHJcblxyXG4gIC8vIFxyXG4gIExlZ2VuZEl0ZW1PcmRlclJldmVyc2VkID0gJ3JldmVyc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgTGVnZW5kSXRlbU9yZGVyQXV0byA9ICdhdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2l6ZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUF1dG8gPSAnc2l6ZS1tb2RlLWF1dG8nLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUZpeGVkID0gJ3NpemUtbW9kZS1maXhlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVNb2RlTWluID0gJ3NpemUtbW9kZS1taW4nLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZU1heCA9ICdzaXplLW1vZGUtbWF4JyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZU1vZGVSYW5nZSA9ICdzaXplLW1vZGUtcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUZpdFdpZHRoID0gJ3NpemUtbW9kZS1maXQtd2lkdGgnLFxyXG5cclxuICAvLyBcclxuICBTaXplTW9kZUZpdEhlaWdodCA9ICdzaXplLW1vZGUtaGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZU1vZGVTY3JvbGxIZWlnaHQgPSAnc2l6ZS1tb2RlLXNjcm9sbC1oZWlnaHQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTaG93TWVDb21tYW5kVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9URVhUID0gJ3RleHQnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfSEVBVCA9ICdoZWF0JyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX1NQT1RUQUJMRSA9ICdzcG90LXRhYmxlJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0JBUkhPUklaID0gJ2Jhci1ob3JpeicsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9CQVJTVEFDSyA9ICdiYXItc3RhY2snLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfQkFSU0lERSA9ICdiYXItc2lkZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9CQVJNRUFTVVJFID0gJ2Jhci1tZWFzdXJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX09MSU5FID0gJ28tbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9RSUxJTkUgPSAncWktbGluZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9PQVJFQSA9ICdvLWFyZWEnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfUUlBUkVBID0gJ3FpLWFyZWEnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfQ0lSQ0xFID0gJ2NpcmNsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9DSVJDTEVTSURFID0gJ2NpcmNsZS1zaWRlJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0dBTlRUID0gJ2dhbnR0JyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX1NDQVRURVIgPSAnc2NhdHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNIT1dNRV9TQ0FUVEVSTUFUUklYID0gJ3NjYXR0ZXItbWF0cml4JyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0hJU1RPR1JBTSA9ICdoaXN0b2dyYW0nLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfTUFQUyA9ICdtYXBzJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0ZJTExFRE1BUFMgPSAnZmlsbGVkLW1hcHMnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfUElFUyA9ICdwaWVzJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0RVQUxCQVJMSU5FID0gJ2R1YWwtYmFyLWxpbmUnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfRFVBTExJTkUgPSAnZHVhbC1saW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0JVTExFVCA9ICdidWxsZXQnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfVFJFRU1BUCA9ICd0cmVlbWFwJyxcclxuXHJcbiAgLy8gXHJcbiAgU0hPV01FX0JVQkJMRSA9ICdidWJibGUnLFxyXG5cclxuICAvLyBcclxuICBTSE9XTUVfQk9YUExPVCA9ICdib3gtcGxvdCcsXHJcbn1cclxuXHJcbi8vIGljb24gdG8gZGlzcGxheSBmb3IgYW4gaXRlbSBvbiBhIHNoZWxmXHJcbmV4cG9ydCBlbnVtIFNoZWxmSWNvblR5cGUge1xyXG5cclxuICAvLyBub3Qgc2V0XHJcbiAgU0lUX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIGluY29tcGF0aWJsZSBmaWVsZFxyXG4gIFNJVF9JbmNvbXBhdGlibGVGaWVsZCA9ICdpbmNvbXBhdGlibGUtZmllbGQnLFxyXG5cclxuICAvLyByZW1vdGVcclxuICBTSVRfUmVtb3RlID0gJ3JlbW90ZScsXHJcblxyXG4gIC8vIGdyb3VwXHJcbiAgU0lUX0dyb3VwID0gJ2dyb3VwJyxcclxuXHJcbiAgLy8gdGFibGUgY2FsY1xyXG4gIFNJVF9UYWJsZUNhbGMgPSAndGFibGUtY2FsYycsXHJcblxyXG4gIC8vIGl0ZW0gY29tZXMgZnJvbSBhIHNlY29uZGFyeSBkYXRhc291cmNlXHJcbiAgU0lUX1NlY29uZGFyeURhdGFzb3VyY2UgPSAnc2Vjb25kYXJ5LWRhdGFzb3VyY2UnLFxyXG5cclxuICAvLyB0YWJsZSBjYWxjIGZyb20gYSBzZWNvbmRhcnkgZGF0YXNvdXJjZVxyXG4gIFNJVF9UYWJsZUNhbGNTZWNvbmRhcnkgPSAndGFibGUtY2FsYy1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBmb3JlY2FzdFxyXG4gIFNJVF9Gb3JlY2FzdCA9ICdmb3JlY2FzdCcsXHJcblxyXG4gIC8vIGFzY2VuZGluZyBzb3J0XHJcbiAgU0lUX1NvcnRBc2MgPSAnc29ydC1hc2MnLFxyXG5cclxuICAvLyBkZXNjZW5kaW5nIHNvcnRcclxuICBTSVRfU29ydERlc2MgPSAnc29ydC1kZXNjJyxcclxuXHJcbiAgLy8gYWxwaGFiZXRpYyBhc2NlbmRpbmcgc29ydFxyXG4gIFNJVF9Tb3J0QWxwaGFiZXRpY0FzYyA9ICdzb3J0LWFscGhhYmV0aWMtYXNjJyxcclxuXHJcbiAgLy8gYWxwaGFiZXRpYyBkZXNjZW5kaW5nIHNvcnRcclxuICBTSVRfU29ydEFscGhhYmV0aWNEZXNjID0gJ3NvcnQtYWxwaGFiZXRpYy1kZXNjJ1xyXG59XHJcblxyXG4vLyBpY29uIHRvIGRpc3BsYXkgZm9yIGFuIGl0ZW0gb24gdGhlIGZpbHRlcnMgc2hlbGZcclxuZXhwb3J0IGVudW0gRmlsdGVySWNvblR5cGUge1xyXG5cclxuICAvLyBhIGdsb2JhbCBmaWx0ZXIgaWNvblxyXG4gIEZJVF9HbG9iYWwgPSAnZ2xvYmFsLWZpbHRlcicsXHJcblxyXG4gIC8vIGEgc2hhcmVkIGZpbHRlciBpY29uXHJcbiAgRklUX1NoYXJlZCA9ICdzaGFyZWQtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgc2hhcmVkIHNvdXJjZSBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRTaGFyZWRTb3VyY2UgPSAnbWFwcGVkLXNoYXJlZC1zb3VyY2UtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgc2hhcmVkIHRhcmdldCBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRTaGFyZWRUYXJnZXQgPSAnbWFwcGVkLXNoYXJlZC10YXJnZXQtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBzbGljaW5nIGZpbHRlciBpY29uXHJcbiAgRklUX1NsaWNlID0gJ3NsaWNlLWZpbHRlcicsXHJcblxyXG4gIC8vIGEgbG9jYWwgZmlsdGVyIGljb25cclxuICBGSVRfTG9jYWwgPSAnbG9jYWwtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgZ2xvYmFsIHNvdXJjZSBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRHbG9iYWxTb3VyY2UgPSAnbWFwcGVkLWdsb2JhbC1zb3VyY2UtZmlsdGVyJyxcclxuXHJcbiAgLy8gYSBtYXBwZWQgZ2xvYmFsIHRhcmdldCBmaWx0ZXIgaWNvblxyXG4gIEZJVF9NYXBwZWRHbG9iYWxUYXJnZXQgPSAnbWFwcGVkLWdsb2JhbC10YXJnZXQtZmlsdGVyJyxcclxuXHJcbiAgLy8gbm90IGEgZmlsdGVyXHJcbiAgRklUX05vbmUgPSAnbm8tZmlsdGVyJ1xyXG59XHJcblxyXG4vLyB1c2VkIHRvIGluZGljYXRlIGlmIGEgZmllbGQgaXMgcGFydCBvZiBhIGR1YWwgYXhpc1xyXG5leHBvcnQgZW51bSBJdGVtRHJhd1N0eWxlIHtcclxuXHJcbiAgLy8gbm90IHBhcnQgb2YgYSBkdWFsIGF4aXNcclxuICBJVEVNX0RSQVdTVFlMRV9OT1JNQUwgPSAnbm9ybWFsJyxcclxuXHJcbiAgLy8gZmlyc3QgaXRlbSBvbiBkdWFsIGF4aXNcclxuICBJVEVNX0RSQVdTVFlMRV9PUEVORUQgPSAnb3BlbmVkJyxcclxuXHJcbiAgLy8gc2Vjb25kIGl0ZW0gb24gZHVhbCBheGlzXHJcbiAgSVRFTV9EUkFXU1RZTEVfQ0xPU0VEID0gJ2Nsb3NlZCcsXHJcblxyXG4gIC8vIG1pZGRsZSBpdGVtIGluIGEgc2V0IG9mIGxheWVyc1xyXG4gIElURU1fRFJBV1NUWUxFX01JRERMRSA9ICdtaWRkbGUnXHJcbn1cclxuXHJcbi8vIGluZGljYXRlcyB0aGUgc2l6ZSBvZiBwYWdlIGZvciBhIHNoZWV0XHJcbmV4cG9ydCBlbnVtIFBhZ2VTaXplT3B0aW9uIHtcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfTEVUVEVSID0gJ2xldHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0xFR0FMID0gJ2xlZ2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfTk9URSA9ICdub3RlJyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfRk9MSU8gPSAnZm9saW8nLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9UQUJMT0lEID0gJ3RhYmxvaWQnLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9MRURHRVIgPSAnbGVkZ2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfU1RBVEVNRU5UID0gJ3N0YXRlbWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0VYRUNVVElWRSA9ICdleGVjdXRpdmUnLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9BMyA9ICdhMycsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0E0ID0gJ2E0JyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfQTUgPSAnYTUnLFxyXG5cclxuICAvLyBcclxuICBQQUdFU0laRV9CNCA9ICdiNCcsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX0I1ID0gJ2I1JyxcclxuXHJcbiAgLy8gXHJcbiAgUEFHRVNJWkVfUVVBUlRPID0gJ3F1YXJ0bycsXHJcblxyXG4gIC8vIFxyXG4gIFBBR0VTSVpFX1VOU1BFQ0lGSUVEID0gJ3Vuc3BlY2lmaWVkJyxcclxufVxyXG5cclxuLy8gSW5kaWNhdGVzIHRoZSBsYXlvdXQgb2YgcGFnZSBmb3IgYSBzaGVldFxyXG5leHBvcnQgZW51bSBQYWdlT3JpZW50YXRpb24ge1xyXG5cclxuICAvLyBcclxuICBPcmllbnRhdGlvblByaW50ZXIgPSAncHJpbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIE9yaWVudGF0aW9uUG9ydHJhaXQgPSAncG9ydHJhaXQnLFxyXG5cclxuICAvLyBcclxuICBPcmllbnRhdGlvbkxhbmRzY2FwZSA9ICdsYW5kc2NhcGUnXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyB0aGUgbWFubmVyIG9mIHNjYWxpbmcgb2YgcGFnZSBmb3IgYSBzaGVldFxyXG5leHBvcnQgZW51bSBTY2FsZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBTY2FsZUF1dG8gPSAnYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGVyY2VudGFnZSA9ICdwZXJjZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVGaXRQYWdlcyA9ICdmaXQtcGFnZXMnXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyB0aGUgZGVmYXVsdC9zZWxlY3RhYmxlIHNjYWxpbmcgb2YgcGFnZSBmb3IgYSBzaGVldFxyXG5leHBvcnQgZW51bSBQYWdlU2NhbGluZ09wdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGN0QXV0byA9ICdhdXRvJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3Q0MDAgPSAncGN0NDAwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3QyMDAgPSAncGN0MjAwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3QxMDAgPSAncGN0MTAwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3Q5MCA9ICdwY3Q5MCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGN0ODAgPSAncGN0ODAnLFxyXG5cclxuICAvLyBcclxuICBTY2FsZVBjdDc1ID0gJ3BjdDc1JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NhbGVQY3Q2MCA9ICdwY3Q2MCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjYWxlUGN0NTAgPSAncGN0NTAnLFxyXG5cclxuICAvLyBcclxuICBTY2FsZVBjdDI1ID0gJ3BjdDI1J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlZXRSYW5nZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNoZWV0UmFuZ2VBbGwgPSAnYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hlZXRSYW5nZUFjdGl2ZSA9ICdhY3RpdmUnLFxyXG5cclxuICAvLyBcclxuICBTaGVldFJhbmdlU2VsZWN0ZWQgPSAnc2VsZWN0ZWQnXHJcbn1cclxuXHJcbi8vIHNoZWV0IHR5cGVcclxuZXhwb3J0IGVudW0gU2hlZXRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9XT1JLU0hFRVQgPSAnd29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9EQVNIQk9BUkQgPSAnZGFzaGJvYXJkJyxcclxuXHJcbiAgLy8gXHJcbiAgVFlQRV9TVE9SWSA9ICdzdG9yeSdcclxufVxyXG5cclxuLy8gYSBkYXNoYm9hcmQgaW1hZ2UgbWV0cmljJ3MgdHlwZVxyXG5leHBvcnQgZW51bSBDbGllbnRVSU1ldHJpY1R5cGUge1xyXG5cclxuICAvLyBcclxuICBVSU1UX1Njcm9sbGJhck1ldHJpYyA9ICdzY3JvbGxiYXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9RRmlsdGVyRml4ZWRNZXRyaWMgPSAncS1maWx0ZXItZml4ZWQtbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9RRmlsdGVyU2xpZGVyTWV0cmljID0gJ3EtZmlsdGVyLXNsaWRlci1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX1FGaWx0ZXJSZWFkb3V0TWV0cmljID0gJ3EtZmlsdGVyLXJlYWRvdXQtbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9DRmlsdGVyRml4ZWRNZXRyaWMgPSAnYy1maWx0ZXItZml4ZWQtbWV0cmljJyxcclxuXHJcbiAgLy8gbWluaW11bSBjaGVjay9yYWRpb2xpc3QgaXRlbSBzaXplXHJcbiAgVUlNVF9DRmlsdGVySXRlbU1ldHJpYyA9ICdjLWZpbHRlci1pdGVtLW1ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVJTVRfSEZpbHRlckZpeGVkTWV0cmljID0gJ2gtZmlsdGVyLWZpeGVkLW1ldHJpYycsXHJcblxyXG4gIC8vIG1pbmltdW0gaGllcmFyY2hpY2FsIGl0ZW0gc2l6ZVxyXG4gIFVJTVRfSEZpbHRlckl0ZW1NZXRyaWMgPSAnaC1maWx0ZXItaXRlbS1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NtU2xpZGVyRmlsdGVyTWV0cmljID0gJ2NtLXNsaWRlci1maWx0ZXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9DbURyb3Bkb3duRmlsdGVyTWV0cmljID0gJ2NtLWRyb3Bkb3duLWZpbHRlci1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NtUGF0dGVybkZpbHRlck1ldHJpYyA9ICdjbS1wYXR0ZXJuLWZpbHRlci1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX1JEYXRlRmlsdGVyTWV0cmljID0gJ3ItZGF0ZS1maWx0ZXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9SRGF0ZVBGaWx0ZXJNZXRyaWMgPSAnci1kYXRlLXAtZmlsdGVyLW1ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVJTVRfUGFyYW1UeXBlSW5NZXRyaWMgPSAncGFyYW0tdHlwZS1pbi1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX1BhcmFtQ29tcGFjdExpc3RNZXRyaWMgPSAncGFyYW0tY29tcGFjdC1saXN0LW1ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIFVJTVRfUGFyYW1MaXN0TWV0cmljID0gJ3BhcmFtLWxpc3QtbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9QYXJhbVNsaWRlck1ldHJpYyA9ICdwYXJhbS1zbGlkZXItbWV0cmljJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlNVF9QYXJhbURhdGVUaW1lTWV0cmljID0gJ3BhcmFtLWRhdGUtdGltZS1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NGaWx0ZXJBcHBseU1ldHJpYyA9ICdjLWZpbHRlci1hcHBseS1tZXRyaWMnLFxyXG5cclxuICAvLyBcclxuICBVSU1UX0NtVHlwZUluU2VhcmNoTWV0cmljID0gJ2NtLXR5cGUtaW4tc2VhcmNoLW1ldHJpYycsXHJcblxyXG4gIC8vIG1pbmltdW0gY3VzdG9tIGxpc3QgaXRlbSBzaXplXHJcbiAgVUlNVF9DRmlsdGVyQ3VzdG9tSXRlbU1ldHJpYyA9ICdjLWZpbHRlci1jdXN0b20taXRlbS1tZXRyaWMnXHJcbn1cclxuXHJcbi8vIGEgcmVnaW9uIG9mIGEgdml6IHdoZXJlIHNvcnQgaW5kaWNhdG9ycyBtYXkgYXBwZWFyXHJcbmV4cG9ydCBlbnVtIFNvcnRSZWdpb25UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1JUX0xBQkVMU19YID0gJ3hoZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBTUlRfTEFCRUxTX1kgPSAneWhlYWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNSVF9MQUJFTFNfRklFTEQgPSAndWxlZnQnLFxyXG5cclxuICAvLyBcclxuICBTUlRfQVhJU19MRUZUID0gJ2xlZnRheGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgU1JUX0FYSVNfQk9UVE9NID0gJ2JvdHRvbWF4aXMnLFxyXG5cclxuICAvLyBcclxuICBTUlRfQVhJU19SSUdIVCA9ICdyaWdodGF4aXMnLFxyXG5cclxuICAvLyBcclxuICBTUlRfQVhJU19UT1AgPSAndG9wYXhpcydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFF0Q3Vyc29yU2hhcGUge1xyXG5cclxuICAvLyBcclxuICBBcnJvd0N1cnNvciA9ICdhcnJvdycsXHJcblxyXG4gIC8vIFxyXG4gIFVwQXJyb3dDdXJzb3IgPSAndXAtYXJyb3cnLFxyXG5cclxuICAvLyBcclxuICBDcm9zc0N1cnNvciA9ICdjcm9zcycsXHJcblxyXG4gIC8vIFxyXG4gIFdhaXRDdXJzb3IgPSAnd2FpdCcsXHJcblxyXG4gIC8vIFxyXG4gIElCZWFtQ3Vyc29yID0gJ2liZWFtJyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZVZlckN1cnNvciA9ICdzaXplLXZlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVIb3JDdXJzb3IgPSAnc2l6ZS1ob3InLFxyXG5cclxuICAvLyBcclxuICBTaXplQkRpYWdDdXJzb3IgPSAnc2l6ZS1iZGlhZycsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVGRGlhZ0N1cnNvciA9ICdzaXplLWZkaWFnJyxcclxuXHJcbiAgLy8gXHJcbiAgU2l6ZUFsbEN1cnNvciA9ICdzaXplLWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIEJsYW5rQ3Vyc29yID0gJ2JsYW5rJyxcclxuXHJcbiAgLy8gXHJcbiAgU3BsaXRWQ3Vyc29yID0gJ3NwbGl0LXYnLFxyXG5cclxuICAvLyBcclxuICBTcGxpdEhDdXJzb3IgPSAnc3BsaXQtaCcsXHJcblxyXG4gIC8vIFxyXG4gIFBvaW50aW5nSGFuZEN1cnNvciA9ICdwb2ludGluZy1oYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgRm9yYmlkZGVuQ3Vyc29yID0gJ2ZvcmJpZGRlbicsXHJcblxyXG4gIC8vIFxyXG4gIFdoYXRzVGhpc0N1cnNvciA9ICd3aGF0cy10aGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgQnVzeUN1cnNvciA9ICdidXN5JyxcclxuXHJcbiAgLy8gXHJcbiAgT3BlbkhhbmRDdXJzb3IgPSAnb3Blbi1oYW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgQ2xvc2VkSGFuZEN1cnNvciA9ICdjbG9zZWQtaGFuZCcsXHJcblxyXG4gIC8vIFxyXG4gIERyYWdDb3B5Q3Vyc29yID0gJ2RyYWctY29weScsXHJcblxyXG4gIC8vIFxyXG4gIERyYWdNb3ZlQ3Vyc29yID0gJ2RyYWctbW92ZScsXHJcblxyXG4gIC8vIFxyXG4gIERyYWdMaW5rQ3Vyc29yID0gJ2RyYWctbGluaydcclxufVxyXG5cclxuLy8gc3BlY2lmaWVzIHZhcmlvdXMgY29tcG9uZW50cyBvZiBhIHZpeiB0aGF0IGFyZSByZW5kZXJlZCBhcyBpbWFnZXNcclxuZXhwb3J0IGVudW0gVml6SW1hZ2VSZWdpb24ge1xyXG5cclxuICAvLyB0aGUgbWFpbiB2aXogYXJlYVxyXG4gIFZJWl9SRUdJT05fVEFCTEUgPSAndml6JyxcclxuXHJcbiAgLy8geSBheGlzIGl0ZW1zXHJcbiAgVklaX1JFR0lPTl9ST1dIRUFERVJTID0gJ3loZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0xFRlRBWElTID0gJ2xlZnRheGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9SSUdIVEFYSVMgPSAncmlnaHRheGlzJyxcclxuXHJcbiAgLy8geCBheGlzIGl0ZW1zXHJcbiAgVklaX1JFR0lPTl9DT0xVTU5IRUFERVJTID0gJ3hoZWFkZXInLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0JPVFRPTUFYSVMgPSAnYm90dG9tYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fVE9QQVhJUyA9ICd0b3BheGlzJyxcclxuXHJcbiAgLy8gc3BhY2luZyBhcmVhc1xyXG4gIFZJWl9SRUdJT05fVVBQRVJMRUZUID0gJ3VsZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9VUFBFUlJJR0hUID0gJ3VyaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fTE9XRVJMRUZUID0gJ2xsZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9MT1dFUlJJR0hUID0gJ2xyaWdodCcsXHJcblxyXG4gIC8vIGxhYmVsbGluZyBhcmVhc1xyXG4gIFZJWl9SRUdJT05fVElUTEUgPSAndGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0NBUFRJT04gPSAnY2FwdGlvbicsXHJcblxyXG4gIC8vIGxlZ2VuZCBhcmVhc1xyXG4gIFZJWl9SRUdJT05fQ09MT1JMRUdFTkQgPSAnY29sb3InLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX1NIQVBFTEVHRU5EID0gJ3NoYXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9TSVpFTEVHRU5EID0gJ3NpemUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0hJR0hMSUdIVExFR0VORCA9ICdoaWdobGlnaHQtbGVnZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9NQVBMRUdFTkQgPSAnbWFwJyxcclxuXHJcbiAgLy8gbGVnZW5kIHRpdGxlc1xyXG4gIFZJWl9SRUdJT05fQ09MT1JMRUdFTkRUSVRMRSA9ICdjb2xvci10aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fU0hBUEVMRUdFTkRUSVRMRSA9ICdzaGFwZS10aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fU0laRUxFR0VORFRJVExFID0gJ3NpemUtdGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX0hJR0hMSUdIVExFR0VORFRJVExFID0gJ2hpZ2hsaWdodC1sZWdlbmQtdGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWSVpfUkVHSU9OX01BUExFR0VORFRJVExFID0gJ21hcC10aXRsZScsXHJcblxyXG4gIC8vIGxlZ2VuZCBib2RpZXNcclxuICBWSVpfUkVHSU9OX0NPTE9STEVHRU5EQk9EWSA9ICdjb2xvci1ib2R5JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9TSEFQRUxFR0VOREJPRFkgPSAnc2hhcGUtYm9keScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fU0laRUxFR0VOREJPRFkgPSAnc2l6ZS1ib2R5JyxcclxuXHJcbiAgLy8gXHJcbiAgVklaX1JFR0lPTl9ISUdITElHSFRMRUdFTkRCT0RZID0gJ2hpZ2hsaWdodC1sZWdlbmQtYm9keScsXHJcblxyXG4gIC8vIFxyXG4gIFZJWl9SRUdJT05fTUFQTEVHRU5EQk9EWSA9ICdtYXAtYm9keScsXHJcblxyXG4gIC8vIFRoZXNlIGFyZSByZWdpb24gbmFtZXMgKHJhbmdlcyBvZiBvdGhlciBlbnVtcylcclxuICBWSVpfUkVHSU9OX0VORCA9ICdlbmQnLFxyXG59XHJcblxyXG4vLyBuYW1lcyBvZiBsZWdhY3kgbWVudSBpdGVtc1xyXG5leHBvcnQgZW51bSBMZWdhY3lNZW51TmFtZSB7XHJcblxyXG4gIC8vIHZpZXcgdW5kZXJseWluZyBkYXRhXHJcbiAgTE1fTkFNRV9WSUVXREFUQSA9ICd2aWV3ZGF0YScsXHJcblxyXG4gIC8vIGV4cG9ydCBpbWFnZVxyXG4gIExNX05BTUVfRVhQT1JUSU1BR0UgPSAnZXhwb3J0aW1hZ2UnLFxyXG5cclxuICAvLyBleHBvcnQgZGF0YVxyXG4gIExNX05BTUVfRVhQT1JUREFUQSA9ICdleHBvcnRkYXRhJyxcclxuXHJcbiAgLy8gZXhwb3J0IGFzIGNyb3NzdGFiXHJcbiAgTE1fTkFNRV9FWFBPUlRDUk9TU1RBQiA9ICdleHBvcnRjcm9zc3RhYicsXHJcblxyXG4gIC8vIHByaW50IHRvIHBkZlxyXG4gIExNX05BTUVfUFJJTlQgPSAncHJpbnQnXHJcbn1cclxuXHJcbi8vIHN0YXRlcyBvZiBsZWdhY3kgbWVudSBpdGVtc1xyXG5leHBvcnQgZW51bSBMZWdhY3lNZW51U3RhdGUge1xyXG5cclxuICAvLyB2aXNpYmxlIHN0YXRlXHJcbiAgTE1fU1RBVEVfVklTSUJMRSA9ICd2aXNpYmxlJyxcclxuXHJcbiAgLy8gY2hlY2tlZCBzdGF0ZVxyXG4gIExNX1NUQVRFX0NIRUNLRUQgPSAnY2hlY2tlZCcsXHJcblxyXG4gIC8vIGdyYXllZCBzdGF0ZVxyXG4gIExNX1NUQVRFX0dSQVlFRCA9ICdncmF5ZWQnLFxyXG5cclxuICAvLyByYWRpbyBzdGF0ZVxyXG4gIExNX1NUQVRFX1JBRElPID0gJ3JhZGlvJyxcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1lbWJlclVuaXF1ZW5lc3NUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVW5pcXVlV2l0aGluQ3ViZSA9ICdjdWJlLXVuaXF1ZScsXHJcblxyXG4gIC8vIFxyXG4gIFVuaXF1ZVdpdGhpbkhpZXJhcmNoeSA9ICdoaWVyYXJjaHktdW5pcXVlJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5pcXVlV2l0aGluTGV2ZWwgPSAnbGV2ZWwtdW5pcXVlJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5pcXVlV2l0aGluUGFyZW50ID0gJ3BhcmVudC11bmlxdWUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEaW1lbnNpb25UeXBlIHtcclxuXHJcbiAgLy8ganVzdCBhIHJlZ3VsYXIgZGltZW5zaW9uLCBubyBzcGVjaWFsIHNlbWFudGljc1xyXG4gIFJlZ3VsYXJEaW1lbnNpb24gPSAncmVndWxhci1kaW1lbnNpb24nLFxyXG5cclxuICAvLyB0aGUgbWVhc3VyZXMgZGltZW5zaW9uLCB3aGljaCB3ZSBkb24ndCBtb2RlbCBhcyBzdWNoXHJcbiAgTWVhc3VyZURpbWVuc2lvbiA9ICdtZWFzdXJlLWRpbWVuc2lvbicsXHJcblxyXG4gIC8vIGEgdGltZSBkaW1lbnNpb25cclxuICBUaW1lRGltZW5zaW9uID0gJ3RpbWUtZGltZW5zaW9uJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBTVlRfRFNfTk9STUFMID0gJ2RhdGFzb3VyY2UnLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfTk9STUFMX1BSSU1BUlkgPSAnZGF0YXNvdXJjZS1wcmltYXJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgU1ZUX0RTX05PUk1BTF9TRUNPTkRBUlkgPSAnZGF0YXNvdXJjZS1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfRVhUUkFDVCA9ICdleHRyYWN0JyxcclxuXHJcbiAgLy8gXHJcbiAgU1ZUX0RTX0VYVFJBQ1RfUFJJTUFSWSA9ICdleHRyYWN0LXByaW1hcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfRVhUUkFDVF9TRUNPTkRBUlkgPSAnZXh0cmFjdC1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfQ1VCRSA9ICdjdWJlJyxcclxuXHJcbiAgLy8gXHJcbiAgU1ZUX0RTX0NVQkVfUFJJTUFSWSA9ICdjdWJlLXByaW1hcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfQ1VCRV9TRUNPTkRBUlkgPSAnY3ViZS1zZWNvbmRhcnknLFxyXG5cclxuICAvLyBcclxuICBTVlRfRFNfU0VSVkVSID0gJ3NlcnZlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNWVF9EU19TRVJWRVJfUFJJTUFSWSA9ICdzZXJ2ZXItcHJpbWFyeScsXHJcblxyXG4gIC8vIFxyXG4gIFNWVF9EU19TRVJWRVJfU0VDT05EQVJZID0gJ3NlcnZlci1zZWNvbmRhcnknXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2hlbWFJdGVtVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIElUX0RJTUVOU0lPTiA9ICdkaW1lbnNpb24nLFxyXG5cclxuICAvLyBcclxuICBJVF9ISUVSQVJDSFkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfTEVWRUwgPSAnbGV2ZWwnLFxyXG5cclxuICAvLyBcclxuICBJVF9DQVRFR09SSUNBTCA9ICdjYXRlZ29yaWNhbCcsXHJcblxyXG4gIC8vIFxyXG4gIElUX01FQVNVUkUgPSAnbWVhc3VyZScsXHJcblxyXG4gIC8vIFxyXG4gIElUX1ZBTFVFID0gJ3ZhbHVlJyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfR1JPVVAgPSAnZ3JvdXAnLFxyXG5cclxuICAvLyBcclxuICBJVF9GT0xERVIgPSAnZm9sZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfVEFCTEUgPSAndGFibGUnLFxyXG5cclxuICAvLyBcclxuICBJVF9EUklMTFBBVEggPSAnZHJpbGxwYXRoJyxcclxuXHJcbiAgLy8gXHJcbiAgSVRfUEFSQU1FVEVSID0gJ3BhcmFtZXRlcicsXHJcblxyXG4gIC8vIFxyXG4gIElUX0hFQURFUiA9ICdoZWFkZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGUge1xyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfQkxBTksgPSAnYmxhbmsnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfUkVMQVRJT05BTCA9ICdyZWxhdGlvbmFsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0NVQkUgPSAnY3ViZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9EQVRFVElNRSA9ICdkYXRldGltZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9EQVRFID0gJ2RhdGUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfVElNRSA9ICd0aW1lJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX1RFWFQgPSAndGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OVU1CRVIgPSAnbnVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0NVUlJFTkNZID0gJ2N1cnJlbmN5JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0JPT0wgPSAnYm9vbCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9ISUVSQVJDSFkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0xFVkVMID0gJ2xldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0FUVFJJQlVURSA9ICdhdHRyaWJ1dGUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfRk9MREVSX0NMT1NFRCA9ICdmb2xkZXItY2xvc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0ZPTERFUl9PUEVOID0gJ2ZvbGRlci1vcGVuJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0dST1VQID0gJ2dycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0dST1VQID0gJ2ludmFsaWQtZ3JwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX1NWUl9HUlAgPSAnc3ZyLWdycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX1NWUl9HUlAgPSAnaW52YWxpZC1zdnItZ3JwJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX05VTUVSSUNfQklOX08gPSAnbnVtZXJpYy1iaW4tbycsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OVU1FUklDX0JJTl9RID0gJ251bWVyaWMtYmluLXEnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9OVU1FUklDX0JJTiA9ICdpbnZhbGlkLW51bWVyaWMtYmluJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0RSSUxMUEFUSCA9ICdkcmlsbHBhdGgnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfVkFMSURfU1lTR1JQID0gJ3ZhbGlkLXN5c2dycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX1NZU0dSUCA9ICdpbnZhbGlkLXN5c2dycCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9DQVRfQklOID0gJ2NhdC1iaW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfQ0FUX0JJTl9HRU9HQVBISUNfTyA9ICdjYXQtYmluLWdlb2dhcGhpYy1vJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0NBVF9CSU5fR0VPR0FQSElDX1EgPSAnY2F0LWJpbi1nZW9nYXBoaWMtcScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0NBVF9CSU4gPSAnaW52YWxpZC1jYXQtYmluJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0lOVkFMSURfQ0FUX0JJTl9HRU9HQVBISUNfTyA9ICdpbnZhbGlkLWNhdC1iaW4tZ2VvZ2FwaGljLW8nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9DQVRfQklOX0dFT0dBUEhJQ19RID0gJ2ludmFsaWQtY2F0LWJpbi1nZW9nYXBoaWMtcScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9HRU9HUkFQSElDID0gJ2dlb2dyYXBoaWMnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9HRU9HUkFQSElDX08gPSAnaW52YWxpZC1nZW9ncmFwaGljLW8nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9HRU9HUkFQSElDX1EgPSAnaW52YWxpZC1nZW9ncmFwaGljLXEnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSURFTlRfU0VUID0gJ2lkZW50LXNldCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0lERU5UX1NFVCA9ICdpbnZhbGlkLWlkZW50LXNldCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9UQUJMRSA9ICd0YWJsZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OT05FID0gJ25vbmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0JMQU5LID0gJ2N1YmUtbS1ibGFuaycsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0ZPTERFUl9DTE9TRUQgPSAnY3ViZS1tLWZvbGRlci1jbG9zZWQnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9GT0xERVJfT1BFTiA9ICdjdWJlLW0tZm9sZGVyLW9wZW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9EQVRFVElNRSA9ICdjdWJlLW0tZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9EQVRFID0gJ2N1YmUtbS1kYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVfX1NWVF9DVUJFX01fVElNRSA9ICdjdWJlLW0tdGltZScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX1RFWFQgPSAnY3ViZS1tLXRleHQnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9OVU1CRVIgPSAnY3ViZS1tLW51bWJlcicsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0NVUlJFTkNZID0gJ2N1YmUtbS1jdXJyZW5jeScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX0JPT0xFQU4gPSAnY3ViZS1tLWJvb2xlYW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9HRU9HUkFQSElDID0gJ2N1YmUtbS1nZW9ncmFwaGljJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfQkxBTksgPSAnY3ViZS1kLWJsYW5rJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9ISUVSQVJDSFkgPSAnY3ViZS1kLWhpZXJhcmNoeScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfTEVWRUwgPSAnY3ViZS1kLWxldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9ISUVSX0NBTEMgPSAnY3ViZS1kLWhpZXItY2FsYycsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfTFZMX0NBTEMgPSAnY3ViZS1kLWx2bC1jYWxjJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9ISUVSX0dFTyA9ICdjdWJlLWQtaGllci1nZW8nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0hJRVJfR0VPX0NVU1RPTSA9ICdjdWJlLWQtaGllci1nZW8tY3VzdG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9GT0xERVJfQ0xPU0VEID0gJ2N1YmUtZC1mb2xkZXItY2xvc2VkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9GT0xERVJfT1BFTiA9ICdjdWJlLWQtZm9sZGVyLW9wZW4nLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0FUVFJJQlVURSA9ICdjdWJlLWQtYXR0cmlidXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9URVhUID0gJ2N1YmUtZC10ZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9EQVRFVElNRSA9ICdjdWJlLWQtZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0RBVEVUSU1FX0lOVkFMSUQgPSAnY3ViZS1kLWRhdGV0aW1lLWludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0RBVEUgPSAnY3ViZS1kLWRhdGUnLFxyXG5cclxuICAvLyBcclxuICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0RBVEVfSU5WQUxJRCA9ICdjdWJlLWQtZGF0ZS1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDID0gJ2N1YmUtZC1nZW9ncmFwaGljJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDX0lOVkFMSUQgPSAnY3ViZS1kLWdlb2dyYXBoaWMtaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfR0VPR1JBUEhJQ19DVVNUT00gPSAnY3ViZS1kLWdlb2dyYXBoaWMtY3VzdG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDX0NVU1RPTV9JTlZBTElEID0gJ2N1YmUtZC1nZW9ncmFwaGljLWN1c3RvbS1pbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9WQVJZSU5HID0gJ2N1YmUtZC12YXJ5aW5nJyxcclxuXHJcbiAgLy8gXHJcbiAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9VREEgPSAnY3ViZS1kLXVkYScsXHJcblxyXG4gIC8vIFxyXG4gIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfTlVNQkVSID0gJ2N1YmUtZC1udW1iZXInXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyB0aGUgc2VsZWN0aW9uIG1vZGU6IFNpbmdsZSB8IE11bHRpcGxlLlxyXG5leHBvcnQgZW51bSBIU01TZWxlY3Rpb25Nb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgU2luZ2xlID0gJ3NlbGVjdGlvbi1tb2RlLXNpbmdsZScsXHJcblxyXG4gIC8vIFxyXG4gIE11bHRpcGxlID0gJ3NlbGVjdGlvbi1tb2RlLW11bHRpcGxlJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgd2hhdCBkZWZhdWx0IG1lbWJlciB0byB1c2UgZm9yIGEgaGllcmFyY2hpY2FsIGZpZWxkLlxyXG5leHBvcnQgZW51bSBIU01EZWZhdWx0TWVtYmVyVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVzZURlZmF1bHRNZW1iZXIgPSAndXNlLWRlZmF1bHQtbWVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVXNlQWxsTWVtYmVyID0gJ3VzZS1hbGwtbWVtYmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVXNlU2VsZWN0ZWRNZW1iZXIgPSAndXNlLXNlbGVjdGVkLW1lbWJlcidcclxufVxyXG5cclxuLy8gSGllcmFyY2hpY2FsIHNlbGVjdCBtb2RlbCBwcmVzZW50YXRpb24gbGF5ZXIgbm90aWZpY2F0aW9uLlxyXG5leHBvcnQgZW51bSBIU01Ob3RpZmljYXRpb25UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgVXBkYXRlZCA9ICdoc20tbm90aWZpY2F0aW9uLXVwZGF0ZWQnLFxyXG5cclxuICAvLyBcclxuICBNaXNzaW5nTWVtYmVycyA9ICdoc20tbm90aWZpY2F0aW9uLW1pc3NpbmctbWVtYmVycydcclxufVxyXG5cclxuLy8gVHlwZSBvZiBoaWVyYXJjaHkgY29tbWFuZCBzZWxlY3Rpb24gdG8gYmUgcGVyZm9ybWVkLlxyXG5leHBvcnQgZW51bSBIU01TZWxlY3Rpb25SZXF1ZXN0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdE1vZGUgPSAnaHNtLXNlbGVjdGlvbi1yZXF1ZXN0LXNlbGVjdC1tb2RlJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVtYmVyRGVzY2VuZGFudHNTdGF0ZSA9ICdoc20tc2VsZWN0aW9uLXJlcXVlc3QtZGVzY2VuZGFudHMtc3RhdGUnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZE1lbWJlclR1cGxlID0gJ2hzbS1zZWxlY3Rpb24tcmVxdWVzdC1zZWxlY3RlZC1tZW1iZXItdHVwbGUnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZE1lbWJlckNhcHRpb24gPSAnaHNtLXNlbGVjdGlvbi1yZXF1ZXN0LXNlbGVjdGVkLW1lbWJlci1jYXB0aW9uJ1xyXG59XHJcblxyXG4vLyBUeXBlIG9mIGhpZXJhcmNoeSBtZW1iZXIgc2VsZWN0aW9uIHRvIGJlIHBlcmZvcm1lZC5cclxuZXhwb3J0IGVudW0gSFNNTWVtYmVyU2VsZWN0UmVxdWVzdFR5cGUge1xyXG5cclxuICAvLyBcclxuICBTZWxlY3RNZW1iZXIgPSAnaHNtLW1lbWJlci1yZXF1ZXN0LXNlbGVjdC1tZW1iZXInLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RTdWJ0cmVlID0gJ2hzbS1tZW1iZXItcmVxdWVzdC1zZWxlY3Qtc3VidHJlZScsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdExldmVsID0gJ2hzbS1tZW1iZXItcmVxdWVzdC1zZWxlY3QtbGV2ZWwnLFxyXG5cclxuICAvLyBcclxuICBNZW1iZXJTZWxlY3QgPSAnaHNtLW1lbWJlci1yZXF1ZXN0LW1lbWJlci1zZWxlY3QnLFxyXG5cclxuICAvLyBcclxuICBNZW1iZXJMZXZlbCA9ICdoc20tbWVtYmVyLXJlcXVlc3QtbWVtYmVyLWxldmVsJ1xyXG59XHJcblxyXG4vLyBIaWVyYXJjaHkgbGV2ZWwgc2VsZWN0aW9uIHN0YXRlLlxyXG5leHBvcnQgZW51bSBIU01MZXZlbFNlbGVjdGlvblN0YXRlIHtcclxuXHJcbiAgLy8gXHJcbiAgQWxsU2VsZWN0ZWQgPSAnaHNtLWFsbC1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIE5vbmVTZWxlY3RlZCA9ICdoc20tbm9uZS1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNvbWVTZWxlY3RlZCA9ICdoc20tc29tZS1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFVzZWQgd2hlbiBhIHF1ZXJ5IGlzIG1hZGUgb2YgbGV2ZWxzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGdpdmVuIHN1YnRyZWUuIFdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggdGhhdCBmcm9tIG5vbmUgc2VsZWN0ZWQgd2hpY2ggaW1wbGllcyB0aGF0IG1lbWJlcnMgZXhpc3QgYnV0IGFyZSBub3Qgc2VsZWN0ZWQuXHJcbiAgVW5rbm93blNlbGVjdGVkID0gJ2hzbS11bmtub3duLXNlbGVjdGVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gSFNNTWVtYmVyTG9hZFN0YXRlIHtcclxuXHJcbiAgLy8gXHJcbiAgQWxsTG9hZGVkID0gJ2hzbS1hbGwtbG9hZGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTm9uZUxvYWRlZCA9ICdoc20tbm9uZS1sb2FkZWQnLFxyXG5cclxuICAvLyBcclxuICBTb21lTG9hZGVkID0gJ2hzbS1zb21lLWxvYWRlZCdcclxufVxyXG5cclxuLy8gUmV0dXJuIHZhbHVlIGZyb20gQ29ubmVjdGlvblN0YXRlQ29udHJvbGxlciBjb25uZWN0IG1ldGhvZHNcclxuZXhwb3J0IGVudW0gQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQge1xyXG5cclxuICAvLyBBbGwgZGF0YSBzb3VyY2VzIHJlcXVlc3RlZCBhcmUgY29ubmVjdGVkLlxyXG4gIENBUl9Db25uZWN0ZWQgPSAnY29ubmVjdGVkJyxcclxuXHJcbiAgLy8gTm90IGFsbCBkYXRhIHNvdXJjZXMgYXJlIGNvbm5lY3RlZC5cclxuICBDQVJfTm90Q29ubmVjdGVkID0gJ25vdC1jb25uZWN0ZWQnLFxyXG5cclxuICAvLyBUaGUgdXNlciBpbnRlcnJ1cHRlZCB0aGUgY29ubmVjdGlvbiBmbG93IHRvIGVkaXQgYSBjb25uZWN0aW9uLlxyXG4gIENBUl9Vc2VyRWRpdENvbm5lY3Rpb24gPSAndXNlci1lZGl0LWNvbm5lY3Rpb24nLFxyXG5cclxuICAvLyBUaGUgY29ubmVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoZSBjdXJyZW50IHBsYXRmb3JtLlxyXG4gIENBUl9Db25uZWN0aW9uTm90U3VwcG9ydGVkID0gJ2Nvbm5lY3Rpb24tbm90LXN1cHBvcnRlZCdcclxufVxyXG5cclxuLy8gUmV0dXJuIHZhbHVlIGZyb20gQ29ubmVjdFRvRGF0YVNlcnZlclNvdXJjZUNvbW1hbmQ6OkRvXHJcbmV4cG9ydCBlbnVtIERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0IHtcclxuXHJcbiAgLy8gVGhlIGRhdGEgc291cmNlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBhZGRlZC5cclxuICBEU0NSX1N1Y2Nlc3MgPSAnc3VjY2VzcycsXHJcblxyXG4gIC8vIEVycm9yIHRoYXQgd2FzIGhhbmRsZWQuIFRoZXJlJ3Mgbm8gbW9yZSB0byBkbyAoZXguIGNhbmNlbCwgb3IgYW4gZXhjZXB0aW9uIHRoYXQgdGhlIGNvbW1hbmQganVzdCBwcmludGVkIHRvIHRoZSBlcnJvciBkaWFsb2cpLlxyXG4gIERTQ1JfRmFpbHVyZSA9ICdmYWlsdXJlJyxcclxuXHJcbiAgLy8gVHJ5IGFnYWluIGFmdGVyIG1ha2luZyBhIG5ldyB3b3JrYm9vay5cclxuICBEU0NSX1JlcXVpcmVzV29ya2Jvb2tEb2MgPSAncmVxdWlyZXMtd29ya2Jvb2snLFxyXG5cclxuICAvLyBUcnkgYWdhaW4gYWZ0ZXIgbG9nZ2luZyBiYWNrIG9uIHRvIFRhYmxlYXUgc2VydmVyLlxyXG4gIERTQ1JfUmVxdWlyZXNBdXRoZW50aWNhdGlvbiA9ICdyZXF1aXJlcy1hdXRoZW50aWNhdGlvbicsXHJcblxyXG4gIC8vIFRyeSBhZ2FpbiBhZnRlciBnZXR0aW5nIGRhdGFiYXNlIGNyZWRlbnRpYWxzIGZyb20gdGhlIHVzZXIuIFBhc3MgdGhlbSBpbiB0aHJvdWdoIHRoZSBEUElfRGF0YXNvdXJjZVVzZXJuYW1lIGFuZCB0aGUgRFBJX0RhdGFzb3VyY2VQYXNzd29yZCBwYXJhbWV0ZXJzLlxyXG4gIERTQ1JfUmVxdWlyZXNEQkNyZWRlbnRpYWxzID0gJ3JlcXVpcmVzLWRiLWNyZWRlbnRpYWxzJyxcclxuXHJcbiAgLy8gVHJ5IGFnYWluIGFmdGVyIGFzc29jaWF0aW5nIGFuIE9BdXRoIGtleSBmcm9tIHRoZSB1c2VyIGtleWNoYWluIHdpdGggdGhlIGRhdGEgc291cmNlLlxyXG4gIERTQ1JfUmVxdWlyZXNPQXV0aEtleUFzc29jaWF0aW9uID0gJ3JlcXVpcmVzLW9hdXRoLWtleS1hc3NvY2lhdGlvbicsXHJcblxyXG4gIC8vIFRoZSBPQXV0aCBjcmVkZW50aWFscyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFzb3VyY2UgYXJlIG5vdCB2YWxpZC5cclxuICBEU0NSX1JlcXVpcmVzVmFsaWRPQXV0aEtleSA9ICdyZXF1aXJlcy12YWxpZC1vYXV0aC1rZXknLFxyXG5cclxuICAvLyBNdWx0aXBsZSBsZWFmIGNvbm5lY3Rpb25zIHdpdGhpbiBhIGZlZGVyYXRlZCBkYXRhIHNvdXJjZSBjb250YWluIGVycm9ycyAoZS5nLiwgbXVsdGlwbGUgbGVhZnMgbWlnaHQgbmVlZCBjcmVkZW50aWFscykuXHJcbiAgRFNDUl9GZWRlcmF0ZWRFcnJvciA9ICdmZWRlcmF0ZWQtZXJyb3InXHJcbn1cclxuXHJcbi8vIFR5cGUgb2YgZXJyb3IgZW5jb3VudGVyZWQgd2hpbGUgYXR0ZW1wdGluZyB0byBjb25uZWN0LlxyXG5leHBvcnQgZW51bSBDb25uZWN0aW9uRXJyb3JUeXBlIHtcclxuXHJcbiAgLy8gQXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgYXJlIG5lZWRlZCBpbiBvcmRlciB0byBjb25uZWN0LlxyXG4gIENFVF9OZWVkc0F1dGhlbnRpY2F0aW9uID0gJ25lZWRzLWF1dGhlbnRpY2F0aW9uJyxcclxuXHJcbiAgLy8gVGhlIGRhdGEgc291cmNlIGlzIHByb3ZpZGVkIGJ5IERhdGEgU2VydmVyLCBidXQgbm8gRGF0YSBTZXJ2ZXIgY29ubmVjdGlvbiBpcyBwcmVzZW50LlxyXG4gIENFVF9EYXRhU2VydmVyRGlzY29ubmVjdGVkID0gJ2RhdGEtc2VydmVyLWRpc2Nvbm5lY3RlZCcsXHJcblxyXG4gIC8vIEFuIGV4Y2VwdGlvbiBvY2N1cnJlZCB3aGlsZSBjb25uZWN0aW5nLiAgVGhpcyBjb3VsZCBiZSBjYXVzZWQgYnkgYSBiYWQgcGFzc3dvcmQsIG9yIHdyb25nIHBhdGgvdXJsLlxyXG4gIENFVF9FeGNlcHRpb25XaGlsZUNvbm5lY3RpbmcgPSAnZXhjZXB0aW9uLXdoaWxlLWNvbm5lY3RpbmcnLFxyXG5cclxuICAvLyBBbiBleGNlcHRpb24gb2NjdXJyZWQgd2hpbGUgdHJ5aW5nIHRvIGNvbm5lY3QgdGhlIGRhdGEgc291cmNlIGFzIGEgd2hvbGUuXHJcbiAgQ0VUX0V4Y2VwdGlvbldoaWxlQ29ubmVjdGluZ0RhdGFTb3VyY2UgPSAnZXhjZXB0aW9uLXdoaWxlLWNvbm5lY3RpbmctZGF0YS1zb3VyY2UnLFxyXG5cclxuICAvLyBUaGUgY29ubmVjdGlvbiBpcyBub3Qgc3VwcG9ydGVkLlxyXG4gIENFVF9Db25uZWN0aW9uTm90U3VwcG9ydGVkID0gJ2Nvbm5lY3Rpb24tbm90LXN1cHBvcnRlZCcsXHJcblxyXG4gIC8vIEFuIHVuZXhwZWN0ZWQgZXhjZXB0aW9uIG9jY3VycmVkLlxyXG4gIENFVF9VbmV4cGVjdGVkRXhjZXB0aW9uID0gJ3VuZXhwZWN0ZWQtZXhjZXB0aW9uJ1xyXG59XHJcblxyXG4vLyBpZGVudGlmaWVzIHRoZSBwaWVjZSBvZiB0aGUgdmlzdWFsXHJcbmV4cG9ydCBlbnVtIFZpc3VhbFBhcnQge1xyXG5cclxuICAvLyBkZWZhdWx0IGJ1Y2tldCBpZiB0eXBlIGlzbid0IHNwZWNpZmllZFxyXG4gIFZQX01pc2MgPSAnbWlzYycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX0Fubm90YXRpb25zID0gJ2Fubm90YXRpb25zJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQXhpc1J1bGVzID0gJ2F4aXMtcnVsZXMnLFxyXG5cclxuICAvLyBcclxuICBWUF9Ub3BBeGlzID0gJ3RvcC1heGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQm90dG9tQXhpcyA9ICdib3R0b20tYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX0xlZnRBeGlzID0gJ2xlZnQtYXhpcycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX1JpZ2h0QXhpcyA9ICdyaWdodC1heGlzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQmFja2dyb3VuZCA9ICdiYWNrZ3JvdW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQm9yZGVycyA9ICdib3JkZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQ2FwdGlvbiA9ICdjYXB0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfQ2VsbEJvcmRlcnMgPSAnY2VsbC1ib3JkZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfRGVjb3JhdGlvbiA9ICdkZWNvcmF0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfRHJvcExpbmVzID0gJ2Ryb3AtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBWUF9YTGFiZWxzID0gJ3gtbGFiZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfWUxhYmVscyA9ICd5LWxhYmVscycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX0xlZ2VuZHMgPSAnbGVnZW5kcycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX01hcmtzID0gJ21hcmtzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfTWFya0xhYmVscyA9ICdtYXJrLWxhYmVscycsXHJcblxyXG4gIC8vIFxyXG4gIFZQX01hcmtUcmFpbHMgPSAnbWFyay10cmFpbHMnLFxyXG5cclxuICAvLyBcclxuICBWUF9SZWZlcmVuY2VCYW5kcyA9ICdyZWYtYmFuZHMnLFxyXG5cclxuICAvLyBcclxuICBWUF9SZWZlcmVuY2VMaW5lcyA9ICdyZWYtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBWUF9QYW5lQm9yZGVycyA9ICdwYW5lLWJvcmRlcnMnLFxyXG5cclxuICAvLyBcclxuICBWUF9TY3JvbGxCYXJzID0gJ3Njcm9sbC1iYXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfVGl0bGUgPSAndGl0bGUnLFxyXG5cclxuICAvLyBcclxuICBWUF9UcmVuZExpbmVzID0gJ3RyZW5kLWxpbmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgVlBfVXBwZXJNYXBMYXllcnMgPSAndXBwZXItbWFwLWxheWVycydcclxufVxyXG5cclxuLy8gRGV0YWlscyBvZiB0aGUgcGFydCB3aXRoaW4gYW4gRWxlbWVudElkXHJcbmV4cG9ydCBlbnVtIFNjZW5lTW9kZWxUeXBlc0RldGFpbCB7XHJcblxyXG4gIC8vIFxyXG4gIE5vRGV0YWlsID0gJ25vLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtEZXRhaWwgPSAnbWFyay1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMYWJlbERldGFpbCA9ICdsYWJlbC1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMYWJlbEhhbmRsZURldGFpbCA9ICdsYWJlbC1oYW5kbGUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgVG9wTGVmdEhhbmRsZURldGFpbCA9ICd0b3AtbGVmdC1oYW5kbGUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgVG9wTWlkSGFuZGxlRGV0YWlsID0gJ3RvcC1taWQtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRvcFJpZ2h0SGFuZGxlRGV0YWlsID0gJ3RvcC1yaWdodC1oYW5kbGUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgUmlnaHRNaWRIYW5kbGVEZXRhaWwgPSAncmlnaHQtbWlkLWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBCb3R0b21SaWdodEhhbmRsZURldGFpbCA9ICdib3R0b20tcmlnaHQtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIEJvdHRvbU1pZEhhbmRsZURldGFpbCA9ICdib3R0b20tbWlkLWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBCb3R0b21MZWZ0SGFuZGxlRGV0YWlsID0gJ2JvdHRvbS1sZWZ0LWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMZWZ0TWlkSGFuZGxlRGV0YWlsID0gJ2xlZnQtbWlkLWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBMaW5lRGV0YWlsID0gJ2xpbmUtZGV0YWlsJyxcclxuXHJcbiAgLy8gXHJcbiAgQXJyb3dIYW5kbGVEZXRhaWwgPSAnYXJyb3ctaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRleHRDZW50ZXJIYW5kbGVEZXRhaWwgPSAndGV4dC1jZW50ZXItaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRleHRCb3hIYW5kbGVEZXRhaWwgPSAndGV4dC1ib3gtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBcnJvd0hhbmRsZURldGFpbCA9ICdtYXJrLWFycm93LWhhbmRsZS1kZXRhaWwnLFxyXG5cclxuICAvLyBcclxuICBNYXJrTW92YWJsZUhhbmRsZURldGFpbCA9ICdtYXJrLW1vdmFibGUtaGFuZGxlLWRldGFpbCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtBbmNob3JEZXRhaWwgPSAnbWFyay1hbmNob3ItZGV0YWlsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NlbmVNb2RlbFR5cGVzSGl0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIE5vSGl0ID0gJ25vLWhpdCcsXHJcblxyXG4gIC8vIFxyXG4gIEFyZWFIaXQgPSAnYXJlYS1oaXQnLFxyXG5cclxuICAvLyBcclxuICBOZWFySGl0ID0gJ25lYXItaGl0JyxcclxuXHJcbiAgLy8gXHJcbiAgRXhhY3RIaXQgPSAnZXhhY3QtaGl0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NlbmVNb2RlbFR5cGVzSGl0VGVzdFN0eWxlIHtcclxuXHJcbiAgLy8gXHJcbiAgQm91bmRzVGVzdCA9ICdib3VuZHMtdGVzdCcsXHJcblxyXG4gIC8vIFxyXG4gIEV4YWN0VGVzdCA9ICdleGFjdC10ZXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgUmFkaWFsRGlzdGFuY2VUZXN0ID0gJ3JhZGlhbC1kaXN0YW5jZS10ZXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgTGFiZWxUZXN0ID0gJ2xhYmVsLXRlc3QnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTY2VuZU1vZGVsVHlwZXNIaXRUZXN0RmxhZ3Mge1xyXG5cclxuICAvLyBcclxuICBIaXRUZXN0QWxsID0gJ2hpdC10ZXN0LWFsbCcsXHJcblxyXG4gIC8vIFxyXG4gIEhpdFRlc3RJZ25vcmVMYWJlbHMgPSAnaGl0LXRlc3QtaWdub3JlLWxhYmVscycsXHJcblxyXG4gIC8vIFxyXG4gIEhpdFRlc3RJZ25vcmVBbm5vdGF0aW9ucyA9ICdoaXQtdGVzdC1pZ25vcmUtYW5ub3RhdGlvbnMnLFxyXG5cclxuICAvLyBcclxuICBIaXRUZXN0Rm9yT3ZlcmxheSA9ICdoaXQtdGVzdC1mb3Itb3ZlcmxheSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEFubm90YXRlRW51bSB7XHJcblxyXG4gIC8vIFxyXG4gIEFFX01hcmsgPSAnbWFyaycsXHJcblxyXG4gIC8vIFxyXG4gIEFFX1BvaW50ID0gJ3BvaW50JyxcclxuXHJcbiAgLy8gXHJcbiAgQUVfQXJlYSA9ICdhcmVhJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0VudW0ge1xyXG5cclxuICAvLyBcclxuICBNRV9BdXRvID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBNRV9PbiA9ICdvbicsXHJcblxyXG4gIC8vIFxyXG4gIE1FX09mZiA9ICdvZmYnLFxyXG5cclxuICAvLyBcclxuICBNRV9DbGVhciA9ICdjbGVhcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFpvb21MZXZlbCB7XHJcblxyXG4gIC8vIFxyXG4gIFpPT01fRU5USVJFX1ZJRVcgPSAnem9vbS1lbnRpcmUtdmlldycsXHJcblxyXG4gIC8vIFxyXG4gIFpPT01fRklUX1dJRFRIID0gJ3pvb20tZml0LXdpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgWk9PTV9GSVRfSEVJR0hUID0gJ3pvb20tZml0LWhlaWdodCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEFjdGlvblR5cGUge1xyXG5cclxuICAvLyBcclxuICBBVF9Vbmtub3duID0gJ3Vua25vd24nLFxyXG5cclxuICAvLyBcclxuICBBVF9CcnVzaCA9ICdicnVzaCcsXHJcblxyXG4gIC8vIFxyXG4gIEFUX0ZpbHRlciA9ICdmaWx0ZXInLFxyXG5cclxuICAvLyBcclxuICBBVF9VUkwgPSAndXJsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlbGZEcm9wQWN0aW9uIHtcclxuXHJcbiAgLy8gXHJcbiAgU2RhUmVwbGFjZSA9ICdyZXBsYWNlJyxcclxuXHJcbiAgLy8gXHJcbiAgU2RhQ29tYmluZSA9ICdjb21iaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgU2RhSW5zZXJ0ID0gJ2luc2VydCcsXHJcblxyXG4gIC8vIFxyXG4gIFNkYVN3YXAgPSAnc3dhcCcsXHJcblxyXG4gIC8vIFxyXG4gIFNkYVJlcGxhY2VBbGwgPSAncmVwbGFjZS1hbGwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTaGVsZkRyb3BDb250ZXh0IHtcclxuXHJcbiAgLy8gXHJcbiAgU2hlbGZEcm9wQ29udGV4dF9Ob25lID0gJ25vbmUnLFxyXG5cclxuICAvLyBcclxuICBTaGVsZkRyb3BDb250ZXh0X0NhdGVnb3JpY2FsID0gJ2NhdGVnb3JpY2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgU2hlbGZEcm9wQ29udGV4dF9RdWFudGl0YXRpdmUgPSAncXVhbnRpdGF0aXZlJ1xyXG59XHJcblxyXG4vLyBEcmFnL0Ryb3Agc291cmNlIGFuZCB0YXJnZXRcclxuZXhwb3J0IGVudW0gRHJhZ0Ryb3BUeXBlIHtcclxuXHJcbiAgLy8gZHJhZyBmcm9tIG9yIGRyb3Agb250byB2aXpcclxuICBEcmFnRHJvcF9WaXogPSAnZHJhZy1kcm9wLXZpeicsXHJcblxyXG4gIC8vIGRyYWcgZnJvbSBvciBkcm9wIG9udG8gc2hlbGZcclxuICBEcmFnRHJvcF9TaGVsZiA9ICdkcmFnLWRyb3Atc2hlbGYnLFxyXG5cclxuICAvLyBkcmFnIGZyb20gb3IgZHJvcCBvbnRvIHNjaGVtYVxyXG4gIERyYWdEcm9wX1NjaGVtYSA9ICdkcmFnLWRyb3Atc2NoZW1hJyxcclxuXHJcbiAgLy8gZHJhZyBmcm9tIG9yIGRyb3Agb250byBub3doZXJlXHJcbiAgRHJhZ0Ryb3BfTm9uZSA9ICdkcmFnLWRyb3Atbm9uZScsXHJcblxyXG4gIC8vIGRyYWcgZnJvbSBvciBkcm9wIG9udG8gY2FsY3VsYXRpb24gZWRpdG9yXHJcbiAgRHJhZ0Ryb3BfQ2FsY3VsYXRpb25FZGl0b3IgPSAnZHJhZy1kcm9wLWNhbGN1bGF0aW9uLWVkaXRvcicsXHJcblxyXG4gIC8vIGRyYWcgZnJvbSBwaXZvdCB3aW5kb3dcclxuICBEcmFnRHJvcF9QaXZvdCA9ICdkcmFnLWRyb3AtcGl2b3QnXHJcbn1cclxuXHJcbi8vIERpYWxvZyB0eXBlIHJlbGF0ZWQgdG8gcmVkaXJlY3QgYWN0aW9uIHJlcXVpcmVkIGJ5IFVJXHJcbmV4cG9ydCBlbnVtIENvbW1hbmRSZWRpcmVjdFR5cGUge1xyXG5cclxuICAvLyBhZGQgbmV3IGRhdGEgY29ubmVjdGlvbiBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfQWRkRGF0YUNvbm5lY3Rpb24gPSAnY29tbWFuZC1yZWRpcmVjdC1hZGQtZGF0YS1jb25uZWN0aW9uJyxcclxuXHJcbiAgLy8gY3JlYXRlIGRyaWxsIHBhdGggZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X0FkZERyaWxsUGF0aCA9ICdjb21tYW5kLXJlZGlyZWN0LWFkZC1kcmlsbC1wYXRoJyxcclxuXHJcbiAgLy8gY29uZmlybWF0aW9uIGRpYWxvZ1xyXG4gIENvbW1hbmRSZWRpcmVjdF9Db25maXJtYXRpb24gPSAnY29tbWFuZC1yZWRpcmVjdC1jb25maXJtYXRpb24nLFxyXG5cclxuICAvLyBzaG93cyB0aGUgZm9ybWF0IHdvcmtib29rIHBhbmVcclxuICBDb21tYW5kUmVkaXJlY3RfRm9ybWF0V29ya2Jvb2sgPSAnY29tbWFuZC1yZWRpcmVjdC1mb3JtYXQtd29ya2Jvb2snLFxyXG5cclxuICAvLyBub3RpZmljYXRpb24gZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X05vdGlmaWNhdGlvbiA9ICdjb21tYW5kLXJlZGlyZWN0LW5vdGlmaWNhdGlvbicsXHJcblxyXG4gIC8vIHNob3cgbnVtYmVyIGZvcm1hdHRpbmcgZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X051bWJlckZvcm1hdCA9ICdjb21tYW5kLXJlZGlyZWN0LW51bWJlci1mb3JtYXQnLFxyXG5cclxuICAvLyBmdWxsLWZlYXR1cmVkIGVkaXRvclxyXG4gIENvbW1hbmRSZWRpcmVjdF9FZGl0ID0gJ2NvbW1hbmQtcmVkaXJlY3QtZWRpdCcsXHJcblxyXG4gIC8vIHF1aWNrIGVkaXRvclxyXG4gIENvbW1hbmRSZWRpcmVjdF9RdWlja0VkaXQgPSAnY29tbWFuZC1yZWRpcmVjdC1xdWljay1lZGl0JyxcclxuXHJcbiAgLy8gaW5saW5lIHJlbmFtZSBmaWVsZFxyXG4gIENvbW1hbmRSZWRpcmVjdF9SZW5hbWVGaWVsZCA9ICdjb21tYW5kLXJlZGlyZWN0LXJlbmFtZS1maWVsZCcsXHJcblxyXG4gIC8vIHJlbmFtZSBkcmlsbCBwYXRoIGRpYWxvZ1xyXG4gIENvbW1hbmRSZWRpcmVjdF9SZW5hbWVEcmlsbFBhdGggPSAnY29tbWFuZC1yZWRpcmVjdC1yZW5hbWUtZHJpbGwtcGF0aCcsXHJcblxyXG4gIC8vIHJlbmFtZSBzaGVldCBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfUmVuYW1lU2hlZXQgPSAnY29tbWFuZC1yZWRpcmVjdC1yZW5hbWUtc2hlZXQnLFxyXG5cclxuICAvLyBlZGl0IHdlYiB6b25lIHVybFxyXG4gIENvbW1hbmRSZWRpcmVjdF9FZGl0V2ViWm9uZVVybCA9ICdjb21tYW5kLXJlZGlyZWN0LWVkaXQtd2ViLXpvbmUtdXJsJyxcclxuXHJcbiAgLy8gZWRpdCBmb3JtYXR0aW5nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X0VkaXRGb3JtYXR0aW5nID0gJ2NvbW1hbmQtcmVkaXJlY3QtZWRpdC1mb3JtYXR0aW5nJyxcclxuXHJcbiAgLy8gY2F0ZWdvcmljYWwgYmluIGVkaXQgZGlhbG9nXHJcbiAgQ29tbWFuZFJlZGlyZWN0X0NhdGVnb3JpY2FsQmluRWRpdCA9ICdjb21tYW5kLXJlZGlyZWN0LWNhdGVnb3JpY2FsLWJpbi1lZGl0JyxcclxuXHJcbiAgLy8gbnVtZXJpYyBiaW4gZWRpdCBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfTnVtZXJpY0JpbkVkaXQgPSAnY29tbWFuZC1yZWRpcmVjdC1udW1lcmljLWJpbi1lZGl0JyxcclxuXHJcbiAgLy8gcmljaCB0ZXh0IGRpYWxvZ1xyXG4gIENvbW1hbmRSZWRpcmVjdF9SaWNoVGV4dCA9ICdjb21tYW5kLXJlZGlyZWN0LXJpY2gtdGV4dCcsXHJcblxyXG4gIC8vIGRlbGV0ZSBzaGVldCBkaWFsb2dcclxuICBDb21tYW5kUmVkaXJlY3RfRGVsZXRlU2hlZXQgPSAnY29tbWFuZC1yZWRpcmVjdC1kZWxldGUtc2hlZXQnLFxyXG5cclxuICAvLyBObyByZWRpcmVjdCByZXF1aXJlZFxyXG4gIENvbW1hbmRSZWRpcmVjdF9Ob25lID0gJ2NvbW1hbmQtcmVkaXJlY3Qtbm9uZSdcclxufVxyXG5cclxuLy8gRGlyZWN0aXZlcyBmb3IgaGV1cmlzdGljYWxseSBpbnRlcnByZXRpbmcgdXNlciBpbnRlbnQgb2YgY29tbWFuZFxyXG5leHBvcnQgZW51bSBIZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvbiB7XHJcblxyXG4gIC8vIERpcmVjdHMgVGFibGVhdSB0byBub3QgcmVpbnRlcnByZXQgc3BlY2lmaWNzIG9mIHRoZSBjb21tYW5kXHJcbiAgRG9Ob3RSZWludGVycHJldENvbW1hbmQgPSAnZG8tbm90LXJlaW50ZXJwcmV0LWNvbW1hbmQnLFxyXG5cclxuICAvLyBEaXJlY3RzIFRhYmxlYXUgdG8gZ3Vlc3MgdGhhdCB3aGVuIHRoZSB1c2VyIHNlbGVjdGVkIGFsbCBpdGVtcyBpbiBhIGZpbHRlciwgdGhlIGludGVudCB3YXMgYWN0dWFsbHkgdG8gc2VsZWN0IEFMTFxyXG4gIENhdGVnb3JpY2FsRmlsdGVyX0luZmVyQWxsV2hlbkV2ZXJ5dGhpbmdTZWxlY3RlZCA9ICdjYXRlZ29yaWNhbC1maWx0ZXItaW5mZXItYWxsLXdoZW4tZXZlcnl0aGluZy1zZWxlY3RlZCdcclxufVxyXG5cclxuLy8gZmlsdGVyIHR5cGVzXHJcbmV4cG9ydCBlbnVtIEZpbHRlclR5cGUge1xyXG5cclxuICAvLyBRdWFudGl0YXRpdmVcclxuICBGTFRSX1F1YW50aXRhdGl2ZSA9ICdRdWFudGl0YXRpdmUnLFxyXG5cclxuICAvLyBDYXRlZ29yaWNhbFxyXG4gIEZMVFJfQ2F0ZWdvcmljYWwgPSAnQ2F0ZWdvcmljYWwnLFxyXG5cclxuICAvLyBIaWVyYXJjaGljYWxcclxuICBGTFRSX0hpZXJhcmNoaWNhbCA9ICdIaWVyYXJjaGljYWwnLFxyXG5cclxuICAvLyBSZWxhdGl2ZSBEYXRlXHJcbiAgRkxUUl9SZWxhdGl2ZURhdGUgPSAnUmVsYXRpdmVEYXRlJyxcclxuXHJcbiAgLy8gUmVsYXRpdmVEYXRlUGlja1xyXG4gIEZMVFJfUmVsYXRpdmVEYXRlUGljayA9ICdSZWxhdGl2ZURhdGVQaWNrJyxcclxuXHJcbiAgLy8gTm90U3BlY2lmaWVkXHJcbiAgRkxUUl9EZWZhdWx0ID0gJ0ZpbHRlckRlZmF1bHQnXHJcbn1cclxuXHJcbi8vIFBhcmFtZXRlciBlcnJvcnNcclxuZXhwb3J0IGVudW0gUGFyYW1ldGVyRXJyb3Ige1xyXG5cclxuICAvLyBmaWVsZCBhZ2dyZWdhdGlvbiBpcyBpbnZhbGlkXHJcbiAgSW52YWxpZEFnZ0ZpZWxkcyA9ICdpbnZhbGlkLWFnZy1maWVsZHMnLFxyXG5cclxuICAvLyBmaWVsZCBpcyBpbnZhbGlkXHJcbiAgSW52YWxpZEZpZWxkcyA9ICdpbnZhbGlkLWZpZWxkcycsXHJcblxyXG4gIC8vIGZpbHRlciB2YWx1ZXMgYXJlIGludmFsaWRcclxuICBJbnZhbGlkRmlsdGVyVmFsdWVzID0gJ2ludmFsaWQtZmlsdGVyLXZhbHVlcycsXHJcblxyXG4gIC8vIGRhdGUgdmFsdWUgaXMgaW52YWxpZFxyXG4gIEludmFsaWREYXRlcyA9ICdpbnZhbGlkLWRhdGVzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2VsZWN0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNUX1R1cGxlcyA9ICd0dXBsZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9Ob2RlcyA9ICdub2RlcycsXHJcblxyXG4gIC8vIFxyXG4gIFNUX1RyZW5kTGluZXMgPSAndHJlbmQtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9MZWdlbmRJdGVtcyA9ICdsZWdlbmQtaXRlbXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9SZWZMaW5lcyA9ICdyZWYtbGluZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9Bbm5vdGF0aW9ucyA9ICdhbm5vdGF0aW9ucycsXHJcblxyXG4gIC8vIFxyXG4gIFNUX09yaWVudGVkTm9kZXMgPSAnb3JpZW50ZWQtbm9kZXMnLFxyXG5cclxuICAvLyBcclxuICBTVF9TaGVsZkZpZWxkcyA9ICdzaGVsZi1maWVsZHMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTZWxlY3Rpb25VcGRhdGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgU1VfQUREID0gJ3NlbGVjdC1hZGQnLFxyXG5cclxuICAvLyBcclxuICBTVV9SRU1PVkUgPSAnc2VsZWN0LXJlbW92ZScsXHJcblxyXG4gIC8vIFxyXG4gIFNVX1JFUExBQ0UgPSAnc2VsZWN0LXJlcGxhY2UnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBTZWxlY3RPcHRpb25zIHtcclxuXHJcbiAgLy8gTm8ga2V5IGRvd25cclxuICBTZWxlY3RPcHRpb25zU2ltcGxlID0gJ3NlbGVjdC1vcHRpb25zLXNpbXBsZScsXHJcblxyXG4gIC8vIEN0cmwga2V5IGRvd25cclxuICBTZWxlY3RPcHRpb25zVG9nZ2xlID0gJ3NlbGVjdC1vcHRpb25zLXRvZ2dsZScsXHJcblxyXG4gIC8vIFNoaWZ0IGtleSBkb3duXHJcbiAgU2VsZWN0T3B0aW9uc1JhbmdlID0gJ3NlbGVjdC1vcHRpb25zLXJhbmdlJyxcclxuXHJcbiAgLy8gVXN1YWxseSB0cmlnZ2VyZWQgYnkgcmlnaHQgY2xpY2tcclxuICBTZWxlY3RPcHRpb25zTW91c2VNZW51ID0gJ3NlbGVjdC1vcHRpb25zLW1lbnUnLFxyXG5cclxuICAvLyBBbiBhdHRlbXB0IHRvIHNlbGVjdCB2aWEgc2VhcmNoXHJcbiAgU2VsZWN0T3B0aW9uc1NlYXJjaE1hdGNoID0gJ3NlbGVjdC1vcHRpb25zLXNlYXJjaCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFdoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvciB7XHJcblxyXG4gIC8vIENsZWFyIHNlbGVjdGlvbiBvdmVyIHdoaXRlc3BhY2UgYmFzZWQgb24gZGVmYXVsdCBmYWN0b3JzIChpLmUuLCBhcmUgd2UgaW4gYXBwZW5kIG1vZGU/KVxyXG4gIERlZmF1bHQgPSAnZGVmYXVsdCcsXHJcblxyXG4gIC8vIEFsd2F5cyBjbGVhciBzZWxlY3Rpb24gb3ZlciB3aGl0ZXNwYWNlXHJcbiAgQWx3YXlzQ2xlYXIgPSAnYWx3YXlzLWNsZWFyJyxcclxuXHJcbiAgLy8gTmV2ZXIgY2xlYXIgc2VsZWN0aW9uIG92ZXIgd2hpdGVzcGFjZVxyXG4gIE5ldmVyQ2xlYXIgPSAnbmV2ZXItY2xlYXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBPcmllbnRhdGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIFZlcnRpY2FsID0gJ28tdmVydCcsXHJcblxyXG4gIC8vIFxyXG4gIEhvcml6b250YWwgPSAnby1ob3JpeicsXHJcblxyXG4gIC8vIFxyXG4gIE9BdXRvbWF0aWMgPSAnby1hdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2NhbGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgTG9nID0gJ2xvZycsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVhciA9ICdsaW5lYXInXHJcbn1cclxuXHJcbi8vIHR5cGUgb2Ygb2JqZWN0IGFjdGlvbiBhcHBsaWVzIHRvXHJcbmV4cG9ydCBlbnVtIFNvdXJjZVR5cGUge1xyXG5cclxuICAvLyBhbGwgc2hlZXRzIGluIHRoZSB3b3JrYm9va1xyXG4gIFNUX0FsbCA9ICdhbGwnLFxyXG5cclxuICAvLyBhbGwgc2hlZXRzIHJlZmVyZW5jaW5nIGEgZ2l2ZW4gZGF0YXNvdXJjZVxyXG4gIFNUX0RhdGFzb3VyY2UgPSAnZGF0YXNvdXJjZScsXHJcblxyXG4gIC8vIHdvcmtzaGVldCBvciBkYXNoYm9hcmRcclxuICBTVF9TaGVldCA9ICdzaGVldCdcclxufVxyXG5cclxuLy8gaG93IGFuIGFjdGlvbiBnZXRzIGFjdGl2YXRlZFxyXG5leHBvcnQgZW51bSBBY3RpdmF0aW9uTWV0aG9kIHtcclxuXHJcbiAgLy8gZS5nLiBieSBwaWNraW5nIGFuIG9wdGlvbiBmcm9tIGEgY29udGV4dCBtZW51XHJcbiAgQU1fRXhwbGljaXQgPSAnZXhwbGljaXRseScsXHJcblxyXG4gIC8vIGF1dG8gYWN0aXZhdGVkIHdoZW4gbWFya3MgYXJlIHNlbGVjdGVkXHJcbiAgQU1fT25TZWxlY3QgPSAnb24tc2VsZWN0JyxcclxuXHJcbiAgLy8gYXV0byBhY3RpdmF0ZWQgd2hlbiB0aGUgdXNlciBtb3ZlcyB0aGUgbW91c2Ugb3ZlciBhIG1hcmtcclxuICBBTV9PbkhvdmVyID0gJ29uLWhvdmVyJ1xyXG59XHJcblxyXG4vLyB3aGV0aGVyIGFuIGFjdGlvbiBzaG91bGQgYmUgcnVuIHdoZW4gc2VsZWN0aW9uIGlzIGNsZWFyZWRcclxuZXhwb3J0IGVudW0gT25DbGVhciB7XHJcblxyXG4gIC8vIGRvIG5vdGhpbmcsIGUuZy4gbGVhdmUgZmlsdGVyIGluIHBsYWNlXHJcbiAgT0NfTm90aGluZyA9ICdub3RoaW5nJyxcclxuXHJcbiAgLy8gc2hvdyBhbGwgdmFsdWVzXHJcbiAgT0NfU2hvd0FsbCA9ICdzaG93LWFsbCcsXHJcblxyXG4gIC8vIGV4Y2x1ZGUgZXZlcnl0aGluZ1xyXG4gIE9DX0V4Y2x1ZGVBbGwgPSAnZXhjbHVkZS1hbGwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNZXJnZU9yU3BsaXQge1xyXG5cclxuICAvLyBcclxuICBNT1NfTUVSR0UgPSAnbWVyZ2UnLFxyXG5cclxuICAvLyBcclxuICBNT1NfU1BMSVQgPSAnc3BsaXQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBNYXJrTGF5b3V0UHJpbWl0aXZlIHtcclxuXHJcbiAgLy8gXHJcbiAgU2hhcGVQcmltaXRpdmUgPSAnc2hhcGUnLFxyXG5cclxuICAvLyBcclxuICBMaW5lUHJpbWl0aXZlID0gJ2xpbmUnLFxyXG5cclxuICAvLyBcclxuICBCYXJQcmltaXRpdmUgPSAnYmFyJyxcclxuXHJcbiAgLy8gXHJcbiAgUG9sYXJCYXJQcmltaXRpdmUgPSAncG9sYXItYmFyJyxcclxuXHJcbiAgLy8gXHJcbiAgVGV4dFByaW1pdGl2ZSA9ICd0ZXh0JyxcclxuXHJcbiAgLy8gXHJcbiAgTGFiZWxQcmltaXRpdmUgPSAnbGFiZWwnLFxyXG5cclxuICAvLyBcclxuICBQaWVQcmltaXRpdmUgPSAncGllJyxcclxuXHJcbiAgLy8gXHJcbiAgQXJlYVByaW1pdGl2ZSA9ICdhcmVhJyxcclxuXHJcbiAgLy8gXHJcbiAgUG9seWdvblByaW1pdGl2ZSA9ICdwb2x5Z29uJyxcclxuXHJcbiAgLy8gXHJcbiAgTXVsdGlwb2x5Z29uUHJpbWl0aXZlID0gJ211bHRpcG9seWdvbicsXHJcblxyXG4gIC8vIFxyXG4gIFNxdWFyZVByaW1pdGl2ZSA9ICdzcXVhcmUnXHJcbn1cclxuXHJcbi8vIERvZXMgdGhlIFBhbmVUeXBlL1ByaW1pdGl2ZVR5cGUvTGF5b3V0VHlwZSB0cmlwbGV0IHJlc3VsdCBpbiB2ZXJ5IHNwZWNpZmljIGxheW91dCBydWxlcz9cclxuZXhwb3J0IGVudW0gTWFya0xheW91dFZpelR5cGUge1xyXG5cclxuICAvLyBObyBzcGVjaWFsIHJ1bGVzXHJcbiAgU3RhbmRhcmQgPSAnc3RhbmRhcmQnLFxyXG5cclxuICAvLyBHZW5lcmljIE9PIFN0YWNrZWQgcnVsZXNcclxuICBPT1N0YWNrZWQgPSAnb28tc3RhY2tlZCcsXHJcblxyXG4gIC8vIE9PIEdhbnR0IFN0YWNrZWQgcnVsZXNcclxuICBHYW50dFN0YWNrZWQgPSAnZ2FudHQtc3RhY2tlZCcsXHJcblxyXG4gIC8vIFRyZWVtYXBcclxuICBUcmVlbWFwID0gJ3RyZWVtYXAnLFxyXG5cclxuICAvLyBCdWJibGUgQ2hhcnQgLS0gT08gUGFja2VkIGNpcmNsZXMgb3Igc2hhcGVzXHJcbiAgQnViYmxlID0gJ2J1YmJsZScsXHJcblxyXG4gIC8vIFdvcmRsZVxyXG4gIFdvcmRsZSA9ICd3b3JkbGUnLFxyXG5cclxuICAvLyBIaWdobGlnaHQgVGFibGVcclxuICBIaWdobGlnaHQgPSAnaGlnaGxpZ2h0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xheW91dEhhbmRsZVNwZWNpYWxzIHtcclxuXHJcbiAgLy8gXHJcbiAgQ2F0ZWdvcmljYWxBeGlzID0gJ2NhdGVnb3JpY2FsLWF4aXMnLFxyXG5cclxuICAvLyBcclxuICBTaG93U3BlY2lhbHMgPSAnc2hvdy1zcGVjaWFscycsXHJcblxyXG4gIC8vIFxyXG4gIE9taXRTcGVjaWFscyA9ICdvbWl0LXNwZWNpYWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgQnJlYWtPblNwZWNpYWxzID0gJ2JyZWFrLW9uLXNwZWNpYWxzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xheW91dE1hcmtGbGFnIHtcclxuXHJcbiAgLy8gbWFyayBkb2VzIG5vdCBjb25uZWN0IHRvIHRoZSBuZXh0IG1hcmtcclxuICBFbmQgPSAnZW5kJyxcclxuXHJcbiAgLy8gbGFzdCBtYXJrIGluIGEgbXVsdGktcHJpbWl0aXZlXHJcbiAgRW5kUHJpbWl0aXZlID0gJ2VuZHByaW1pdGl2ZScsXHJcblxyXG4gIC8vIGxhc3QgbWFyayBoYXMgYW4gZWRnZSBjb25uZWN0b3IgdG8gZmlyc3QgbWFya1xyXG4gIENsb3NlZFByaW1pdGl2ZSA9ICdjbG9zZWRwcmltaXRpdmUnLFxyXG5cclxuICAvLyB2aXN1YWwgbWFya2VyIHNob3VsZCBiZSBkaXNwbGF5ZWRcclxuICBNYXJrZWQgPSAnbWFya2VkJyxcclxuXHJcbiAgLy8gdmlzdWFsIG1hcmtlciBzaG91bGQgYmUgZGlzcGxheWVkIGlmIGxhYmVsbGVkXHJcbiAgTWFya2VkSWZMYWJlbCA9ICdtYXJrZWRpZmxhYmVsJyxcclxuXHJcbiAgLy8gZGlzcGxheSBkZWJ1ZyBpbmZvcm1hdGlvblxyXG4gIERlYnVnID0gJ2RlYnVnJyxcclxuXHJcbiAgLy8gdXNlciBmbGFncyBjYW4gYmVnaW4gaGVyZVxyXG4gIFVzZXIgPSAndXNlcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1hcmtMYXlvdXRQYW5lRmxhZyB7XHJcblxyXG4gIC8vIEFsbG93cyBzY2VuZSB0byBiZSBwYW5uZWQgaW4gdGhlIFggZGlyZWN0aW9uXHJcbiAgRW5hYmxlUGFuWCA9ICdlbmFibGUtcGFuLXgnLFxyXG5cclxuICAvLyBBbGxvd3Mgc2NlbmUgdG8gYmUgcGFubmVkIGluIHRoZSBZIGRpcmVjdGlvblxyXG4gIEVuYWJsZVBhblkgPSAnZW5hYmxlLXBhbi15JyxcclxuXHJcbiAgLy8gQWxsb3dzIHRoZSBwb3NpdGlvbnMgb2YgbWFya3MgdG8gYmUgc2NhbGVkIGluIHRoZSBYIGRpcmVjdGlvbiBhcyB0aGUgdmlldyBpcyB6b29tZWRcclxuICBFbmFibGVab29tWCA9ICdlbmFibGUtem9vbS14JyxcclxuXHJcbiAgLy8gQWxsb3dzIHRoZSBwb3NpdGlvbnMgb2YgbWFya3MgdG8gYmUgc2NhbGVkIGluIHRoZSBZIGRpcmVjdGlvbiBhcyB0aGUgdmlldyBpcyB6b29tZWRcclxuICBFbmFibGVab29tWSA9ICdlbmFibGUtem9vbS15JyxcclxuXHJcbiAgLy8gQWxsb3dzIHRoZSBzaXplIG9mIG1hcmtzIHRvIGJlIHNjYWxlZCBpbiB0aGUgWCBkaXJlY3Rpb24gYXMgdGhlIHZpZXcgaXMgem9vbWVkOyByZXF1aXJlcyB3aWR0aCBpbiBkb21haW4gY29vcmRpbmF0ZXNcclxuICBFbmFibGVTY2FsZVggPSAnZW5hYmxlLXNjYWxlLXgnLFxyXG5cclxuICAvLyBBbGxvd3MgdGhlIHNpemUgb2YgbWFya3MgdG8gYmUgc2NhbGVkIGluIHRoZSBZIGRpcmVjdGlvbiBhcyB0aGUgdmlldyBpcyB6b29tZWQ7IHJlcXVpcmVzIGhlaWdodCBpbiBkb21haW4gY29vcmRpbmF0ZXNcclxuICBFbmFibGVTY2FsZVkgPSAnZW5hYmxlLXNjYWxlLXknLFxyXG5cclxuICAvLyBDbGlwIHRvIGNlbGwgYm9yZGVycyBpbiB0aGUgeCBkaXJlY3Rpb25cclxuICBDbGlwVG9DZWxsWCA9ICdjbGlwLXRvLWNlbGwteCcsXHJcblxyXG4gIC8vIENsaXAgdG8gY2VsbCBib3JkZXJzIGluIHRoZSB5IGRpcmVjdGlvblxyXG4gIENsaXBUb0NlbGxZID0gJ2NsaXAtdG8tY2VsbC15JyxcclxuXHJcbiAgLy8gVXNlIGNlbGwgY2xpcHBpbmcgZm9yIHNlbGVjdGlvblxyXG4gIENsaXBUb0NlbGxGb3JTZWxlY3Rpb24gPSAnY2xpcC10by1jZWxsLWZvci1zZWxlY3Rpb24nLFxyXG5cclxuICAvLyBUaGUgeC1heGlzIGlzIG9uIHRvcCBvZiBwYW5lXHJcbiAgWEF4aXNPblRvcCA9ICd4LWF4aXMtb24tdG9wJyxcclxuXHJcbiAgLy8gVGhlIHktYXhpcyBpcyBvbiB0aGUgcmlnaHQgb2YgcGFuZVxyXG4gIFlBeGlzT25SaWdodCA9ICd5LWF4aXMtb24tcmlnaHQnLFxyXG5cclxuICAvLyBUaGUgcGFuZSBoYXMgY2VsbHMgaW4gdGhlIHggYXhpc1xyXG4gIEhhc0NlbGxzWCA9ICdoYXMtY2VsbHMteCcsXHJcblxyXG4gIC8vIFRoZSBwYW5lIGhhcyBjZWxscyBpbiB0aGUgeSBheGlzXHJcbiAgSGFzQ2VsbHNZID0gJ2hhcy1jZWxscy15J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya0xheW91dERyb3BMaW5lRmxhZyB7XHJcblxyXG4gIC8vIFNob3cgZHJvcCBsaW5lcyBvbiBzZWxlY3RlZCBtYXJrXHJcbiAgRHJvcExpbmVTaG93U2VsZWN0ZWQgPSAnZHJvcGxpbmUtc2hvdy1zZWxlY3RlZCcsXHJcblxyXG4gIC8vIFNob3cgZHJvcCBsaW5lcyBvbiBhbGwgbWFya3NcclxuICBEcm9wTGluZVNob3dBbGwgPSAnZHJvcGxpbmUtc2hvdy1hbGwnLFxyXG5cclxuICAvLyBEcm9wIGxpbmUgdG8geC1heGlzXHJcbiAgRHJvcExpbmVYID0gJ2Ryb3BsaW5lLXgnLFxyXG5cclxuICAvLyBEcm9wIGxpbmUgdG8geS1heGlzXHJcbiAgRHJvcExpbmVZID0gJ2Ryb3BsaW5lLXknLFxyXG5cclxuICAvLyBTaG93IGxhYmVscyBvbiBkcm9wIGxpbmVzXHJcbiAgRHJvcExpbmVMYWJlbHMgPSAnZHJvcGxpbmUtbGFiZWxzJ1xyXG59XHJcblxyXG4vLyBJZGVudGlmaWVzIHRoZSBvZmZzZXQgZm9yIGEgcGFydGljdWxhciB0YWJsZSBpbiB0aGUgYXJyYXkgb2YgdGFibGVzIGluIFBETWFya3NQcmVzTW9kZWxcclxuZXhwb3J0IGVudW0gTWFya0xheW91dERhdGFUYWJsZUlEIHtcclxuXHJcbiAgLy8gVGhlIHRhYmxlIHRoYXQgY29udGFpbnMgdGhlIG1hcmsgaW5mb3JtYXRpb25cclxuICBNYXJrVGFibGUgPSAnbWFyay10YWJsZScsXHJcblxyXG4gIC8vIFRoZSB0YWJsZSB0aGF0IGNvbnRhaW5zIHRleHQgcnVucyBmb3IgdGV4dCBtYXJrcyBhbmQgbGFiZWxzXHJcbiAgVGV4dFJ1blRhYmxlID0gJ3RleHQtcnVuLXRhYmxlJyxcclxuXHJcbiAgLy8gVGhlIHRhYmxlIHRoYXQgY29udGFpbnMgdGV4dCBzdHlsZXMgZm9yIGVhY2ggdGV4dCBydW4uXHJcbiAgVGV4dFN0eWxlVGFibGUgPSAndGV4dC1zdHlsZS10YWJsZSdcclxufVxyXG5cclxuLy8gV2hpY2ggbGFiZWxpbmcgYWxnb3JpdGhtIHNob3VsZCBiZSB1c2VkPyAgQ2xvc2VseSByZWxhdGVkIHRvIE1hcmtMYXlvdXQ6OlZpelR5cGVcclxuZXhwb3J0IGVudW0gTGFiZWxMYXlvdXRUeXBlIHtcclxuXHJcbiAgLy8gTm8gbGFiZWxzXHJcbiAgTEFCRUxfTEFZT1VUX05PTkUgPSAndW5sYWJlbGVkJyxcclxuXHJcbiAgLy8gVHJlZW1hcCAtIGxhYmVscyBpbnNpZGUgdGhlIHJlY3RhbmdsZXNcclxuICBMQUJFTF9MQVlPVVRfVFJFRU1BUCA9ICd0cmVlbWFwLWxhYmVscycsXHJcblxyXG4gIC8vIEJ1YmJsZSBDaGFydCAtIGxhYmVscyBpbnNpZGUgdGhlIHNoYXBlc1xyXG4gIExBQkVMX0xBWU9VVF9CVUJCTEVDSEFSVCA9ICdidWJibGUtbGFiZWxzJyxcclxuXHJcbiAgLy8gU2NhdHRlcnBsb3QgLSBkeW5hbWljIGJlc3QtZml0IGxhYmVsc1xyXG4gIExBQkVMX0xBWU9VVF9TQ0FUVEVSUExPVCA9ICdzY2F0dGVycGxvdC1sYWJlbHMnLFxyXG5cclxuICAvLyBTdGFuZGFyZCBsYWJlbGluZ1xyXG4gIExBQkVMX0xBWU9VVF9TVEFOREFSRCA9ICdzdGFuZGFyZC1sYWJlbHMnLFxyXG5cclxuICAvLyBIaWdobGlnaHQgdGFibGVcclxuICBMQUJFTF9MQVlPVVRfSElHSExJR0hUX1RBQkxFID0gJ2hpZ2hsaWdodC10YWJsZS1sYWJlbHMnXHJcbn1cclxuXHJcbi8vIE1hcmtMYXllciByZXByZXNlbnRzIHRoZSBsYXllcnMgb2YgYSBtYXJrIGdpdmVuIHRoZSB2YXJpb3VzIHN0YXRlc1xyXG5leHBvcnQgZW51bSBNYXJrTGF5ZXIge1xyXG5cclxuICAvLyBcclxuICBOb3JtYWxVbmRlciA9ICdub3JtYWxVbmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIE5vcm1hbE9uID0gJ25vcm1hbE9uJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VsZWN0ZWRVbmRlciA9ICdzZWxlY3RlZFVuZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VsZWN0ZWRPbiA9ICdzZWxlY3RlZE9uJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRVbmRlciA9ICdoaWdobGlnaHRlZFVuZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRPbiA9ICdoaWdobGlnaHRlZE9uJyxcclxuXHJcbiAgLy8gXHJcbiAgRWRnZVVuZGVyID0gJ2VkZ2VVbmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEVkZ2VPbiA9ICdlZGdlT24nLFxyXG5cclxuICAvLyBcclxuICBCb3JkZXIgPSAnYm9yZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VsZWN0ZWRVbmRlcjEgPSAnc2VsZWN0ZWRVbmRlcjEnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZE9uMSA9ICdzZWxlY3RlZE9uMScsXHJcblxyXG4gIC8vIFxyXG4gIFVuU2VsZWN0ZWRDdXN0b21TaGFwZSA9ICd1blNlbGVjdGVkQ3VzdG9tU2hhcGUnLFxyXG5cclxuICAvLyBcclxuICBOb3JtYWxBbHBoYU1hc2sgPSAnbm9ybWFsQWxwaGFNYXNrJyxcclxuXHJcbiAgLy8gXHJcbiAgSGFsb0FscGhhTWFzayA9ICdoYWxvQWxwaGFNYXNrJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRVbmRlcjEgPSAnaGlnaGxpZ2h0ZWRVbmRlcjEnLFxyXG5cclxuICAvLyBcclxuICBIaWdobGlnaHRlZE9uMSA9ICdoaWdobGlnaHRlZE9uMScsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdGVkRWRnZVVuZGVyID0gJ3NlbGVjdGVkRWRnZVVuZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQmxvYlVuZGVyID0gJ2Jsb2JVbmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEJsb2JPbiA9ICdibG9iT24nLFxyXG5cclxuICAvLyBcclxuICBIb3Zlck92ZXJsYXkgPSAnaG92ZXJPdmVybGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgUHJlc3NlZE92ZXJsYXkgPSAncHJlc3NlZE92ZXJsYXknXHJcbn1cclxuXHJcbi8vIENvbG9yT3ZlcnJpZGVNb2RlIHJlcHJlc2VudHMgdGhlIGRpZmZlcmVudCB3YXlzIGluIHdoaWNoIG1hcmsgY29sb3JzIG1heSBiZSBtb2RpZmllZC5cclxuZXhwb3J0IGVudW0gQ29sb3JPdmVycmlkZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBDb2xvck92ZXJyaWRlTm9uZSA9ICdjb2xvck92ZXJyaWRlTm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVGb2cgPSAnY29sb3JPdmVycmlkZUZvZycsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVPcGFxdWUgPSAnY29sb3JPdmVycmlkZU9wYXF1ZScsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVSZXBsYWNlQWxwaGEgPSAnY29sb3JPdmVycmlkZVJlcGxhY2VBbHBoYScsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yT3ZlcnJpZGVDb3VudCA9ICdjb2xvck92ZXJyaWRlQ291bnQnXHJcbn1cclxuXHJcbi8vIENvbG9yVHJhbnNmb3JtTW9kZSByZXByZXNlbnRzIHRoZSBkaWZmZXJlbnQgd2F5cyBpbiB3aGljaCBtYXJrIGNvbG9ycyBtYXkgYmUgbW9kaWZpZWQuXHJcbmV4cG9ydCBlbnVtIENvbG9yVHJhbnNmb3JtTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIENvbG9yVHJhbnNmb3JtTm9uZSA9ICdjb2xvclRyYW5zZm9ybU5vbmUnLFxyXG5cclxuICAvLyBcclxuICBDb2xvclRyYW5zZm9ybUZvZyA9ICdjb2xvclRyYW5zZm9ybUZvZycsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yVHJhbnNmb3JtT3BhcXVlID0gJ2NvbG9yVHJhbnNmb3JtT3BhcXVlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29sb3JUcmFuc2Zvcm1PdmVycmlkZUNvbG9yID0gJ2NvbG9yVHJhbnNmb3JtT3ZlcnJpZGVDb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIENvbG9yVHJhbnNmb3JtT3ZlcnJpZGVBbHBoYSA9ICdjb2xvclRyYW5zZm9ybU92ZXJyaWRlQWxwaGEnXHJcbn1cclxuXHJcbi8vIE1hcmtTdGF0ZSByZXByZXNlbnRzIHZhbGlkIHN0YXRlcyBmb3IgYSBtYXJrLlxyXG5leHBvcnQgZW51bSBNYXJrU3RhdGUge1xyXG5cclxuICAvLyBcclxuICBNYXJrU3RhdGVOb3JtYWwgPSAnbWFya1N0YXRlTm9ybWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFya1N0YXRlSGlnaGxpZ2h0ZWQgPSAnbWFya1N0YXRlSGlnaGxpZ2h0ZWQnLFxyXG5cclxuICAvLyBcclxuICBNYXJrU3RhdGVTZWxlY3RlZCA9ICdtYXJrU3RhdGVTZWxlY3RlZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcmtTdGF0ZUludmlzaWJsZSA9ICdtYXJrU3RhdGVJbnZpc2libGUnXHJcbn1cclxuXHJcbi8vIExpbmVTdGF0ZSByZXByZXNlbnRzIHZhbGlkIHN0YXRlcyBmb3IgYSBsaW5lIG11bHRpLW1hcmsuXHJcbmV4cG9ydCBlbnVtIExpbmVTdGF0ZSB7XHJcblxyXG4gIC8vIFxyXG4gIExpbmVTdGF0ZU5vcm1hbCA9ICdsaW5lU3RhdGVOb3JtYWwnLFxyXG5cclxuICAvLyBcclxuICBMaW5lU3RhdGVIaWdobGlnaHRlZCA9ICdsaW5lU3RhdGVIaWdobGlnaHRlZCcsXHJcblxyXG4gIC8vIFxyXG4gIExpbmVTdGF0ZVNlbGVjdGVkID0gJ2xpbmVTdGF0ZVNlbGVjdGVkJ1xyXG59XHJcblxyXG4vLyBSZW5kZXJQYXNzIHJlcHJlc2VudHMgZWFjaCBwYXNzIG92ZXIgdGhlIHNjZW5lIGVsZW1lbnRzIGFzIGVhY2ggbGF5ZXIgaXMgcmVuZGVyZWQuXHJcbmV4cG9ydCBlbnVtIFJlbmRlclBhc3Mge1xyXG5cclxuICAvLyBcclxuICBOb3JtYWxVbmRlclBhc3MgPSAnbm9ybWFsVW5kZXJQYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgTm9ybWFsT25QYXNzID0gJ25vcm1hbE9uUGFzcycsXHJcblxyXG4gIC8vIFxyXG4gIEhpZ2hsaWdodGVkVW5kZXJQYXNzID0gJ2hpZ2hsaWdodGVkVW5kZXJQYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgSGlnaGxpZ2h0ZWRPblBhc3MgPSAnaGlnaGxpZ2h0ZWRPblBhc3MnLFxyXG5cclxuICAvLyBcclxuICBTZWxlY3RlZFVuZGVyUGFzcyA9ICdzZWxlY3RlZFVuZGVyUGFzcycsXHJcblxyXG4gIC8vIFxyXG4gIFNlbGVjdGVkT25QYXNzID0gJ3NlbGVjdGVkT25QYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgUmVuZGVyUGFzc0NvdW50ID0gJ3JlbmRlclBhc3NDb3VudCdcclxufVxyXG5cclxuLy8gVGhlIHJvbGUgYXNzb2NpYXRlZCB3aXRoIGEgc2NlbmUgZWxlbWVudC4gVGhpcyBhbGxvd3MgdGhlIGRyYXcgb3JkZXJpbmcgdG8gYmUgbW9yZSBlZmZpY2llbnQuXHJcbmV4cG9ydCBlbnVtIEVsZW1lbnRSb2xlIHtcclxuXHJcbiAgLy8gXHJcbiAgTW9kZWxDb250YWluZXJSb2xlID0gJ21vZGVsQ29udGFpbmVyUm9sZScsXHJcblxyXG4gIC8vIFxyXG4gIEJhY2tncm91bmRSb2xlID0gJ2JhY2tncm91bmRSb2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5kZXJNYXJrUm9sZSA9ICd1bmRlck1hcmtSb2xlJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFya1JvbGUgPSAnbWFya1JvbGUnLFxyXG5cclxuICAvLyBcclxuICBVbmRlckxhYmVsUm9sZSA9ICd1bmRlckxhYmVsUm9sZScsXHJcblxyXG4gIC8vIFxyXG4gIExhYmVsUm9sZSA9ICdsYWJlbFJvbGUnLFxyXG5cclxuICAvLyBcclxuICBGb3JlZ3JvdW5kUm9sZSA9ICdmb3JlZ3JvdW5kUm9sZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFBhdGhFbGVtZW50IHtcclxuXHJcbiAgLy8gXHJcbiAgUGF0aE1vdmVUbyA9ICdtb3ZldG8nLFxyXG5cclxuICAvLyBcclxuICBQYXRoTGluZVRvID0gJ2xpbmV0bycsXHJcblxyXG4gIC8vIFxyXG4gIFBhdGhDdXJ2ZVRvID0gJ2N1cnZldG8nXHJcbn1cclxuXHJcbi8vIFRoZSBzZXJpYWxpemF0aW9uIGlzIHN0aWxsIGR1cGxpY2F0ZWQgaW4gSnNvblV0aWxzOjpab25lVXRpbHM6OlpvbmVOYW1lcyBhbmQgdHlwZXMuanNcclxuZXhwb3J0IGVudW0gWm9uZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBaVF9JbnZhbGlkID0gJ2ludmFsaWQnLFxyXG5cclxuICAvLyBzZWN0aW9uOiBuYW1lID0gd29ya3NoZWV0IG5hbWVcclxuICBaVF9WaXogPSAndml6JyxcclxuXHJcbiAgLy8gXHJcbiAgWlRfQ29sb3JMZWdlbmQgPSAnY29sb3InLFxyXG5cclxuICAvLyBcclxuICBaVF9TaGFwZUxlZ2VuZCA9ICdzaGFwZScsXHJcblxyXG4gIC8vIFxyXG4gIFpUX1NpemVMZWdlbmQgPSAnc2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIFpUX01hcExlZ2VuZCA9ICdtYXAnLFxyXG5cclxuICAvLyBwYXJhbSA9IGZpZWxkIG5hbWVcclxuICBaVF9RdWlja0ZpbHRlciA9ICdmaWx0ZXInLFxyXG5cclxuICAvLyBwYXJhbSA9IGZpZWxkIG5hbWVcclxuICBaVF9IaWdobGlnaHRlciA9ICdoaWdobGlnaHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0N1cnJQYWdlID0gJ2N1cnJlbnQtcGFnZScsXHJcblxyXG4gIC8vIHNlY3Rpb246IG5hbWUgdW51c2VkXHJcbiAgWlRfRW1wdHkgPSAnZW1wdHknLFxyXG5cclxuICAvLyBwYXJhbSA9IHRpdGxlXHJcbiAgWlRfVGl0bGUgPSAndGl0bGUnLFxyXG5cclxuICAvLyBwYXJhbSA9IHRleHRcclxuICBaVF9UZXh0ID0gJ3RleHQnLFxyXG5cclxuICAvLyBwYXJhbSA9IGZpbGUgbmFtZVxyXG4gIFpUX0JpdG1hcCA9ICdiaXRtYXAnLFxyXG5cclxuICAvLyBwYXJhbSA9IFVSTFxyXG4gIFpUX1dlYiA9ICd3ZWInLFxyXG5cclxuICAvLyBwYXJhbSA9IGFkZC1pbiBpZFxyXG4gIFpUX0FkZEluID0gJ2FkZC1pbicsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0J1dHRvbiA9ICdidXR0b24tb2JqZWN0JyxcclxuXHJcbiAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXHJcbiAgWlRfUGFyYW1DdHJsID0gJ3BhcmFtY3RybCcsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0ZsaXBib2FyZE5hdiA9ICdmbGlwYm9hcmQtbmF2JyxcclxuXHJcbiAgLy8gXHJcbiAgWlRfRmxpcGJvYXJkID0gJ2ZsaXBib2FyZCcsXHJcblxyXG4gIC8vIHNlY3Rpb246IGxheW91dFxyXG4gIFpUX0xheW91dEJhc2ljID0gJ2xheW91dC1iYXNpYycsXHJcblxyXG4gIC8vIFxyXG4gIFpUX0xheW91dEZsb3cgPSAnbGF5b3V0LWZsb3cnLFxyXG5cclxuICAvLyBcclxuICBaVF9MYXlvdXRGcmVlRm9ybSA9ICdsYXlvdXQtZnJlZS1mb3JtJyxcclxuXHJcbiAgLy8gdXNlZCBvbmx5IGZvciBlbnVtIGl0ZXJhdGlvblxyXG4gIFpUX0VuZCA9ICdlbmQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDb250ZW50VHlwZSB7XHJcblxyXG4gIC8vIHNlY3Rpb246IG5hbWUgPSB3b3Jrc2hlZXQgbmFtZVxyXG4gIENUX1ZpeiA9ICd2aXonLFxyXG5cclxuICAvLyBcclxuICBDVF9Db2xvckxlZ2VuZCA9ICdjb2xvcicsXHJcblxyXG4gIC8vIFxyXG4gIENUX1NoYXBlTGVnZW5kID0gJ3NoYXBlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfU2l6ZUxlZ2VuZCA9ICdzaXplJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfTWFwTGVnZW5kID0gJ21hcCcsXHJcblxyXG4gIC8vIHBhcmFtID0gZmllbGQgbmFtZVxyXG4gIENUX1F1aWNrRmlsdGVyID0gJ2ZpbHRlcicsXHJcblxyXG4gIC8vIHBhcmFtID0gZmllbGQgbmFtZVxyXG4gIENUX0hpZ2hsaWdodGVyID0gJ2hpZ2hsaWdodGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfQ3VyclBhZ2UgPSAnY3VycmVudC1wYWdlJyxcclxuXHJcbiAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXHJcbiAgQ1RfUGFyYW1DdHJsID0gJ3BhcmFtY3RybCcsXHJcblxyXG4gIC8vIHBhcmFtID0gdGl0bGVcclxuICBDVF9UaXRsZSA9ICd0aXRsZScsXHJcblxyXG4gIC8vIHBhcmFtID0gdGV4dFxyXG4gIENUX1RleHQgPSAndGV4dCcsXHJcblxyXG4gIC8vIHBhcmFtID0gZmlsZSBuYW1lXHJcbiAgQ1RfQml0bWFwID0gJ2JpdG1hcCcsXHJcblxyXG4gIC8vIHBhcmFtID0gVVJMXHJcbiAgQ1RfV2ViID0gJ3dlYicsXHJcblxyXG4gIC8vIHBhcmFtID0gYWRkLWluIGlkXHJcbiAgQ1RfQWRkSW4gPSAnYWRkLWluJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfQnV0dG9uID0gJ2J1dHRvbicsXHJcblxyXG4gIC8vIFxyXG4gIENUX0ZsaXBib2FyZE5hdiA9ICdmbGlwYm9hcmQtbmF2JyxcclxuXHJcbiAgLy8gXHJcbiAgQ1RfRmxpcGJvYXJkID0gJ2ZsaXBib2FyZCcsXHJcblxyXG4gIC8vIERlbm90ZXMgdGhhdCB0aGlzIHpvbmUgaGFzIG5vIGNvbnRlbnQgYW5kIHRoZXJlZm9yZSBoYXMgYSBtZWFuaW5nZnVsIGxheW91dCB0eXBlXHJcbiAgQ1RfTm9uZSA9ICdjb250ZW50LW5vbmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBab25lTGF5b3V0VHlwZSB7XHJcblxyXG4gIC8vIHNlY3Rpb246IGxheW91dFxyXG4gIFpMVF9CYXNpYyA9ICdiYXNpYycsXHJcblxyXG4gIC8vIFxyXG4gIFpMVF9GcmVlRm9ybSA9ICdmcmVlLWZvcm0nLFxyXG5cclxuICAvLyBcclxuICBaTFRfRmxvdyA9ICdmbG93JyxcclxuXHJcbiAgLy8gXHJcbiAgWkxUX0Rpc3RyaWJ1dGVFdmVubHkgPSAnZGlzdHJpYnV0ZS1ldmVubHknLFxyXG5cclxuICAvLyBcclxuICBaTFRfVHJpdmlhbCA9ICd0cml2aWFsJ1xyXG59XHJcblxyXG4vLyBSZWN0YW5sZ2VzIGluIHRoZSBib3ggbW9kZWxcclxuZXhwb3J0IGVudW0gQm94VHlwZSB7XHJcblxyXG4gIC8vIGJvdW5kaW5nIHJlY3RhbmdsZSBpbiB0aGUgYm94IG1vZGVsXHJcbiAgQlRfQm91bmRpbmcgPSAnYm91bmRpbmcnLFxyXG5cclxuICAvLyBib3JkZXIgcmVjdGFuZ2xlIGluIHRoZSBib3ggbW9kZWwgZXhjbHVkaW5nIG1hcmdpbnNcclxuICBCVF9Cb3JkZXIgPSAnYm9yZGVyJyxcclxuXHJcbiAgLy8gY29udGVudCByZWFjdG5hZ2UgaW4gdGhlIGJveCBtb2RlbCBleGNsdWRpbmcgbWFyZ2lucyBwbHVzIGJvcmRlcnMgYW5kIHBhZGRpbmdzXHJcbiAgQlRfQ29udGVudCA9ICdjb250ZW50J1xyXG59XHJcblxyXG4vLyBSZXByZXNlbnRzIHRoZSB0eXBlIG9mIGNvbW1hbmQgdG8gYmUgcGVyZm9ybWVkIG9uIHRoZSB6LW9yZGVyIG9mIGEgem9uZVxyXG5leHBvcnQgZW51bSBNb2RpZnlab25lWk9yZGVyQ29tbWFuZFR5cGUge1xyXG5cclxuICAvLyBcclxuICBNb2RpZnlab25lWk9yZGVyQ29tbWFuZEZyb250ID0gJ2Zyb250JyxcclxuXHJcbiAgLy8gXHJcbiAgTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRCYWNrID0gJ2JhY2snLFxyXG5cclxuICAvLyBcclxuICBNb2RpZnlab25lWk9yZGVyQ29tbWFuZFJlbGF0aXZlUG9zID0gJ3JlbC1wb3MnXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHZhbGlkIGhvcml6b250YWwgYWxpZ25tZW50cyBmb3IgdGV4dCByZWdpb25zLlxyXG5leHBvcnQgZW51bSBUZXh0UmVnaW9uSEFsaWduIHtcclxuXHJcbiAgLy8gXHJcbiAgVEhBX0xlZnQgPSAnaC1hbGlnbi1sZWZ0JyxcclxuXHJcbiAgLy8gXHJcbiAgVEhBX0NlbnRlciA9ICdoLWFsaWduLWNlbnRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFRIQV9SaWdodCA9ICdoLWFsaWduLXJpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgVEhBX0F1dG9tYXRpYyA9ICdoLWFsaWduLWF1dG8nXHJcbn1cclxuXHJcbi8vIEVudW1lcmF0aW9uIG9mIHZhbGlkIHZlcnRpY2FsIGFsaWdubWVudHMgZm9yIHRleHQgcmVnaW9ucy5cclxuZXhwb3J0IGVudW0gVGV4dFJlZ2lvblZBbGlnbiB7XHJcblxyXG4gIC8vIFxyXG4gIFRWQV9Cb3R0b20gPSAndi1hbGlnbi1ib3R0b20nLFxyXG5cclxuICAvLyBcclxuICBUVkFfQ2VudGVyID0gJ3YtYWxpZ24tY2VudGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVFZBX1RvcCA9ICd2LWFsaWduLXRvcCcsXHJcblxyXG4gIC8vIFxyXG4gIFRWQV9BdXRvbWF0aWMgPSAndi1hbGlnbi1hdXRvJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQXV0b0NvbXBsZXRlSXRlbVR5cGUge1xyXG5cclxuICAvLyBcclxuICBBQ0lUX0ludmFsaWQgPSAnaW52YWxpZCcsXHJcblxyXG4gIC8vIFxyXG4gIEFDSVRfRmllbGQgPSAnZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBBQ0lUX0Z1bmN0aW9uID0gJ2Z1bmMnLFxyXG5cclxuICAvLyBcclxuICBBQ0lUX1NlcGFyYXRvciA9ICdzZXBhcmF0b3InLFxyXG5cclxuICAvLyBcclxuICBBQ0lUX0hlYWRlciA9ICdoZWFkZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDYWxjdWxhdGlvbkNvbnRleHQge1xyXG5cclxuICAvLyBcclxuICBDQ19DYWxjdWxhdGlvbkRpYWxvZyA9ICdjYWxjdWxhdGlvbi1kaWFsb2cnLFxyXG5cclxuICAvLyBcclxuICBDQ19UeXBlSW5QaWxsID0gJ3R5cGUtaW4tcGlsbCcsXHJcblxyXG4gIC8vIFxyXG4gIENDX0ZpbHRlclRvcCA9ICdmaWx0ZXItdG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgQ0NfRmlsdGVyQ29uZGl0aW9uID0gJ2ZpbHRlci1jb25kaXRpb24nLFxyXG5cclxuICAvLyBcclxuICBDQ19Kb2luQ2FsY0RpYWxvZyA9ICdqb2luLWNhbGMtZGlhbG9nJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRm9yZWNhc3RDb21wb25lbnRUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRm9yZWNhc3RDb21wb25lbnRUeXBlX19FVFNfTk9ORSA9ICdldHMtbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0Q29tcG9uZW50VHlwZV9fRVRTX0FERElUSVZFID0gJ2V0cy1hZGRpdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0Q29tcG9uZW50VHlwZV9fRVRTX01VTFRJUExJQ0FUSVZFID0gJ2V0cy1tdWx0aXBsaWNhdGl2ZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFByZWRpY3Rpb25JbnRlcnZhbEF4aXMge1xyXG5cclxuICAvLyBcclxuICBQSV9BWElTX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIFBJX0FYSVNfWCA9ICdheGlzLXgnLFxyXG5cclxuICAvLyBcclxuICBQSV9BWElTX1kgPSAnYXhpcy15J1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgcXVpY2sgZmlsdGVyXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFFGVF9Vbmtub3duID0gJ3Vua25vd24nLFxyXG5cclxuICAvLyBcclxuICBRRlRfUXVhbnRpdGF0aXZlID0gJ3F1YW50aXRhdGl2ZScsXHJcblxyXG4gIC8vIFxyXG4gIFFGVF9SZWxhdGl2ZURhdGUgPSAncmVsYXRpdmUtZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIFFGVF9IaWVyYXJjaHkgPSAnaGllcmFyY2h5JyxcclxuXHJcbiAgLy8gXHJcbiAgUUZUX0NhdGVnb3JpY2FsID0gJ2NhdGVnb3JpY2FsJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgYSBjYXRlZ29yaWNhbCBVSSBjb250cm9sXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsIHtcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfUmVhZG91dCA9ICdyZWFkb3V0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfU2xpZGVyID0gJ3NsaWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX1N0ZXBCdG5zID0gJ3N0ZXAtYnV0dG9ucycsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX0FsbEJ0biA9ICdhbGwtYnV0dG9ucycsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX0ZpbHRlclN0YXRlID0gJ2ZpbHRlcnN0YXRlLWJ1dHRvbicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX1NlYXJjaCA9ICdzZWFyY2gnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19Eb21haW4gPSAnZG9tYWluJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfTW9yZUZld2VyQnV0dG9uID0gJ21vcmVmZXdlci1idXR0b24nLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19FeGNsdWRlID0gJ2V4Y2x1ZGUnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19Nb2RlID0gJ21vZGUnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19MZXZlbHMgPSAnbGV2ZWxzJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfQXBwbHlCdXR0b24gPSAnYXBwbHktYnV0dG9uJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgYSBjYXRlZ29yaWNhbCBtb2RlXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fQ2hlY2tMaXN0ID0gJ2NoZWNrLWxpc3QnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZV9fUUZDTV9SYWRpb0xpc3QgPSAncmFkaW8tbGlzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX0Ryb3Bkb3duID0gJ2Ryb3Bkb3duJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fU2xpZGVyID0gJ3NsaWRlcicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX1BhdHRlcm4gPSAncGF0dGVybicsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX1R5cGVJbkxpc3QgPSAndHlwZS1pbi1saXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fQ2hlY2tEcm9wZG93biA9ICdjaGVjay1kcm9wZG93bicsXHJcbn1cclxuXHJcbi8vIEluZGljYXRlcyBhIHF1YW50aXRhdGl2ZSBVSSBjb250cm9sXHJcbmV4cG9ydCBlbnVtIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybCB7XHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybF9fUUZRQ19SZWFkb3V0cyA9ICdyZWFkb3V0cycsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybF9fUUZRQ19TbGlkZXIgPSAnc2xpZGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX051bGxDdHJscyA9ICdudWxsLWNvbnRyb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX1JlbGRhdGVQaWNrZXIgPSAncmVsLWRhdGUtcGlja2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX0RvbWFpbiA9ICdkb21haW4nLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmxfX1FGUUNfTW9yZUZld2VyQnV0dG9uID0gJ21vcmVmZXdlci1idXR0b24nLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmxfX1FGUUNfRmlsdGVyU3RhdGUgPSAnZmlsdGVyc3RhdGUtYnV0dG9uJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgYSBxdWFudGl0YXRpdmUgbW9kZVxyXG5leHBvcnQgZW51bSBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGUge1xyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fTWluTWF4ID0gJ21pbi1tYXgnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fTWluT25seSA9ICdtaW4tb25seScsXHJcblxyXG4gIC8vIFxyXG4gIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlTW9kZV9fUUZRTV9NYXhPbmx5ID0gJ21heC1vbmx5JyxcclxuXHJcbiAgLy8gXHJcbiAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVNb2RlX19RRlFNX1JlbERhdGUgPSAncmVsLWRhdGUnLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fUmVsUGljayA9ICdyZWwtcGljaydcclxufVxyXG5cclxuLy8gV2hlcmUgaXMgcmVuZGVyaW5nIGhhcHBlbmluZyAtIGNsaWVudCBvciBzZXJ2ZXJcclxuZXhwb3J0IGVudW0gUmVuZGVyTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFJlbmRlck1vZGVTZXJ2ZXIgPSAncmVuZGVyLW1vZGUtc2VydmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgUmVuZGVyTW9kZUNsaWVudCA9ICdyZW5kZXItbW9kZS1jbGllbnQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBBZGRPclJlbW92ZU1hcmtzIHtcclxuXHJcbiAgLy8gXHJcbiAgQU9STV9BREQgPSAnYWRkJyxcclxuXHJcbiAgLy8gXHJcbiAgQU9STV9SRU1PVkUgPSAncmVtb3ZlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNHZW9TZWFyY2hWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgR1NWX09uID0gJ29uJyxcclxuXHJcbiAgLy8gXHJcbiAgR1NWX09mZiA9ICdvZmYnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBWaXN1YWxEb2NFbnVtc01hcFNjYWxlVmlzaWJpbGl0eSB7XHJcblxyXG4gIC8vIFxyXG4gIE1TVl9PbiA9ICdvbicsXHJcblxyXG4gIC8vIFxyXG4gIE1TVl9PZmYgPSAnb2ZmJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNBdXRvRHJpbGxWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgQURWX09uID0gJ29uJyxcclxuXHJcbiAgLy8gXHJcbiAgQURWX09mZiA9ICdvZmYnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBWaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb24ge1xyXG5cclxuICAvLyBcclxuICBNVF9QYW5fTWFwID0gJ3Bhbi1tYXAnLFxyXG5cclxuICAvLyBcclxuICBNVF9SZWN0YW5ndWxhcl9TZWxlY3Rpb24gPSAncmVjdGFuZ3VsYXItc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfUmFkaWFsX1NlbGVjdGlvbiA9ICdyYWRpYWwtc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfWm9vbV9JbiA9ICd6b29tLWluJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfWm9vbV9PdXQgPSAnem9vbS1vdXQnLFxyXG5cclxuICAvLyBcclxuICBNVF9TaW5nbGVfU2VsZWN0aW9uID0gJ3NpbmdsZS1zZWxlY3Rpb24nLFxyXG5cclxuICAvLyBcclxuICBNVF9MYXNzb19TZWxlY3Rpb24gPSAnbGFzc28tc2VsZWN0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfQWxsX1NlbGVjdGlvbl9Ub29scyA9ICdhbGwtc2VsZWN0aW9uLXRvb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfQXJlYV9ab29tID0gJ2FyZWEtem9vbScsXHJcblxyXG4gIC8vIFxyXG4gIE1UX05vX1Rvb2xzID0gJ25vLXRvb2xzJyxcclxuXHJcbiAgLy8gXHJcbiAgTVRfQWR2YW5jZWRfU2VsZWN0aW9uX1Rvb2xzID0gJ2FkdmFuY2VkLXNlbGVjdGlvbi10b29scycsXHJcblxyXG4gIC8vIFxyXG4gIE1UX01hcF9Ub29scyA9ICdtYXAtdG9vbHMnLFxyXG5cclxuICAvLyBcclxuICBNVF9Ob25fTWFwX1Rvb2xzID0gJ25vbi1tYXAtdG9vbHMnLFxyXG5cclxuICAvLyBcclxuICBNVF9Ub29sX01hc2sgPSAndG9vbC1tYXNrJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNGbG9hdGluZ1Rvb2xiYXJWaXNpYmlsaXR5IHtcclxuXHJcbiAgLy8gXHJcbiAgRlRWX0F1dG8gPSAnYXV0bycsXHJcblxyXG4gIC8vIFxyXG4gIEZUVl9TaG93ID0gJ3Nob3cnLFxyXG5cclxuICAvLyBcclxuICBGVFZfSGlkZSA9ICdoaWRlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmlzdWFsRG9jRW51bXNWaXpOYXZpZ2F0aW9uU2V0dGluZyB7XHJcblxyXG4gIC8vIFxyXG4gIE5BVl9BdXRvID0gJ2F1dG8nLFxyXG5cclxuICAvLyBcclxuICBOQVZfRml4ZWQgPSAnZml4ZWQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBWaXN1YWxEb2NFbnVtc1pvb21UeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUGVyY2VudCA9ICdwZXJjZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgRW50aXJlVmlldyA9ICdlbnRpcmUtdmlldycsXHJcblxyXG4gIC8vIFxyXG4gIEZpdFdpZHRoID0gJ2ZpdC13aWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpdEhlaWdodCA9ICdmaXQtaGVpZ2h0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2hlZXRTY3JvbGxEaXJlY3Rpb24ge1xyXG5cclxuICAvLyBzY3JvbGwtZmlyc3RcclxuICBTaGVldFNjcm9sbEZpcnN0ID0gJ3Njcm9sbC1maXJzdCcsXHJcblxyXG4gIC8vIHNjcm9sbC1wcmV2XHJcbiAgU2hlZXRTY3JvbGxQcmV2ID0gJ3Njcm9sbC1wcmV2JyxcclxuXHJcbiAgLy8gc2Nyb2xsLW5leHRcclxuICBTaGVldFNjcm9sbE5leHQgPSAnc2Nyb2xsLW5leHQnLFxyXG5cclxuICAvLyBzY3JvbGwtbGFzdFxyXG4gIFNoZWV0U2Nyb2xsTGFzdCA9ICdzY3JvbGwtbGFzdCdcclxufVxyXG5cclxuLy8gYWdncmVnYXRpb24gdHlwZSBmb3IgcGVyc3BlY3RpdmVzXHJcbmV4cG9ydCBlbnVtIFBlcnNwZWN0aXZlVXRpbHNBZ2dyZWdhdGVUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUkVBTElUWSA9ICdyZWFsaXR5JyxcclxuXHJcbiAgLy8gXHJcbiAgRklSU1QgPSAnZmlyc3QtdGltZS1pbi1jdWJlJyxcclxuXHJcbiAgLy8gXHJcbiAgTEFTVCA9ICdsYXRlc3QtdGltZS1pbi1jdWJlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ1VTVE9NX0ZPUl9DVUJFID0gJ2N1c3RvbS1mb3ItY3ViZScsXHJcblxyXG4gIC8vIFxyXG4gIENVU1RPTV9QRVJfQVRUUklCVVRFID0gJ2N1c3RvbS1wZXItYXR0cmlidXRlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gWm9uZUVkZ2VNb3ZlIHtcclxuXHJcbiAgLy8gXHJcbiAgRWRnZURyYWcgPSAnZWRnZS1kcmFnJyxcclxuXHJcbiAgLy8gXHJcbiAgRWRnZVNuYXBBbGlnbiA9ICdlZGdlLXNuYXAtYWxpZ24nLFxyXG5cclxuICAvLyBcclxuICBFZGdlU25hcFBvc2l0aW9uID0gJ2VkZ2Utc25hcC1wb3NpdGlvbidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZvcm1hdENvbnRyb2xUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRkNUX05PTkUgPSAnZmN0LW5vbmUnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQ29sb3IgPSAnZmN0LWNvbG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0ZvbnQgPSAnZmN0LWZvbnQnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQm9yZGVyID0gJ2ZjdC1ib3JkZXInLFxyXG5cclxuICAvLyBcclxuICBGQ1RfU3Ryb2tlID0gJ2ZjdC1zdHJva2UnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTnVtYmVyID0gJ2ZjdC1udW1iZXInLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTGF5b3V0ID0gJ2ZjdC1sYXlvdXQnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfVGV4dCA9ICdmY3QtdGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9PcHRDb2xvciA9ICdmY3Qtb3B0Y29sb3InLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQmFuZENvbG9yID0gJ2ZjdC1iYW5kY29sb3InLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQmFuZFNpemUgPSAnZmN0LWJhbmRzaXplJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0JhbmRMZXZlbCA9ICdmY3QtYmFuZGxldmVsJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0RpdkxldmVsID0gJ2ZjdC1kaXZsZXZlbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9TcGVjVmFsc1RleHQgPSAnZmN0LXNwZWN2YWxzdGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9TcGVjVmFsc0dyYXBoID0gJ2ZjdC1zcGVjdmFsc2dyYXBoJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0hBbGlnbiA9ICdmY3QtaGFsaWduJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX09yaWVudCA9ICdmY3Qtb3JpZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX1JvdW5kaW5nID0gJ2ZjdC1yb3VuZGluZycsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9MaW5lRW5kID0gJ2ZjdC1saW5lZW5kJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0xpbmVFbmRTaXplID0gJ2ZjdC1saW5lZW5kc2l6ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9Cb2R5VHlwZSA9ICdmY3QtYm9keXR5cGUnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfQWxwaGFMZXZlbCA9ICdmY3QtYWxwaGFsZXZlbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9MaW5lSW50ZXJwb2xhdGlvbiA9ICdmY3QtbGluZS1pbnRlcnBvbGF0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0xpbmVNYXJrZXJQb3NpdGlvbiA9ICdmY3QtbGluZS1tYXJrZXItcG9zaXRpb24nLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTWFya0JvcmRlciA9ICdmY3QtbWFya2JvcmRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9NYXJrSGFsbyA9ICdmY3QtbWFya2hhbG8nLFxyXG5cclxuICAvLyBcclxuICBGQ1RfTWFya01hcmtlcnMgPSAnZmN0LW1hcmttYXJrZXJzJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX1JlZkxpbmVQYWxldHRlID0gJ2ZjdC1yZWZsaW5lcGFsZXR0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9SZXZlcnNlID0gJ2ZjdC1yZXZlcnNlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX1doaXNrZXJzID0gJ2ZjdC13aGlza2VycycsXHJcblxyXG4gIC8vIFxyXG4gIEZDVF9Cb3hwbG90UGFsZXR0ZSA9ICdmY3QtYm94cGxvdHBhbGV0dGUnLFxyXG5cclxuICAvLyBcclxuICBGQ1RfU29saWRTdHJva2UgPSAnZmN0LXNvbGlkc3Ryb2tlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0JveHBsb3RTdHlsZSA9ICdmY3QtYm94cGxvdHN0eWxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNUX0JveHBsb3RDb21wb3VuZEZpbGwgPSAnZmN0LWJveHBsb3Rjb21wb3VuZGZpbGwnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBGb3JtYXRDb250cm9sRmxhZyB7XHJcblxyXG4gIC8vIFxyXG4gIEZDRl9WaXN1YWxTdHlsZXNoZWV0ID0gJ2ZjZl92aXN1YWxzdHlsZXNoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgRkNGX1BhbmVTdHlsZXNoZWV0ID0gJ2ZjZl9wYW5lc3R5bGVzaGVldCcsXHJcblxyXG4gIC8vIFxyXG4gIEZDRl9GaXhlZFNjb3BlID0gJ2ZjZl9maXhlZHNjb3BlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkNGX0FsbG93VHJhbnNwYXJlbmN5ID0gJ2ZjZl9hbGxvd3RyYW5zcGFyZW5jeSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEFwcENvbmZpZ0VudW0ge1xyXG5cclxuICAvLyBkZWZhdWx0IGRpcmVjdG9yeSB3aGVyZSBUYWJsZWF1IGZpbmRzIGRhdGEgc291cmNlcywgbG9ncywgc2hhcGVzLCBldGMuXHJcbiAgQUNTX1JlcG9zaXRvcnlEaXIgPSAncmVwb3NpdG9yeS1kaXInLFxyXG5cclxuICAvLyBhcHBsaWNhdGlvbiBkaXJlY3RvcnlcclxuICBBQ1NfQXBwbGljYXRpb25EaXIgPSAnYXBwbGljYXRpb24tZGlyJyxcclxuXHJcbiAgLy8gc2FtcGxlIHdvcmtib29rcyBkaXJlY3RvcnlcclxuICBBQ1NfU2FtcGxlc0RpciA9ICdzYW1wbGVzLWRpcidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERlbHRhVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIERFTFRBX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIERFTFRBX0FEREVEID0gJ2FkZGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgREVMVEFfRURJVEVEID0gJ2VkaXRlZCcsXHJcblxyXG4gIC8vIFxyXG4gIERFTFRBX1JFTU9WRUQgPSAncmVtb3ZlZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEV4dHJhY3RUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFR5cGVfQWxsID0gJ2V4dHJhY3QtdHlwZS1hbGwnLFxyXG5cclxuICAvLyBcclxuICBFeHRyYWN0VHlwZV9Tb21lID0gJ2V4dHJhY3QtdHlwZS1zb21lJyxcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFR5cGVfTm9uZSA9ICdleHRyYWN0LXR5cGUtbm9uZSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEV4dHJhY3RSZWZyZXNoU3RhdHVzIHtcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFJlZnJlc2hfTm9uZSA9ICdleHRyYWN0LXJlZnJlc2gtbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEV4dHJhY3RSZWZyZXNoX1BlbmRpbmcgPSAnZXh0cmFjdC1yZWZyZXNoLXBlbmRpbmcnLFxyXG5cclxuICAvLyBcclxuICBFeHRyYWN0UmVmcmVzaF9JblByb2dyZXNzID0gJ2V4dHJhY3QtcmVmcmVzaC1pbnByb2dyZXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgRXh0cmFjdFJlZnJlc2hfRG9uZSA9ICdleHRyYWN0LXJlZnJlc2gtZG9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEV4dHJhY3RSZWZyZXNoX0Vycm9yID0gJ2V4dHJhY3QtcmVmcmVzaC1lcnJvcicsXHJcblxyXG4gIC8vIFxyXG4gIEV4dHJhY3RSZWZyZXNoX0NhbmNlbGVkID0gJ2V4dHJhY3QtcmVmcmVzaC1jYW5jZWxlZCdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIE1hcFVuaXRTZWxlY3Rpb25FbnVtIHtcclxuXHJcbiAgLy8gXHJcbiAgTVVTX0F1dG9tYXRpYyA9ICdhdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBNVVNfTWV0cmljID0gJ21ldHJpYycsXHJcblxyXG4gIC8vIFxyXG4gIE1VU19VUyA9ICd1cydcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgUlRfRlVMTCA9ICdmdWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgUlRfSU5DUkVNRU5UID0gJ2luY3JlbWVudCcsXHJcblxyXG4gIC8vIFxyXG4gIFJUX0FQUEVORF9GUk9NX0RBVEFfU09VUkNFID0gJ2FwcGVuZC1mcm9tLWRhdGEtc291cmNlJyxcclxuXHJcbiAgLy8gXHJcbiAgUlRfQVBQRU5EX0ZST01fRklMRSA9ICdhcHBlbmQtZnJvbS1maWxlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gQ2FsY1N0eWxlIHtcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX0RFRkFVTFQgPSAnc3R5bGVfZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9QUklNQVJZX0ZJRUxEID0gJ3N0eWxlX3ByaW1fZmllbGQnLFxyXG5cclxuICAvLyBcclxuICBTQ0VfU1RZTEVfU0VDT05EQVJZX0ZJRUxEID0gJ3N0eWxlX3NlY19maWVsZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9MT0NBTF9GVU5DVElPTiA9ICdzdHlsZV9sb2NhbF9mdW5jJyxcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX1JFTU9URV9GVU5DVElPTiA9ICdzdHlsZV9yZW1vdGVfZnVuYycsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9QQVJBTUVURVIgPSAnc3R5bGVfcGFyYW0nLFxyXG5cclxuICAvLyBcclxuICBTQ0VfU1RZTEVfQ09NTUVOVCA9ICdzdHlsZV9jb21tZW50JyxcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX0lOVkFMSURfRklFTEQgPSAnc3R5bGVfaW52YWxpZF9maWVsZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9UQUJMRV9FWFBSID0gJ3N0eWxlX3RhYmxlX2V4cHInLFxyXG5cclxuICAvLyBcclxuICBTQ0VfU1RZTEVfU1RSSU5HID0gJ3N0eWxlX3N0cmluZycsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9ESVNBQkxFRCA9ICdzdHlsZV9kaXNhYmxlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9EUkFHX09WRVJfRklFTEQgPSAnc3R5bGVfZHJhZ19vdmVyX2ZpZWxkJyxcclxuXHJcbiAgLy8gXHJcbiAgU0NFX1NUWUxFX0RSQUdfT1ZFUl9TRUwgPSAnc3R5bGVfZHJhZ19vdmVyX3NlbCcsXHJcblxyXG4gIC8vIFxyXG4gIFNDRV9TVFlMRV9TRUxFQ1RJT04gPSAnc3R5bGVfc2VsZWN0aW9uJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRnVuY3Rpb25Hcm91cCB7XHJcblxyXG4gIC8vIFxyXG4gIEZHX05VTUVSSUMgPSAnbnVtJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfU1RSSU5HID0gJ3N0cicsXHJcblxyXG4gIC8vIFxyXG4gIEZHX0RBVEUgPSAnZGF0ZScsXHJcblxyXG4gIC8vIFxyXG4gIEZHX0NBU1QgPSAnY2FzdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZHX0xPR0lDQUwgPSAnbG9naWMnLFxyXG5cclxuICAvLyBcclxuICBGR19BR0dSRUdBVEUgPSAnYWdnJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfT1BFUkFUT1IgPSAnb3BlcicsXHJcblxyXG4gIC8vIFxyXG4gIEZHX1NZU1RFTSA9ICdzeXMnLFxyXG5cclxuICAvLyBcclxuICBGR19QQVNTVEhSVSA9ICdwYXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfU1BFQ0lBTCA9ICdzcGVjJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfVVNFUiA9ICd1c2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgRkdfVEFCTEVDQUxDID0gJ3RhYmxlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRnVuY3Rpb25BcmdUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRkFUX05PTkUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9CT09MID0gJ2Jvb2xlYW4nLFxyXG5cclxuICAvLyBcclxuICBGQVRfUkVBTCA9ICdyZWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX0lOVCA9ICdpbnRlZ2VyJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX1NUUiA9ICdzdHInLFxyXG5cclxuICAvLyBcclxuICBGQVRfREFURVRJTUUgPSAnZGF0ZXRpbWUnLFxyXG5cclxuICAvLyBcclxuICBGQVRfREFURSA9ICdkYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX0xPQ0FMU1RSID0gJ2xvY3N0cicsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9OVUxMID0gJ25pbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9FUlJPUiA9ICdlcnInLFxyXG5cclxuICAvLyBcclxuICBGQVRfQU5ZID0gJ2FueScsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9CSU4gPSAnYmluJyxcclxuXHJcbiAgLy8gXHJcbiAgRkFUX1RVUExFID0gJ3R1cCcsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9MT0NBTFJFQUwgPSAnbG9jcmVhbCcsXHJcblxyXG4gIC8vIFxyXG4gIEZBVF9MT0NBTElOVCA9ICdsb2NpbnQnLFxyXG5cclxuICAvLyBcclxuICBGQVRfU1BBVElBTCA9ICdzcGF0aWFsJ1xyXG59XHJcblxyXG4vLyBsb2dpY2FsIHBvc2l0aW9uIG9mIGFjdGl2aXR5IHN1Y2ggYXMgQmVnYW4gb3IgRW5kZWRcclxuZXhwb3J0IGVudW0gQWN0aXZpdHlEaXNwb3NpdGlvbiB7XHJcblxyXG4gIC8vIG5vIGFjdGl2aXR5XHJcbiAgTm9EaXNwb3NpdGlvbiA9ICduby1kaXNwb3NpdGlvbicsXHJcblxyXG4gIC8vIGFjdGl2aXR5IGhhcyBiZWdhblxyXG4gIEJlZ2FuID0gJ2JlZ2FuJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgaGFzIGVuZGVkXHJcbiAgRW5kZWQgPSAnZW5kZWQnLFxyXG5cclxuICAvLyBhY3Rpdml0eSBoYXMgb2NjdXJyZWQgYnV0IG5laXRoZXIgYmVnYW4gbm9yIGVuZGVkIGlzIGtub3duXHJcbiAgT2NjdXJyZWQgPSAnb2NjdXJyZWQnLFxyXG5cclxuICAvLyBpbmRlZmluaXRlIGFjdGl2aXR5IGlzIGV4ZWN1dGluZ1xyXG4gIEFjdGl2ZSA9ICdhY3RpdmUnLFxyXG5cclxuICAvLyBpbmRlZmluaXRlIGFjdGl2aXR5IGhhcyB5aWVsZGVkIChlLmcuLCBpZGxlLCB3YWl0aW5nLCBzbGVlcGluZywgcXVpZXNjZSlcclxuICBJZGxlID0gJ2lkbGUnXHJcbn1cclxuXHJcbi8vIHJlc3VsdCBvZiBhY3Rpdml0eSBzdWNoIGFzIFN1Y2Nlc3MgYW5kIEZhaWx1cmVcclxuZXhwb3J0IGVudW0gQWN0aXZpdHlSZXN1bHQge1xyXG5cclxuICAvLyBhY3Rpdml0eSBoYXMgbm8gcmVzdWx0XHJcbiAgTm9SZXN1bHQgPSAnbm8tcmVzdWx0JyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgZW5kZWQgd2l0aCBzdWNjZXNzXHJcbiAgU3VjY2VlZGVkID0gJ3N1Y2NlZWRlZCcsXHJcblxyXG4gIC8vIGFjdGl2aXR5IGVuZGVkIHdpdGggZmFpbHVyZVxyXG4gIEZhaWxlZCA9ICdmYWlsdXJlJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgZW5kZWQgd2l0aCB0aHJvd24gZXhjZXB0aW9uXHJcbiAgVGhyZXdFeGNlcHRpb24gPSAndGhyZXctZXhjZXB0aW9uJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgZW5kZWQgZHVlIHRvIGEgdGltZW91dFxyXG4gIFRpbWVkT3V0ID0gJ3RpbWVkLW91dCcsXHJcblxyXG4gIC8vIGFjdGl2aXR5IHdhcyBjYW5jZWxlZFxyXG4gIENhbmNlbGVkID0gJ2NhbmNlbGVkJyxcclxuXHJcbiAgLy8gYWN0aXZpdHkgaGFzIHVua25vd24gcmVzdWx0XHJcbiAgVW5rbm93blJlc3VsdCA9ICd1bmtub3duLXJlc3VsdCdcclxufVxyXG5cclxuLy8gdHlwZSBvZiBhbmFseXRpY3Mgb2JqZWN0XHJcbmV4cG9ydCBlbnVtIEFuYWx5dGljc09iamVjdFR5cGUge1xyXG5cclxuICAvLyBcclxuICBDb25zdGFudFJlZmVyZW5jZUxpbmUgPSAnY29uc3RhbnQtcmVmZXJlbmNlLWxpbmUnLFxyXG5cclxuICAvLyBcclxuICBBdmVyYWdlUmVmZXJlbmNlTGluZSA9ICdhdmVyYWdlLXJlZmVyZW5jZS1saW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tUmVmZXJlbmNlTGluZSA9ICdjdXN0b20tcmVmZXJlbmNlLWxpbmUnLFxyXG5cclxuICAvLyBcclxuICBDdXN0b21SZWZlcmVuY2VCYW5kID0gJ2N1c3RvbS1yZWZlcmVuY2UtYmFuZCcsXHJcblxyXG4gIC8vIFxyXG4gIEF2ZXJhZ2VBbmROaW5ldHlGaXZlID0gJ2F2ZXJhZ2UtYW5kLW5pbmV0eS1maXZlJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVkaWFuQW5kTmluZXR5Rml2ZSA9ICdtZWRpYW4tYW5kLW5pbmV0eS1maXZlJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VzdG9tRGlzdHJpYnV0aW9uQmFuZCA9ICdjdXN0b20tZGlzdHJpYnV0aW9uLWJhbmQnLFxyXG5cclxuICAvLyBcclxuICBCb3hwbG90ID0gJ2JveHBsb3QnLFxyXG5cclxuICAvLyBcclxuICBDdXN0b21Cb3hwbG90ID0gJ2N1c3RvbS1ib3hwbG90JyxcclxuXHJcbiAgLy8gXHJcbiAgVG90YWxzID0gJ3RvdGFscycsXHJcblxyXG4gIC8vIFxyXG4gIFRyZW5kTGluZU9iamVjdCA9ICd0cmVuZC1saW5lLW9iamVjdCcsXHJcblxyXG4gIC8vIFxyXG4gIEZvcmVjYXN0ID0gJ2ZvcmVjYXN0JyxcclxuXHJcbiAgLy8gXHJcbiAgQ2x1c3RlciA9ICdjbHVzdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgT3V0bGllciA9ICdvdXRsaWVyJyxcclxuXHJcbiAgLy8gXHJcbiAgTWVkaWFuQW5kUXVhcnRpbGVzID0gJ21lZGlhbi1hbmQtcXVhcnRpbGVzJyxcclxuXHJcbiAgLy8gXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG4vLyB0YXJnZXQgd2hlcmUgYW4gYW5hbHl0aWNzIG9iamVjdCBtYXkgYmUgZHJvcHBlZFxyXG5leHBvcnQgZW51bSBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0IHtcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0Q2VsbCA9ICd0YXJnZXQtY2VsbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldFBhbmUgPSAndGFyZ2V0LXBhbmUnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRUYWJsZSA9ICd0YXJnZXQtdGFibGUnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRMaW5lYXIgPSAndGFyZ2V0LWxpbmVhcicsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldExvZyA9ICd0YXJnZXQtbG9nJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0RXhwb25lbnRpYWwgPSAndGFyZ2V0LWV4cG9uZW50aWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0UG9seW5vbWlhbCA9ICd0YXJnZXQtcG9seW5vbWlhbCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldFBvd2VyID0gJ3RhcmdldC1wb3dlcicsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldEZvcmVjYXN0ID0gJ3RhcmdldC1mb3JlY2FzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFRhcmdldENsdXN0ZXIgPSAndGFyZ2V0LWNsdXN0ZXInLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRPdXRsaWVyID0gJ3RhcmdldC1vdXRsaWVyJyxcclxuXHJcbiAgLy8gXHJcbiAgVGFyZ2V0U3VidG90YWxzID0gJ3RhcmdldC1zdWJ0b3RhbHMnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRDb2x1bW5Ub3RhbHMgPSAndGFyZ2V0LWNvbHVtbi10b3RhbHMnLFxyXG5cclxuICAvLyBcclxuICBUYXJnZXRSb3dUb3RhbHMgPSAndGFyZ2V0LXJvdy10b3RhbHMnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBDYWxjQXBwbHlSZXN1bHQge1xyXG5cclxuICAvLyBjYXB0aW9uIGZvciBuZXcgY2FsY3VsYXRpb24gaXMgaW52YWxpZFxyXG4gIElOVkFMSURfQ0FQVElPTiA9ICdpbnZhbGlkLWNhcHRpb24tZm9yLW5ldy1jYWxjJyxcclxuXHJcbiAgLy8gZm9ybXVsYSBpcyBpbnZhbGlkXHJcbiAgSU5WQUxJRF9GT1JNVUxBID0gJ2ludmFsaWQtZm9ybXVsYScsXHJcblxyXG4gIC8vIHN1Y2Nlc3NmdWxseSBhcHBsaWVkXHJcbiAgU1VDQ0VFRCA9ICdzdWNjZWVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1cyB7XHJcblxyXG4gIC8vIFxyXG4gIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfU3VjY2VzcyA9ICdzdWNjZXNzJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c19VbnN1cHBvcnRlZENvbnRyb2xUeXBlRXJyb3IgPSAndW5zdXBwb3J0ZWQtY29udHJvbC10eXBlLWVycm9yJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c19VbnN1cHBvcnRlZEFjdGlvbkVycm9yID0gJ3Vuc3VwcG9ydGVkLWFjdGlvbi1lcnJvcicsXHJcblxyXG4gIC8vIFxyXG4gIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfQ29tcG9uZW50Tm90Rm91bmRFcnJvciA9ICdjb21wb25lbnQtbm90LWZvdW5kLWVycm9yJyxcclxuXHJcbiAgLy8gXHJcbiAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c19Vbmtub3duRXJyb3IgPSAndW5rbm93bi1lcnJvcicsXHJcblxyXG4gIC8vIFxyXG4gIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfU2F2ZUVycm9yID0gJ3NhdmUtZXJyb3InLFxyXG5cclxuICAvLyBcclxuICBVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzX0JhZElucHV0RXJyb3IgPSAnYmFkLWlucHV0LWVycm9yJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRHJvcFdoZW4ge1xyXG5cclxuICAvLyBcclxuICBEcm9wV2hlbk5ldmVyID0gJ25ldmVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJvcFdoZW5BbHdheXMgPSAnYWx3YXlzJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJvcFdoZW5TZWxlY3RlZCA9ICd3aGVuLXNlbGVjdGVkJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gVmFsdWVEb21haW5UeXBlIHtcclxuXHJcbiAgLy8gaW52YWxpZCBkb21haW5cclxuICBET01BSU5fSU5WQUxJRCA9ICdkb21haW4taW52YWxpZCcsXHJcblxyXG4gIC8vIHVzZXIgY2FuIHR5cGUgaW4gYW55IHZhbHVlIHRoZXkgcGxlYXNlXCIgMVxyXG4gIERPTUFJTl9GUkVFX0VOVFJZID0gJ2RvbWFpbi1mcmVlLWVudHJ5JyxcclxuXHJcbiAgLy8gdXNlciBtdXN0IHNlbGVjdCBhIHZhbHVlIGZyb20gdGhlIGxpc3RcclxuICBET01BSU5fTElTVCA9ICdkb21haW4tbGlzdCcsXHJcblxyXG4gIC8vIHVzZXIgY2FuIGZyZWVseSBlbnRlciB2YWx1ZXMgYXMgbG9uZyBhcyB0aGV5IGFyZSBhYm92ZSBtaW4gdmFsdWVcclxuICBET01BSU5fTUlOID0gJ2RvbWFpbi1taW4nLFxyXG5cclxuICAvLyB1c2VyIGNhbiBmcmVlbHkgZW50ZXIgdmFsdWVzIGFzIGxvbmcgYXMgdGhleSBhcmUgYmVsb3cgbWF4IHZhbHVlXHJcbiAgRE9NQUlOX01BWCA9ICdkb21haW4tbWF4J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gT3BlcmF0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEVxdWFscyA9ICdlcXVhbHMnLFxyXG5cclxuICAvLyBcclxuICBOb3RFcXVhbHMgPSAnbm90LWVxdWFscycsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuID0gJ2xlc3MtdGhhbicsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuRXF1YWwgPSAnbGVzcy10aGFuLWVxdWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgR3JlYXRlclRoYW4gPSAnZ3JlYXRlci10aGFuJyxcclxuXHJcbiAgLy8gXHJcbiAgR3JlYXRlclRoYW5FcXVhbCA9ICdncmVhdGVyLXRoYW4tZXF1YWwnLFxyXG5cclxuICAvLyBcclxuICBSYW5nZUluY2x1c2l2ZSA9ICdyYW5nZS1pbmNsdXNpdmUnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEcm9wRmllbGRSZXN1bHQge1xyXG5cclxuICAvLyBcclxuICBEcm9wRmllbGRObyA9ICdubycsXHJcblxyXG4gIC8vIFxyXG4gIERyb3BGaWVsZFllcyA9ICd5ZXMnLFxyXG5cclxuICAvLyBcclxuICBEcm9wRmllbGRMb2NrID0gJ2xvY2snLFxyXG5cclxuICAvLyBcclxuICBEcm9wRmllbGRGaWx0ZXIgPSAnZmlsdGVyJyxcclxuXHJcbiAgLy8gXHJcbiAgRHJvcEZpZWxkRGlzYWdncmVnYXRlID0gJ2Rpc2FnZ3JlZ2F0ZSdcclxufVxyXG5cclxuLy8gcmVzb2x1dGlvbiB0eXBlIGZvciBhIG5hbWUgY29uZmxpY3RcclxuZXhwb3J0IGVudW0gTmFtZUNvbmZsaWN0UmVzb2x1dGlvbiB7XHJcblxyXG4gIC8vIFxyXG4gIE5SQ19Vc2VPbGQgPSAndXNlLW9sZCcsXHJcblxyXG4gIC8vIFxyXG4gIE5SQ19Vc2VOZXcgPSAndXNlLW5ldycsXHJcblxyXG4gIC8vIFxyXG4gIE5SQ19SZW5hbWVOZXcgPSAncmVuYW1lLW5ldydcclxufVxyXG5cclxuLy8gdXNlIGVpdGhlciBhIHN0cmluZyBzZXBhcmF0b3Igb3IgYSBzZXQgbnVtYmVyIG9mIGNoYXJhY3RlcnNcclxuZXhwb3J0IGVudW0gU2VwYXJhdG9yVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIFNlcGFyYXRvclR5cGVfX1N0cmluZ1NlcGFyYXRvciA9ICdzdHJpbmctc2VwYXJhdG9yJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VwYXJhdG9yVHlwZV9fQ2hhcmFjdGVyQ291bnRTZXBhcmF0b3IgPSAnY2hhcmFjdGVyLWNvdW50LXNlcGFyYXRvcidcclxufVxyXG5cclxuLy8gc3BsaXQgZ2xvYmFsbHkgb3Igb25seSBvbiB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvciBvbmx5IG9uIHRoZSBsYXN0IG9jY3VycmVuY2VcclxuZXhwb3J0IGVudW0gU3BsaXRNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgU3BsaXRNb2RlX19DU19BTEwgPSAnc3BsaXQtYWxsJyxcclxuXHJcbiAgLy8gXHJcbiAgU3BsaXRNb2RlX19DU19GSVJTVCA9ICdzcGxpdC1maXJzdCcsXHJcblxyXG4gIC8vIFxyXG4gIFNwbGl0TW9kZV9fQ1NfTEFTVCA9ICdzcGxpdC1sYXN0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTm9kZVNlbGVjdGlvblR5cGUge1xyXG5cclxuICAvLyBcclxuICBOb2RlU2VsZWN0aW9uX05vbmUgPSAnbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIE5vZGVTZWxlY3Rpb25fU2luZ2xlUm93ID0gJ3NpbmdsZS1yb3cnLFxyXG5cclxuICAvLyBcclxuICBOb2RlU2VsZWN0aW9uX011bHRpUm93ID0gJ211bHRpLXJvdycsXHJcblxyXG4gIC8vIFxyXG4gIE5vZGVTZWxlY3Rpb25fU2luZ2xlQ29sdW1uID0gJ3NpbmdsZS1jb2x1bW4nLFxyXG5cclxuICAvLyBcclxuICBOb2RlU2VsZWN0aW9uX011bHRpQ29sdW1uID0gJ211bHRpLWNvbHVtbicsXHJcblxyXG4gIC8vIFxyXG4gIE5vZGVTZWxlY3Rpb25fTWl4ZWQgPSAnbWl4ZWQnXHJcbn1cclxuXHJcbi8vIGljb25zIGZvciBBY3Rpb257U291cmNlL0Rlc3R9Q29tYm9cclxuZXhwb3J0IGVudW0gU291cmNlRGVzdEljb24ge1xyXG5cclxuICAvLyBcclxuICBTRElfRGF0YVNvdXJjZSA9ICdkYXRhLXNvdXJjZScsXHJcblxyXG4gIC8vIFxyXG4gIFNESV9Xb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgU0RJX0Rhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG5cclxuICAvLyBcclxuICBTRElfQWxsID0gJ2FsbCdcclxufVxyXG5cclxuLy8gcG9zaXRpb24gYW5kIG9yaWVudGF0aW9uIG9mIGxlZ2VuZHMgb24gYSBzaGVldFxyXG5leHBvcnQgZW51bSBMZWdlbmRMYXlvdXQge1xyXG5cclxuICAvLyBcclxuICBMTF9SaWdodFZlcnRpY2FsID0gJ3JpZ2h0LXZlcnRpY2FsJyxcclxuXHJcbiAgLy8gXHJcbiAgTExfUmlnaHRIb3Jpem9udGFsID0gJ3JpZ2h0LWhvcml6b250YWwnLFxyXG5cclxuICAvLyBcclxuICBMTF9Cb3R0b21WZXJ0aWNhbCA9ICdib3R0b20tdmVydGljYWwnLFxyXG5cclxuICAvLyBcclxuICBMTF9Cb3R0b21Ib3Jpem9udGFsID0gJ2JvdHRvbS1ob3Jpem9udGFsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gR2V0SnNvblJlc3BvbnNlRW51bSB7XHJcblxyXG4gIC8vIHRoZSBqc29uIHJlcG9uc2UgZXhpc3RzIGFuZCBpcyB2YWxpZFxyXG4gIEpTT05fT0sgPSAnb2snLFxyXG5cclxuICAvLyB0aGUgc2hlZXQgc3BlY2lmaWVkIGlzIG5vdCB2YWxpZFxyXG4gIEpTT05fTk9fU0hFRVQgPSAnbm8tc2hlZXQnLFxyXG5cclxuICAvLyB0aGUgZmllbGQgaWQgaXMgaW52YWxpZCBmb3IgdGhpcyBmaWx0ZXJcclxuICBKU09OX0lOVkFMSURfRklFTEQgPSAnaW52YWxpZC1maWVsZCdcclxufVxyXG5cclxuLy8gY2xpZW50IG1ldHJpYyBkZXNjcmlwdGlvbnNcclxuZXhwb3J0IGVudW0gQ2xpZW50TWV0cmljIHtcclxuXHJcbiAgLy8gVW5rbm93biBNZXRyaWNcclxuICBDTV9Vbmtub3duID0gJ1VOS05XTicsXHJcblxyXG4gIC8vIEJvb3RzdHJhcCBSZXF1ZXN0XHJcbiAgQ01fQm9vdHN0cmFwUmVxdWVzdCA9ICdCVFNUUlAnLFxyXG5cclxuICAvLyBQcm9jZXNzIFByaW1hcnkgUGF5bG9hZFxyXG4gIENNX1Byb2Nlc3NQcmltYXJ5UGF5bG9hZCA9ICdQUk9QUkknLFxyXG5cclxuICAvLyBQcm9jZXNzIFNlY29uZGFyeSBQYXlsb2FkXHJcbiAgQ01fUHJvY2Vzc1NlY29uZGFyeVBheWxvYWQgPSAnUFJPU0VDJyxcclxuXHJcbiAgLy8gSW5pdGlhbGl6ZSBNb2RlbHNcclxuICBDTV9Jbml0aWFsaXplTW9kZWxzID0gJ01ETElOSScsXHJcblxyXG4gIC8vIEhhbmRsZSBNb2RlbCBFdmVudHNcclxuICBDTV9IYW5kbGVNb2RlbEV2ZW50cyA9ICdNRExFVlQnLFxyXG5cclxuICAvLyBFeGVjdXRlIExvY2FsIENvbW1hbmRcclxuICBDTV9FeGVjdXRlTG9jYWxDb21tYW5kID0gJ0VYRUxPQycsXHJcblxyXG4gIC8vIEV4ZWN1dGUgUmVtb3RlIENvbW1hbmRcclxuICBDTV9FeGVjdXRlUmVtb3RlQ29tbWFuZCA9ICdFWEVSRU0nLFxyXG5cclxuICAvLyBQcm9jZXNzIExvY2FsIENvbW1hbmQgUmVzcG9uc2VcclxuICBDTV9Qcm9jZXNzTG9jYWxSZXNwb25zZSA9ICdQUk9MT0MnLFxyXG5cclxuICAvLyBQcm9jZXNzIFJlbW90ZSBDb21tYW5kIFJlc3BvbnNlXHJcbiAgQ01fUHJvY2Vzc1JlbW90ZVJlc3BvbnNlID0gJ1BST1JFTScsXHJcblxyXG4gIC8vIFJlbmRlciBQYW5ldGFibGVcclxuICBDTV9SZW5kZXJQYW5ldGFibGUgPSAnUk5EUlBUJyxcclxuXHJcbiAgLy8gUmVuZGVyIFJlZ2lvblxyXG4gIENNX1JlbmRlclJlZ2lvbiA9ICdSTkRSUkcnLFxyXG5cclxuICAvLyBSdW50aW1lIG1vZGVsIHByZXNtb2RlbCBjb252ZXJzaW9uXHJcbiAgQ01fUnVudGltZUNvbnZlcnNpb24gPSAnUlRDT05WJyxcclxuXHJcbiAgLy8gQ2xpZW50IExvYWRlZFxyXG4gIENNX0NsaWVudExvYWRlZCA9ICdDTE5UTEQnLFxyXG5cclxuICAvLyBBcHBsaWNhdGlvbiBTdGFydHVwXHJcbiAgQ01fQXBwbGljYXRpb25TdGFydHVwID0gJ0FQUFNUUicsXHJcblxyXG4gIC8vIEFwcGxpY2F0aW9uIEludGVyYWN0aXZlXHJcbiAgQ01fQXBwbGljYXRpb25JbnRlcmFjdGl2ZSA9ICdBUFBJTlQnLFxyXG5cclxuICAvLyBBbGwgWm9uZXMgTG9hZGVkXHJcbiAgQ01fQWxsWm9uZXNMb2FkZWQgPSAnQUxMWk5TJyxcclxuXHJcbiAgLy8gVG9vbGJhciBMYXlvdXRcclxuICBDTV9Ub29sYmFyTGF5b3V0ID0gJ1RCUkxBWScsXHJcblxyXG4gIC8vIFRvb2xiYXIgSGFuZGxlTmV3VG9vbGJhclxyXG4gIENNX1Rvb2xiYXJIYW5kbGVOZXdUb29sYmFyID0gJ1RCUkhOVCcsXHJcblxyXG4gIC8vIFRvb2xiYXIgQWRkVG9vbGJhclxyXG4gIENNX1Rvb2xiYXJBZGRUb29sYmFyID0gJ1RCUkFERCcsXHJcblxyXG4gIC8vIFRvb2xiYXIgSGFuZGxlUmVzaXplXHJcbiAgQ01fVG9vbGJhckhhbmRsZVJlc2l6ZSA9ICdUQlJIUkUnLFxyXG5cclxuICAvLyBKYXZhU2NyaXB0IE1vZHVsZSBsb2FkZWQgYXN5bmNocm9ub3VzbHlcclxuICBDTV9Nb2R1bGVMb2FkZWQgPSAnTURMT0FEJ1xyXG59XHJcblxyXG4vLyByZXN1bHQgY29kZSBmb3IgaW1hZ2VzIGVkaXQgb3BlcmF0aW9uXHJcbmV4cG9ydCBlbnVtIEltYWdlc0VkaXRSZXN1bHRDb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgSUVSX1N1Y2Nlc3MgPSAnc3VjY2VzcycsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9FbXB0eUNhcHRpb24gPSAnZW1wdHktY2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9EdXBsaWNhdGVDYXB0aW9uID0gJ2R1cGxpY2F0ZS1jYXB0aW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgSUVSX0ZhaWxlZFZhbGlkYXRpb24gPSAnZmFpbGVkLXZhbGlkYXRpb24nLFxyXG5cclxuICAvLyBcclxuICBJRVJfSW52YWxpZFVSTCA9ICdpbnZhbGlkLXVybCcsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9FbXB0eVhSYW5nZSA9ICdlbXB0eS14LXJhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgSUVSX0VtcHR5WVJhbmdlID0gJ2VtcHR5LXktcmFuZ2UnLFxyXG5cclxuICAvLyBcclxuICBJRVJfTm9JbWFnZVByZXZpZXcgPSAnbm8taW1hZ2UtcHJldmlldycsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9SZW5kZXJFeGNlcHRpb24gPSAncmVuZGVyLWV4Y2VwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIElFUl9UYWJsZWF1RXhjZXB0aW9uID0gJ3RhYmxlYXUtZXhjZXB0aW9uJ1xyXG59XHJcblxyXG4vLyB0aGUgc291cmNlIG9mIHRoZSB1bmRlcmx5aW5nIGRhdGEgdXNlZCBieSB0aGUgZGF0YSBwcm92aWRlclxyXG5leHBvcnQgZW51bSBEYXRhUHJvdmlkZXJUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgRFBfRGF0YXNvdXJjZSA9ICdkYXRhc291cmNlJyxcclxuXHJcbiAgLy8gXHJcbiAgRFBfU2VsZWN0aW9uID0gJ3NlbGVjdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIERQX1RhYmxlID0gJ3RhYmxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRFBfU1FMUXVlcnkgPSAnc3FsLXF1ZXJ5J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRGFzaGJvYXJkRGV2aWNlTGF5b3V0IHtcclxuXHJcbiAgLy8gXHJcbiAgRGFzaGJvYXJkRGV2aWNlTGF5b3V0X0RlZmF1bHQgPSAnZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIERhc2hib2FyZERldmljZUxheW91dF9EZXNrdG9wID0gJ2Rlc2t0b3AnLFxyXG5cclxuICAvLyBcclxuICBEYXNoYm9hcmREZXZpY2VMYXlvdXRfVGFibGV0ID0gJ3RhYmxldCcsXHJcblxyXG4gIC8vIFxyXG4gIERhc2hib2FyZERldmljZUxheW91dF9QaG9uZSA9ICdwaG9uZSdcclxufVxyXG5cclxuLy8gd2hvIGlzIGNhbGxpbmcgdGhlIGRldmljZSBkZXRlY3Rpb24gbG9naWNcclxuZXhwb3J0IGVudW0gRGV2aWNlU291cmNlIHtcclxuXHJcbiAgLy8gTm90aGluZyBzcGVjaWFsIGFib3V0IHRoZSBjYWxsZXIgdG8gdGhlIGRldGVjdGlvbiBsb2dpYy4gVGhpcyBtZWFucyBpdCBpcyB0aGUgd2ViIGJyb3dzZXIuXHJcbiAgRGV2aWNlU291cmNlX1Vua25vd24gPSAndW5rbm93bicsXHJcblxyXG4gIC8vIHRoZSBzbmFwc2hvdCBzZXJ2aWNlIGZvciB0aGUgbW9iaWxlIGFwcFxyXG4gIERldmljZVNvdXJjZV9TbmFwc2hvdFNlcnZpY2UgPSAnc25hcHNob3Qtc3J2JyxcclxuXHJcbiAgLy8gdGhlIDpkZXZpY2UgdXJsIHBhcmFtZXRlclxyXG4gIERldmljZVNvdXJjZV9VcmxQYXJhbSA9ICd1cmwtcGFyYW0nXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb24ge1xyXG5cclxuICAvLyBcclxuICBOb0RpbWVuc2lvbiA9ICdubycsXHJcblxyXG4gIC8vIFxyXG4gIE1pbldpZHRoRGltZW5zaW9uID0gJ21pbndpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgTWluSGVpZ2h0RGltZW5zaW9uID0gJ21pbmhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIE1heFdpZHRoRGltZW5zaW9uID0gJ21heHdpZHRoJyxcclxuXHJcbiAgLy8gXHJcbiAgTWF4SGVpZ2h0RGltZW5zaW9uID0gJ21heGhlaWdodCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkV2lkdGhEaW1lbnNpb24gPSAnZml4ZWR3aWR0aCcsXHJcblxyXG4gIC8vIFxyXG4gIEZpeGVkSGVpZ2h0RGltZW5zaW9uID0gJ2ZpeGVkaGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgU2Nyb2xsYWJsZUhlaWdodERpbWVuc2lvbiA9ICdzY3JvbGxhYmxlaGVpZ2h0JyxcclxuXHJcbiAgLy8gXHJcbiAgTWluRGltZW5zaW9ucyA9ICdtaW5zJyxcclxuXHJcbiAgLy8gXHJcbiAgTWF4RGltZW5zaW9ucyA9ICdtYXhzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gRmxpcGJvYXJkTmF2VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIENhcHRpb24gPSAnY2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIE51bWJlciA9ICdudW1iZXInLFxyXG5cclxuICAvLyBcclxuICBEb3QgPSAnZG90JyxcclxuXHJcbiAgLy8gXHJcbiAgQXJyb3dPbmx5ID0gJ2Fycm93b25seSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIERhc2hib2FyZFNpemluZ01vZGUge1xyXG5cclxuICAvLyBcclxuICBVbnNwZWNpZmllZFNpemluZyA9ICd1bnNwZWNpZmllZCcsXHJcblxyXG4gIC8vIFxyXG4gIEF1dG9tYXRpY1NpemluZyA9ICdhdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBGaXhlZFNpemluZyA9ICdmaXhlZCcsXHJcblxyXG4gIC8vIFxyXG4gIFJhbmdlU2l6aW5nID0gJ3JhbmdlJyxcclxuXHJcbiAgLy8gXHJcbiAgVlNjcm9sbFNpemluZyA9ICd2c2Nyb2xsJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gR3JpZE92ZXJsYXlNb2RlIHtcclxuXHJcbiAgLy8gXHJcbiAgR09NX0F1dG9tYXRpYyA9ICdnb20tYXV0b21hdGljJyxcclxuXHJcbiAgLy8gXHJcbiAgR09NX09uID0gJ2dvbS1vbicsXHJcblxyXG4gIC8vIFxyXG4gIEdPTV9PZmYgPSAnZ29tLW9mZidcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZSB7XHJcblxyXG4gIC8vIFxyXG4gIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9SZXBsYWNlRmllbGQgPSAncmVwbGFjZS1maWVsZC11c2UtY2FzZScsXHJcblxyXG4gIC8vIFxyXG4gIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9DcmVhdGVJZGVudGl0eVNldCA9ICdjcmVhdGUtaWRlbnRpdHktc2V0JyxcclxuXHJcbiAgLy8gXHJcbiAgRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlX0VkaXREYXRhc3JvdWNlQWxpYXNlcyA9ICdlZGl0LWRhdGFzb3VyY2UtYWxpYXNlcy11c2UtY2FzZScsXHJcblxyXG4gIC8vIFxyXG4gIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9FZGl0RmlsdGVycyA9ICdlZGl0LWZpbHRlcnMtdXNlLWNhc2UnLFxyXG5cclxuICAvLyBcclxuICBGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2VfRXh0cmFjdEZpbHRlciA9ICdpbmNyZW1lbnRhbC1leHRyYWN0LXVzZS1jYXNlJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gU2lkZVR5cGUge1xyXG5cclxuICAvLyBcclxuICBTVF9Ub3AgPSAndG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfUmlnaHQgPSAncmlnaHQnLFxyXG5cclxuICAvLyBcclxuICBTVF9Cb3R0b20gPSAnYm90dG9tJyxcclxuXHJcbiAgLy8gXHJcbiAgU1RfTGVmdCA9ICdsZWZ0J1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEVBX05vbmUgPSAnZWEtbm9uZScsXHJcblxyXG4gIC8vIFxyXG4gIEVBX1dhcm5pbmcgPSAnZWEtd2FybmluZycsXHJcblxyXG4gIC8vIFxyXG4gIEVBX1Byb21wdCA9ICdlYS1wcm9tcHQnLFxyXG5cclxuICAvLyBcclxuICBFQV9JbmZvID0gJ2VhLWluZm8nLFxyXG5cclxuICAvLyBcclxuICBFQV9TZXJ2ZXIgPSAnZWEtc2VydmVyJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdXNlciBoYXMgc2lnbmVkIGluIG9yIGlzIHNpZ25lZCBpbnRvIGEgc2VydmVyXHJcbmV4cG9ydCBlbnVtIFNlcnZlckNvbm5lY3Rpb25TdGF0dXMge1xyXG5cclxuICAvLyBUaGUgdXNlciBoYXMgbmV2ZXIgc2lnbmVkIGluXHJcbiAgTmV2ZXJTaWduZWRJbiA9ICdzZXJ2ZXItY29ubmVjdGlvbi1zdGF0dXMtbmV2ZXItc2lnbmVkLWluJyxcclxuXHJcbiAgLy8gVGhlIHVzZXIgaGFzIHNpZ25lZCBpbiBhdCBsZWFzdCBvbmNlXHJcbiAgSGFzU2lnbmVkSW4gPSAnc2VydmVyLWNvbm5lY3Rpb25fc3RhdHVzLWhhcy1zaWduZWQtaW4nLFxyXG5cclxuICAvLyBBdXRvIHNpZ24gaW4gd2lsbCBiZSBhdHRlbXB0ZWRcclxuICBXaWxsQXV0b1NpZ25JbiA9ICdzZXJ2ZXItY29ubmVjdGlvbl9zdGF0dXMtd2lsbC1hdXRvLXNpZ24taW4nLFxyXG5cclxuICAvLyBUaGUgdXNlciBpcyBzaWduZWQgaW5cclxuICBTaWduZWRJbiA9ICdzZXJ2ZXItY29ubmVjdGlvbl9zdGF0dXMtc2lnbmVkLWluJ1xyXG59XHJcblxyXG4vLyBTdGFydCBvZiBXZWVrIChTdGFydGluZyBEYXkpXHJcbmV4cG9ydCBlbnVtIFNPV1ZhbHVlIHtcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19TWVNURU1ERUZBVUxUID0gJ3Nvdy1zeXN0ZW0tZGVmYXVsdCcsXHJcblxyXG4gIC8vIFxyXG4gIFNPV1ZhbHVlX19TT1dfN0RBWVBFUklPRCA9ICdzb3ctNy1kYXktcGVyaW9kJyxcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19TVU5EQVkgPSAnc293LXN1bmRheScsXHJcblxyXG4gIC8vIFxyXG4gIFNPV1ZhbHVlX19TT1dfTU9OREFZID0gJ3Nvdy1tb25kYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX1RVRVNEQVkgPSAnc293LXR1ZXNkYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX1dFRE5FU0RBWSA9ICdzb3ctd2VkbmVzZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19USFVSU0RBWSA9ICdzb3ctdGh1cnNkYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX0ZSSURBWSA9ICdzb3ctZnJpZGF5JyxcclxuXHJcbiAgLy8gXHJcbiAgU09XVmFsdWVfX1NPV19TQVRVUkRBWSA9ICdzb3ctc2F0dXJkYXknLFxyXG5cclxuICAvLyBcclxuICBTT1dWYWx1ZV9fU09XX0lTTzg2MDFXRUVLID0gJ3Nvdy1pc284NjAxLXdlZWsnXHJcbn1cclxuXHJcbi8vIFR5cGUgb2YgRmluZCB0byBwZXJmb3JtXHJcbmV4cG9ydCBlbnVtIEZpbmRUeXBlIHtcclxuXHJcbiAgLy8gU3RhcnRzIFdpdGhcclxuICBGaW5kVHlwZV9TdGFydHMgPSAnZmluZHR5cGUtc3RhcnRzJyxcclxuXHJcbiAgLy8gRW5kcyBXaXRoXHJcbiAgRmluZFR5cGVfRW5kcyA9ICdmaW5kdHlwZS1lbmRzJyxcclxuXHJcbiAgLy8gQ29udGFpbnNcclxuICBGaW5kVHlwZV9Db250YWlucyA9ICdmaW5kdHlwZS1jb250YWlucycsXHJcblxyXG4gIC8vIEV4YWN0XHJcbiAgRmluZFR5cGVfRXhhY3QgPSAnZmluZHR5cGUtZXhhY3QnXHJcbn1cclxuXHJcbi8vIFBlcnNwZWN0aXZlVHlwZSBvZiBhIGdpdmVuIFBlcnNwZWN0aXZlUHJlc01vZGVsXHJcbmV4cG9ydCBlbnVtIFBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZSB7XHJcblxyXG4gIC8vIFJlYWxpdHlcclxuICBQZXJzcGVjdGl2ZVR5cGVfUmVhbGl0eSA9ICdwZXJzcGVjdGl2ZXR5cGUtcmVhbGl0eScsXHJcblxyXG4gIC8vIEZpcnN0XHJcbiAgUGVyc3BlY3RpdmVUeXBlX0ZpcnN0ID0gJ3BlcnNwZWN0aXZldHlwZS1maXJzdCcsXHJcblxyXG4gIC8vIExhc3RcclxuICBQZXJzcGVjdGl2ZVR5cGVfTGFzdCA9ICdwZXJzcGVjdGl2ZXR5cGUtbGFzdCcsXHJcblxyXG4gIC8vIEN1c3RvbVxyXG4gIFBlcnNwZWN0aXZlVHlwZV9DdXN0b20gPSAncGVyc3BlY3RpdmV0eXBlLWN1c3RvbSdcclxufVxyXG5cclxuLy8gTGlzdCBvZiBvcHRpb25zIGZvciB3aGF0IHRvIHdyaXRlIG91dCBmcm9tIGdldC1ydW50aW1lLWluZm9cclxuZXhwb3J0IGVudW0gUnVudGltZUluZm9SdW50aW1lT3V0cHV0IHtcclxuXHJcbiAgLy8gb3V0cHV0IHRoZSBWVEwgZnJvbSB0aGUgcHJvZHVjZXJzXHJcbiAgUmF3VlRMID0gJ3Jhdy12dGwnLFxyXG5cclxuICAvLyBvdXRwdXQgdGhlIGRhdGEgc3RvcmUgZnJvbSB0aGUgcHJvZHVjZXJzXHJcbiAgUmF3U3RvcmUgPSAncmF3LXN0b3JlJyxcclxuXHJcbiAgLy8gb3V0cHV0IHRoZSBncmFwaCBhbmQgY29tcGlsZWQgVlRMXHJcbiAgUGF5bG9hZFZUTCA9ICdwYXlsb2FkLXZ0bCcsXHJcblxyXG4gIC8vIG91dHB1dCB0aGUgZmluYWwgZGF0YSBzdG9yZSBhZnRlciB0cmFuc2Zvcm1zIGFyZSBydW5cclxuICBGaW5hbFN0b3JlID0gJ2ZpbmFsLXN0b3JlJyxcclxuXHJcbiAgLy8gb3V0cHV0IHRoZSBWVEwgYW5kIGRhdGEgc3RvcmUgZnJvbSB0aGUgcHJvZHVjZXJzXHJcbiAgSW5wdXQgPSAnaW5wdXQnLFxyXG5cclxuICAvLyBvdXRwdXQgdGhlIGZpbmFsIFZUTCBhbmQgZGF0YSBzdG9yZSBhZnRlciBjb21waWxhdGlvbiBhbmQgcnVubmluZ1xyXG4gIE91dHB1dCA9ICdvdXRwdXQnXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBHZW9tZXRyeVR5cGUge1xyXG5cclxuICAvLyBcclxuICBFbXB0eSA9ICdlbXB0eScsXHJcblxyXG4gIC8vIFxyXG4gIE11bHRpUG9seWdvbiA9ICdtdWx0aVBvbHlnb24nLFxyXG5cclxuICAvLyBcclxuICBNdWx0aVBvaW50ID0gJ211bHRpUG9pbnQnLFxyXG5cclxuICAvLyBcclxuICBNdWx0aUxpbmVTdHJpbmcgPSAnbXVsdGlMaW5lU3RyaW5nJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gTWFya1NpemluZ1NldHRpbmcge1xyXG5cclxuICAvLyBcclxuICBNYXJrc1NjYWxpbmdBdXRvbWF0aWMgPSAnbWFya3Mtc2NhbGluZy1hdXRvbWF0aWMnLFxyXG5cclxuICAvLyBcclxuICBNYXJrc1NjYWxpbmdPbiA9ICdtYXJrcy1zY2FsaW5nLW9uJyxcclxuXHJcbiAgLy8gXHJcbiAgTWFya3NTY2FsaW5nT2ZmID0gJ21hcmtzLXNjYWxpbmctb2ZmJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgY2FyZCB0eXBlIG9uIHdvcmtzaGVldHMuXHJcbmV4cG9ydCBlbnVtIENhcmRUeXBlIHtcclxuXHJcbiAgLy8gQ2FyZE1hbmFnZXIgdHJlYXRzIHplcm8gc3BlY2lhbGx5LCBzbyB3ZSBjYW4ndCBzdGFydCBhdCB6ZXJvLlxyXG4gIENvbHVtbnMgPSAnY2FyZHR5cGUtY29sdW1ucycsXHJcblxyXG4gIC8vIFxyXG4gIFJvd3MgPSAnY2FyZHR5cGUtcm93cycsXHJcblxyXG4gIC8vIFxyXG4gIFBhZ2VzID0gJ2NhcmR0eXBlLXBhZ2VzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ3VycmVudFBhZ2UgPSAnY2FyZHR5cGUtY3VycmVudFBhZ2UnLFxyXG5cclxuICAvLyBcclxuICBGaWx0ZXJzID0gJ2NhcmR0eXBlLWZpbHRlcnMnLFxyXG5cclxuICAvLyBcclxuICBNYXJrcyA9ICdjYXJkdHlwZS1tYXJrcycsXHJcblxyXG4gIC8vIFxyXG4gIE1lYXN1cmVzID0gJ2NhcmR0eXBlLW1lYXN1cmVzJyxcclxuXHJcbiAgLy8gXHJcbiAgQ29sb3JMZWdlbmQgPSAnY2FyZHR5cGUtY29sb3JMZWdlbmQnLFxyXG5cclxuICAvLyBcclxuICBTaGFwZUxlZ2VuZCA9ICdjYXJkdHlwZS1zaGFwZUxlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIFNpemVMZWdlbmQgPSAnY2FyZHR5cGUtc2l6ZUxlZ2VuZCcsXHJcblxyXG4gIC8vIFxyXG4gIE1hcExlZ2VuZCA9ICdjYXJkdHlwZS1tYXBMZWdlbmQnLFxyXG5cclxuICAvLyBcclxuICBUaXRsZSA9ICdjYXJkdHlwZS10aXRsZScsXHJcblxyXG4gIC8vIFxyXG4gIENhcHRpb24gPSAnY2FyZHR5cGUtY2FwdGlvbicsXHJcblxyXG4gIC8vIFxyXG4gIFN1bW1hcnkgPSAnY2FyZHR5cGUtc3VtbWFyeScsXHJcblxyXG4gIC8vIFxyXG4gIFBhcmFtZXRlciA9ICdjYXJkdHlwZS1wYXJhbWV0ZXInLFxyXG5cclxuICAvLyBcclxuICBRdWlja0ZpbHRlciA9ICdjYXJkdHlwZS1xdWlja0ZpbHRlcicsXHJcblxyXG4gIC8vIFxyXG4gIEhpZ2hsaWdodGVyID0gJ2NhcmR0eXBlLWhpZ2hsaWdodGVyJ1xyXG59XHJcblxyXG4vLyBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGFibGUgZGF0YSB0byBiZSBkaXNwbGF5ZWQuXHJcbmV4cG9ydCBlbnVtIFRhYmxlVmlld0RhdGFUeXBlIHtcclxuXHJcbiAgLy8gVGFibGUgdmlldyB3aXRoIGVhY2ggY29sdW1uIGlzIHNwZWNpZmllZCBieSBGaWVsZE5hbWUuIERQSV9Db2x1bW5zIGlzIHJlcXVpcmVkLlxyXG4gIFRhYmxlVmlld0ZpZWxkRGF0YSA9ICd0YWJsZS12aWV3LWZpZWxkLWRhdGEnLFxyXG5cclxuICAvLyBUYWJsZSB2aWV3IHdoZXJlIHRoZSBjb2x1bW5zIGFyZSBkZWZpbmVkIGJ5IGEgZ3JvdXAuIERQSV9GaWVsZE5hbWUgaXMgcmVxdWlyZWQuXHJcbiAgVGFibGVWaWV3R3JvdXBEYXRhID0gJ3RhYmxlLXZpZXctZ3JvdXAtZGF0YSdcclxufVxyXG5cclxuLy8gXHJcbmV4cG9ydCBlbnVtIFdhcm5pbmdUeXBlIHtcclxuXHJcbiAgLy8gXHJcbiAgTElOS19FUlJPUiA9ICdsaW5rZXJyb3InLFxyXG5cclxuICAvLyBcclxuICBPVkVSTEFQX1RFWFQgPSAnV2Fybk92ZXJsYXBwaW5nVGV4dCcsXHJcblxyXG4gIC8vIFxyXG4gIElOVkFMSURfV09SS1NIRUVUID0gJ1dhcm5JbnZhbGlkV29ya3NoZWV0JyxcclxuXHJcbiAgLy8gXHJcbiAgT1BFTl9CT09LID0gJ29wZW5ib29rJyxcclxuXHJcbiAgLy8gXHJcbiAgT1BFTl9EQVRBU09VUkNFID0gJ29wZW5kYXRhc291cmNlJyxcclxuXHJcbiAgLy8gXHJcbiAgT1BFTl9TSEVFVCA9ICdvcGVuc2hlZXQnLFxyXG5cclxuICAvLyBcclxuICBMT0NBTERBVEFfQU1CSUdVSVRZID0gJ0xvY2FsRGF0YUFtYmlndWl0eScsXHJcblxyXG4gIC8vIFxyXG4gIExPQ0FMREFUQV9NSVNNQVRDSCA9ICdMb2NhbERhdGFNaXNtYXRjaCcsXHJcblxyXG4gIC8vIFxyXG4gIE1JU1NJTkdfTE9DQUxfVElMRSA9ICdNaXNzaW5nTG9jYWxUaWxlcycsXHJcblxyXG4gIC8vIFxyXG4gIE1BUF9USUxFX0RPV05MT0FEID0gJ01hcFRpbGVEb3dubG9hZEVycm9yJyxcclxuXHJcbiAgLy8gXHJcbiAgTUFQX1RJTEVfSU5URVJNSVRURU5UID0gJ01hcFRpbGVJbnRlcm1pdHRlbnQnLFxyXG5cclxuICAvLyBcclxuICBNQVBfVElMRV9SRUdJT04gPSAnTWFwVGlsZVJlZ2lvbicsXHJcblxyXG4gIC8vIFxyXG4gIE1BUF9TRVJWRVJfRk9SQklEREVOID0gJ01hcFNlcnZlckZvcmJpZGRlbicsXHJcblxyXG4gIC8vIFxyXG4gIERNX0NBTk5PVF9TQ09SRSA9ICdETUNhbm5vdFNjb3JlJyxcclxuXHJcbiAgLy8gXHJcbiAgRE1fU0NPUklOR19OT1RfUkVDID0gJ0RNU2NvcmluZ05vdFJlY29tbWVuZGVkJyxcclxuXHJcbiAgLy8gXHJcbiAgTE9DQUxfREFUQV9MSUJSQVJZX01JU1NJTkcgPSAnTG9jYWxEYXRhTGlicmFyeU1pc3NpbmcnLFxyXG5cclxuICAvLyBcclxuICBETV9NSVNTSU5HX01PREVMID0gJ0RNTWlzc2luZ01vZGVsJyxcclxuXHJcbiAgLy8gXHJcbiAgRElfTk9fTElOSyA9ICdESU5vTGluaycsXHJcblxyXG4gIC8vIFxyXG4gIExPQ0FMREFUQV9OT19HRU9NRVRSWSA9ICdMb2NhbERhdGFOb0dlb21ldHJ5JyxcclxuXHJcbiAgLy8gXHJcbiAgTE9DQUxEQVRBX05PX0dFT01FVFJZX1VQR1JBREUgPSAnTG9jYWxEYXRhTm9HZW9tZXRyeVVwZ3JhZGUnLFxyXG5cclxuICAvLyBcclxuICBESV9OT19SRUxBVElPTlNISVBTID0gJ0RJTm9SZWxhdGlvbnNoaXBzJ1xyXG59XHJcblxyXG4vLyBcclxuZXhwb3J0IGVudW0gV29ya2Jvb2tVSU1vZGUge1xyXG5cclxuICAvLyBcclxuICBEYXRhVGFiID0gJ2RhdGEtdGFiJyxcclxuXHJcbiAgLy8gXHJcbiAgRG9jdW1lbnQgPSAnZG9jdW1lbnQnLFxyXG5cclxuICAvLyBcclxuICBTaGVldFNvcnRlciA9ICdzaGVldC1zb3J0ZXInXHJcbn1cclxuXHJcbi8vIFxyXG5leHBvcnQgZW51bSBUb3BMZXZlbE1lbnVJdGVtIHtcclxuXHJcbiAgLy8gXHJcbiAgRmlsZSA9ICdmaWxlJyxcclxuXHJcbiAgLy8gXHJcbiAgRGF0YSA9ICdkYXRhJyxcclxuXHJcbiAgLy8gXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCcsXHJcblxyXG4gIC8vIFxyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG5cclxuICAvLyBcclxuICBBbmFseXNpcyA9ICdhbmFseXNpcycsXHJcblxyXG4gIC8vIFxyXG4gIEZvcm1hdCA9ICdmb3JtYXQnLFxyXG5cclxuICAvLyBcclxuICBNYXAgPSAnbWFwJyxcclxuXHJcbiAgLy8gXHJcbiAgSGVscCA9ICdoZWxwJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIEFkZElucyAoUHJvamVjdCBGcmVsYXJkKVxyXG5leHBvcnQgZW51bSBBZGRJblR5cGUge1xyXG5cclxuICAvLyBcclxuICBJbnZhbGlkID0gJ2ludmFsaWQnLFxyXG5cclxuICAvLyBcclxuICBEYXNoYm9hcmQgPSAnZGFzaGJvYXJkJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBvZiBkaWZmZXJlbnQgY29udGV4dHMgYW4gYWRkLWluIGNhbiBydW4gaW5cclxuZXhwb3J0IGVudW0gQWRkSW5Db250ZXh0IHtcclxuXHJcbiAgLy8gXHJcbiAgVW5rbm93biA9ICd1bmtub3duJyxcclxuXHJcbiAgLy8gXHJcbiAgRGVza3RvcCA9ICdkZXNrdG9wJyxcclxuXHJcbiAgLy8gXHJcbiAgU2VydmVyID0gJ3NlcnZlcidcclxufVxyXG5cclxuLy8gRW51bWVyYXRpb24gb2YgZGlmZmVyZW50IG1vZGVzIGFuIGFkZC1pbiBjYW4gcnVuIGluXHJcbmV4cG9ydCBlbnVtIEFkZEluTW9kZSB7XHJcblxyXG4gIC8vIFxyXG4gIFVua25vd24gPSAndW5rbm93bicsXHJcblxyXG4gIC8vIFxyXG4gIEF1dGhvcmluZyA9ICdhdXRob3JpbmcnLFxyXG5cclxuICAvLyBcclxuICBWaWV3aW5nID0gJ3ZpZXdpbmcnXHJcbn1cclxuXHJcbi8vIE1hcmtlcnMgZm9yIGFycmF5LW9mLWZsb2F0IGVuY29kaW5nIG9mIGdlb21ldHJ5XHJcbmV4cG9ydCBlbnVtIExpbmVhckZsb2F0R2VvbWV0cnlNYXJrZXIge1xyXG5cclxuICAvLyBcclxuICBMRkdfSW52YWxpZCA9ICdpbnZhbGlkJyxcclxuXHJcbiAgLy8gXHJcbiAgTEZHX011bHRpUG9seWdvbiA9ICdtdWx0aVBvbHlnb24nLFxyXG5cclxuICAvLyBcclxuICBMRkdfTXVsdGlMaW5lID0gJ211bHRpTGluZScsXHJcblxyXG4gIC8vIFxyXG4gIExGR19NdWx0aVBvaW50ID0gJ211bHRpUG9pbnQnLFxyXG5cclxuICAvLyBcclxuICBMRkdfU3RhcnRPYmplY3QgPSAnc3RhcnRPYmplY3QnLFxyXG5cclxuICAvLyBcclxuICBMRkdfU3RhcnRQb2x5Z29uID0gJ3N0YXJ0UG9seWdvbicsXHJcblxyXG4gIC8vIFxyXG4gIExGR19TdGFydExpbmUgPSAnc3RhcnRMaW5lJyxcclxuXHJcbiAgLy8gXHJcbiAgTEZHX0VuZEdlb21ldHJ5ID0gJ2VuZEdlb21ldHJ5J1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgZGF0YSBhbGVydCB0eXBlcy5cclxuZXhwb3J0IGVudW0gRGF0YUFsZXJ0VHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIERhdGFQcmVzZW50ID0gJ2RhdGEtcHJlc2VudCcsXHJcblxyXG4gIC8vIFxyXG4gIENvbnN0Q29tcGFyaXNvbiA9ICdjb25zdC1jb21wYXJpc29uJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgdmFsaWQgb3BlcmF0aW9ucyBpbiBkYXRhIGFsZXJ0IGNvbmRpdGlvbnNcclxuZXhwb3J0IGVudW0gRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZSB7XHJcblxyXG4gIC8vIFxyXG4gIEdyZWF0ZXJUaGFuID0gJ2dyZWF0ZXItdGhhbicsXHJcblxyXG4gIC8vIFxyXG4gIEdyZWF0ZXJUaGFuRXF1YWwgPSAnZ3JlYXRlci10aGFuLWVxdWFsJyxcclxuXHJcbiAgLy8gXHJcbiAgRXF1YWxzID0gJ2VxdWFscycsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuID0gJ2xlc3MtdGhhbicsXHJcblxyXG4gIC8vIFxyXG4gIExlc3NUaGFuRXF1YWwgPSAnbGVzcy10aGFuLWVxdWFsJ1xyXG59XHJcblxyXG4vLyBFbnVtZXJhdGlvbiBmb3IgbW9kZXMgdGhlIGRhdGEgYWxlcnQgZGlhbG9nIGNvdWxkIGJlIGluXHJcbmV4cG9ydCBlbnVtIERhdGFBbGVydERpYWxvZ01vZGUge1xyXG5cclxuICAvLyBcclxuICBDcmVhdGUgPSAnY3JlYXRlJyxcclxuXHJcbiAgLy8gXHJcbiAgRWRpdCA9ICdlZGl0J1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvZ2VuLXNyYy9wcmVzbGF5ZXIvRW51bXMudHNcbiAqKi8iLCJpbXBvcnQgeyBNb2RlbCwgUGFyYW1ldGVySWQgYXMgQXBpLCBTaGVldFBhdGgsIFZlcnNpb25OdW1iZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVySWQgYXMgUEwgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXMnO1xyXG5pbXBvcnQgeyBQcmVzZW50YXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL1ByZXNNb2RlbHMnO1xyXG5pbXBvcnQgeyBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIgfSBmcm9tICcuL0FjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlcic7XHJcbmltcG9ydCB7IEFwaVRvUHJlc0xheWVyQ29udmVydGVyIH0gZnJvbSAnLi9BcGlUb1ByZXNMYXllckNvbnZlcnRlcic7XHJcbmltcG9ydCB7IEZpbHRlcnNDb252ZXJ0ZXIgfSBmcm9tICcuL0ZpbHRlcnNDb252ZXJ0ZXInO1xyXG5pbXBvcnQgeyBNYXBwaW5nUmVnaXN0cnkgfSBmcm9tICcuL01hcHBpbmdSZWdpc3RyeSc7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNEYXRhQ29udmVydGVyIH0gZnJvbSAnLi9QYXJhbWV0ZXJzRGF0YUNvbnZlcnRlcic7XHJcbmltcG9ydCB7IFByZXNMYXllclRvQXBpQ29udmVydGVyIH0gZnJvbSAnLi9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcic7XHJcbmltcG9ydCB7IFVuZGVybHlpbmdEYXRhQ29udmVydGVyIH0gZnJvbSAnLi9VbmRlcmx5aW5nRGF0YUNvbnZlcnRlcic7XHJcblxyXG4vKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xyXG5jb25zdCBpZCA9IGZ1bmN0aW9uKGluUGFyYW06IGFueSk6IGFueSB7IHJldHVybiBpblBhcmFtOyB9XHJcblxyXG4vKipcclxuICogRmFjdG9yeSBjbGFzcyBmb3IgY3JlYXRpbmcgcGFyYW1ldGVycyBtYXBwaW5ncyBiYXNlZCBvbiB0aGUgVmVyc2lvbk51bWJlciBvZiB0aGUgQXBpXHJcbiAqXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5IHtcclxuICBwdWJsaWMgc3RhdGljIGNyZWF0ZVByZXNMYXllclRvQXBpUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyOiBWZXJzaW9uTnVtYmVyKTogUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnkge1xyXG4gICAgbGV0IHJlc3VsdCA9IG5ldyBQcmVzTGF5ZXJUb0FwaU1hcHBpbmdSZWdpc3RyeSgpO1xyXG5cclxuICAgIC8vIFRPRE8gLSBjaGVjayB0aGUgdmVyc2lvbiBudW1iZXIgYW5kIGNvbnN0cnVjdCBhcHByb3ByaWF0ZSBjb252ZXJzaW9uc1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkFkZEluTG9jYXRvcixcclxuICAgICAgQXBpLkV4dGVuc2lvbkxvY2F0b3IsXHJcbiAgICAgIFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRFeHRlbnNpb25Mb2NhdG9yKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5BZGRJbkJvb3RzdHJhcEluZm8sXHJcbiAgICAgIEFwaS5FeHRlbnNpb25Cb290c3RyYXBJbmZvLFxyXG4gICAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RXh0ZW5zaW9uQm9vdHN0cmFwSW5mb1xyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5VbmRlcmx5aW5nRGF0YVRhYmxlLFxyXG4gICAgICBBcGkuVW5kZXJseWluZ0RhdGFUYWJsZSxcclxuICAgICAgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGRVbmRlcmx5aW5nRGF0YVRhYmxlLmJpbmQodW5kZWZpbmVkLCBmYWxzZSlcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuVW5kZXJseWluZ0RhdGFUYWJsZSxcclxuICAgICAgQXBpLlVuZGVybHlpbmdTdW1tYXJ5RGF0YVRhYmxlLFxyXG4gICAgICBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZFVuZGVybHlpbmdEYXRhVGFibGUuYmluZCh1bmRlZmluZWQsIHRydWUpXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLlVuZGVybHlpbmdEYXRhVGFibGUsXHJcbiAgICAgIEFwaS5EYXRhU291cmNlRGF0YVRhYmxlLFxyXG4gICAgICBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZFVuZGVybHlpbmdEYXRhVGFibGUuYmluZCh1bmRlZmluZWQsIHRydWUpXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkZpZWxkQ2FwdGlvbixcclxuICAgICAgQXBpLkZpZWxkTmFtZSxcclxuICAgICAgaWRcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuU2VsZWN0aW9uRGF0YSxcclxuICAgICAgQXBpLlNlbGVjdGVkRGF0YSxcclxuICAgICAgQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLmJ1aWxkU2VsZWN0ZWREYXRhVGFibGVcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuSGlnaGxpZ2h0ZWREYXRhLFxyXG4gICAgICBBcGkuSGlnaGxpZ2h0ZWREYXRhLFxyXG4gICAgICBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIuYnVpbGRIaWdobGlnaHRlZERhdGFUYWJsZVxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5BZGRJblNldHRpbmdzSW5mbyxcclxuICAgICAgQXBpLkV4dGVuc2lvblNldHRpbmdzSW5mbyxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEV4dGVuc2lvblNldHRpbmdzSW5mb1xyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5Xb3Jrc2hlZXQsXHJcbiAgICAgIEFwaS5Xb3Jrc2hlZXROYW1lLFxyXG4gICAgICBpZFxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5QYXJhbWV0ZXJDdHJscyxcclxuICAgICAgQXBpLlBhcmFtZXRlckluZm9zLFxyXG4gICAgICBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5jb252ZXJ0UGFyYW1ldGVyTGlzdFxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5QYXJhbWV0ZXJDdHJsLFxyXG4gICAgICBBcGkuUGFyYW1ldGVySW5mbyxcclxuICAgICAgUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIuY29udmVydFBhcmFtZXRlclxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5EYXRhU2NoZW1hLFxyXG4gICAgICBBcGkuRGF0YVNjaGVtYSxcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydERhdGFTY2hlbWFcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihcclxuICAgICAgUEwuRmlsdGVyc0luZm8sXHJcbiAgICAgIEFwaS5Xb3Jrc2hlZXRGaWx0ZXJzLFxyXG4gICAgICBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJzUHJlc01vZGVsXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkNhdGVnb3JpY2FsRG9tYWluLFxyXG4gICAgICBBcGkuQ2F0ZWdvcmljYWxEb21haW4sXHJcbiAgICAgIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydENhdGVnb3JpY2FsRG9tYWluXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLlF1YW50aXRhdGl2ZURvbWFpbixcclxuICAgICAgQXBpLlF1YW50aXRhdGl2ZURvbWFpbixcclxuICAgICAgRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0UXVhbnRpdGF0aXZlRG9tYWluXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oXHJcbiAgICAgIFBMLkpvaW5EZXNjcmlwdGlvbixcclxuICAgICAgQXBpLkpvaW5EZXNjcmlwdGlvbixcclxuICAgICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEpvaW5EZXNjcmlwdGlvblxyXG4gICAgKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBQTC5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMsXHJcbiAgICAgIEFwaS5Db25uZWN0aW9uRGVzY3JpcHRpb25TdW1tYXJpZXMsXHJcbiAgICAgIFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRDb25uZWN0aW9uRGVzY3JwdGlvblN1bW1hcmllc1xyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjcmVhdGVBcGlUb1ByZXNMYXllclBhcmFtUmVnaXN0cnkodmVyc2lvbk51bWJlcjogVmVyc2lvbk51bWJlcik6IEFwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5IHtcclxuICAgIGxldCByZXN1bHQgPSBuZXcgQXBpVG9QcmVzTGF5ZXJNYXBwaW5nUmVnaXN0cnkoKTtcclxuXHJcbiAgICAvLyBUT0RPIC0gY2hlY2sgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCBjb25zdHJ1Y3QgYXBwcm9wcmlhdGUgY29udmVyc2lvbnNcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5FeHRlbnNpb25Mb2NhdG9yLCBQTC5BZGRJbkxvY2F0b3IsIEFwaVRvUHJlc0xheWVyQ29udmVydGVyLmNvbnZlcnRFeHRlbnNpb25Mb2NhdG9yKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlNldHRpbmdzVmFsdWVzLCBQTC5BZGRJblNldHRpbmdzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5JZ25vcmVBbGlhc2VzLCBQTC5JZ25vcmVBbGlhc2VzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5JZ25vcmVTZWxlY3Rpb24sIFBMLklnbm9yZVNlbGVjdGlvbiwgaWQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuSW5jbHVkZUFsbENvbHVtbnMsIFBMLkluY2x1ZGVBbGxDb2x1bW5zLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5NYXhSb3dzLCBQTC5NYXhSb3dzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5WaXN1YWxJZCwgUEwuVmlzdWFsSURQTSwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLkNvbHVtbnNUb0luY2x1ZGUsIFBMLkZpZWxkRGlzcGxheU5hbWVzLCBpZCk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRmllbGROYW1lLCBQTC5RdWFsaWZpZWRGaWVsZENhcHRpb24sIGlkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLkZpbHRlclZhbHVlcywgUEwuRmlsdGVyQWxpYXNlcywgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlcyk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5GaWx0ZXJVcGRhdGVUeXBlLCBQTC5GaWx0ZXJVcGRhdGVUeXBlLCBBcGlUb1ByZXNMYXllckNvbnZlcnRlci5jb252ZXJ0RmlsdGVyVHlwZSk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5Jc0V4Y2x1ZGVNb2RlLCBQTC5FeGNsdWRlLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5GaWx0ZXJSYW5nZU1pbiwgUEwuUmFuZ2VNaW4sIGlkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLkZpbHRlclJhbmdlTWF4LCBQTC5SYW5nZU1heCwgaWQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRmlsdGVyUmFuZ2VOdWxsT3B0aW9uLCBQTC5JbmNsdWRlZCwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuQ29udmVydE51bGxPcHRpb24pO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRmllbGRJZCwgUEwuRmllbGROYW1lLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5Eb21haW5UeXBlLCBQTC5GaWx0ZXJEb21haW5UeXBlLCBBcGlUb1ByZXNMYXllckNvbnZlcnRlci5Db252ZXJ0RmlsdGVyRG9tYWluVHlwZSk7XHJcblxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuVmlzdWFsSWQsIFBMLldvcmtzaGVldCwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkVG9Xb3Jrc2hlZXQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuVmlzdWFsSWQsIFBMLkRhc2hib2FyZCwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkVG9EYXNoYm9hcmQpO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlBhcmFtZXRlckNhcHRpb24sIFBMLkZpZWxkQ2FwdGlvbiwgaWQpO1xyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuUGFyYW1ldGVyRmllbGROYW1lLCBQTC5GaWVsZE5hbWVTdHJpbmcsIGlkKTtcclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlBhcmFtZXRlckZpZWxkTmFtZSwgUEwuR2xvYmFsRmllbGROYW1lLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5QYXJhbWV0ZXJWYWx1ZSwgUEwuVmFsdWVTdHIsIGlkKTtcclxuXHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFxyXG4gICAgICBBcGkuU2hlZXRQYXRoLFxyXG4gICAgICBQTC5TaGVldFBhdGhQTSxcclxuICAgICAgcG0gPT4gQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChwbSBhcyBTaGVldFBhdGgpXHJcbiAgICApO1xyXG5cclxuICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oQXBpLlNlbGVjdGlvbiwgUEwuU2VsZWN0aW9uLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5TZWxlY3Rpb25VcGRhdGVUeXBlLCBQTC5TZWxlY3Rpb25VcGRhdGVUeXBlLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCBQTC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBQTC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBpZCk7XHJcbiAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKEFwaS5EaW1WYWxTZWxlY3Rpb25Nb2RlbHMsIFBMLkRpbVZhbFNlbGVjdGlvbk1vZGVscywgaWQpO1xyXG5cclxuICAgIC8vIFRoZSBwYXJhbSBQTC5EYXRhc291cmNlIGlzIHRoZSBJRCBzdHJpbmcgZm9yIGEgc3BlY2lmaWMgZGF0YXNvdXJjZSwgbm90IHRvIGJlIGNvbmZ1c2VkXHJcbiAgICAvLyB3aXRoIHRoZSBwYXJhbSBQTC5EYXRhU291cmNlLCB3aGljaCBpcyB0aGUgZnVsbCBwcmVzIG1vZGVsIGZvciBhIGRhdGEgc291cmNlLlxyXG4gICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihBcGkuRGF0YVNvdXJjZUlkLCBQTC5EYXRhc291cmNlLCBpZCk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeVxyXG4gIGV4dGVuZHMgTWFwcGluZ1JlZ2lzdHJ5PEFwaSwgUEwsIChhcGlNb2RlbDogTW9kZWwpID0+IFByZXNlbnRhdGlvbk1vZGVsPiB7fVxyXG5cclxuZXhwb3J0IGNsYXNzIFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5XHJcbiAgZXh0ZW5kcyBNYXBwaW5nUmVnaXN0cnk8UEwsIEFwaSwgKHByZXNMYXllclBtOiBQcmVzZW50YXRpb25Nb2RlbCkgPT4gTW9kZWw+IHt9XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL1BhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnkudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIERhdGFIZWFkZXIsXHJcbiAgRGF0YVRhYmxlLFxyXG4gIERhdGFWYWx1ZSxcclxuICBIaWdobGlnaHRlZE1hcmtzVGFibGUsXHJcbiAgTWFya0luZm8sXHJcbiAgTWFya1R5cGUsXHJcbiAgU2VsZWN0ZWRNYXJrc1RhYmxlXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVGFibGVhdUV4Y2VwdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERhdGFEaWN0aW9uYXJ5UHJlc01vZGVsLFxyXG4gIEhpZ2hsaWdodGVkRGF0YVByZXNNb2RlbCxcclxuICBTZWxlY3Rpb25EYXRhUHJlc01vZGVsLFxyXG4gIFZpekRhdGFQcmVzTW9kZWxcclxufSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmcgfSBmcm9tICcuL0VudW1NYXBwaW5ncyc7XHJcbmltcG9ydCB7IFVuZGVybHlpbmdEYXRhQ29udmVydGVyIH0gZnJvbSAnLi9VbmRlcmx5aW5nRGF0YUNvbnZlcnRlcic7XHJcblxyXG4vKipcclxuICogQ29udGFpbnMgbG9naWMgZm9yIGNvbnZlcnRpbmcgdGhlIGFjdGl2ZSBtYXJrcyBvbiBhIHZpeiBpbnRvIHRoZSBBUEkgcHJlcyBtb2RlbHMuXHJcbiAqIEluIHRoZSBvcmlnaW5hbCBwcm9qZWN0LCBtb3N0IG9mIHRoaXMgd2FzIGluIHRoZSBQcm9jZXNzQWN0aXZlTWFya3MgZnVuY3Rpb25cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIge1xyXG4gIHByaXZhdGUgc3RhdGljIE1BTEZPUk1FRF9EQVRBOiBzdHJpbmcgPSAnTWFsZm9ybWVkIGRhdGEgdGFibGUnO1xyXG4gIHB1YmxpYyBzdGF0aWMgYnVpbGRTZWxlY3RlZERhdGFUYWJsZShzZWxlY3RlZERhdGE6IFNlbGVjdGlvbkRhdGFQcmVzTW9kZWwpOiBTZWxlY3RlZE1hcmtzVGFibGUge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YTogQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLmJ1aWxkQWN0aXZlTWFya3NMaXN0KHNlbGVjdGVkRGF0YS5kYXRhRGljdGlvbmFyeSwgc2VsZWN0ZWREYXRhLnZpekRhdGEpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZEhpZ2hsaWdodGVkRGF0YVRhYmxlKGhpZ2hsaWdodGVkRGF0YTogSGlnaGxpZ2h0ZWREYXRhUHJlc01vZGVsKTogSGlnaGxpZ2h0ZWRNYXJrc1RhYmxlIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGRhdGE6IEFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlci5idWlsZEFjdGl2ZU1hcmtzTGlzdChoaWdobGlnaHRlZERhdGEuZGF0YURpY3Rpb25hcnksIGhpZ2hsaWdodGVkRGF0YS52aXpEYXRhKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkQWN0aXZlTWFya3NMaXN0KGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgdml6RGF0YTogVml6RGF0YVByZXNNb2RlbCk6IEFycmF5PERhdGFUYWJsZT4ge1xyXG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFycmF5PERhdGFUYWJsZT4oKTtcclxuXHJcbiAgICAvLyBUaGUgZGF0YSBtb2RlbCBmb3IgdGhlIFZpekRhdGFQcmVzTW9kZWwgaXMgYSBsaXR0bGUgc3RyYW5nZSwgc28gdGhpcyBwYXJzaW5nIHRha2VzIHNvbWUgdGltZSB0byBmaWd1cmUgb3V0LlxyXG4gICAgLy8gVGhlcmUgY2FuIGJlIG11bHRpcGxlIHBhbmVzIG9mIGRhdGEsIHNvIHdlIG11c3QgZ28gdGhyb3VnaCB0aGVtIG9uZSBhdCBhIHRpbWUgdG8gY3JlYXRlIGRhdGEgdGFibGVzXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZpekRhdGEucGFuZUNvbHVtbnNEYXRhLnBhbmVDb2x1bW5zTGlzdC5sZW5ndGg7IGkrKykge1xyXG5cclxuICAgICAgLy8gTmVlZCB0byBmaWx0ZXIgdG8gZmluZCBhbGwgdGhlIGNvbHVtbnMgd2hpY2ggYXJlIGluIHRoaXMgcGFuZVxyXG4gICAgICBjb25zdCBjb2x1bW5zID0gdml6RGF0YS5wYW5lQ29sdW1uc0RhdGEudml6RGF0YUNvbHVtbnMuZmlsdGVyKHZpekRhdGFDb2x1bW4gPT4ge1xyXG4gICAgICAgIC8vIFdlIGtub3cgdGhpcyBjb2x1bW4gbWF0dGVycyBmb3IgdGhlIGN1cnJlbnQgcGFuZSBpZiB0aGlzIHBhbmUncyBpbmRleCBpcyBpbiBwYW5lSW5kaWNlc1xyXG4gICAgICAgIHJldHVybiB2aXpEYXRhQ29sdW1uLnBhbmVJbmRpY2VzLmluZGV4T2YoaSkgPiAtMTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICAvLyBDcmVhdGUgYSBtYXBwaW5nIG9mIHdoaWNoIGluZGV4IGluIHRoZSBkYXRhIGRpY3Rpb25hcnkgb3VyIGNvbHVtbnMgYXJlIGluXHJcbiAgICAgIGNvbnN0IGNvbHVtbkluZGljZXMgPSBjb2x1bW5zLm1hcCh2aXpEYXRhQ29sdW1uID0+IHtcclxuXHJcbiAgICAgICAgLy8gVGhlIGNvbHVtbkluZGV4IGlzIGluIHRoZSBzYW1lIHBvc2l0aW9uIGFzIHRoZSBwYW5lSW5kZXhcclxuICAgICAgICBjb25zdCBwYW5lSW5kZXggPSB2aXpEYXRhQ29sdW1uLnBhbmVJbmRpY2VzLmluZGV4T2YoaSk7XHJcbiAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSB2aXpEYXRhQ29sdW1uLmNvbHVtbkluZGljZXNbcGFuZUluZGV4XTtcclxuICAgICAgICByZXR1cm4gY29sdW1uSW5kZXg7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gR2V0IHRoZSBkYXRhIGZvciB0aGUgcGFuZSB3ZSBhcmUgcHJvY2Vzc2luZ1xyXG4gICAgICBjb25zdCB2aXpQYW5lID0gdml6RGF0YS5wYW5lQ29sdW1uc0RhdGEucGFuZUNvbHVtbnNMaXN0W2ldO1xyXG5cclxuICAgICAgaWYgKHZpelBhbmUudml6UGFuZUNvbHVtbnMubGVuZ3RoICE9PSBjb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uZXJyb3IoQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLk1BTEZPUk1FRF9EQVRBKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBBcnJheTxEYXRhSGVhZGVyPigpO1xyXG4gICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5PEFycmF5PERhdGFWYWx1ZT4+KCk7XHJcblxyXG4gICAgICAvLyBDb2x1bW4gMCB3aWxsIGJlIHRoZSB0dXBsZSBpZCBjb2x1bW4uIFdlIGNhbiB1c2UgdGhpcyBhcyBhIGNvdW50ZXIgZm9yIGhvdyBtYW55IHJvd3Mgd2UgaGF2ZVxyXG4gICAgICBjb25zdCB0dXBsZUlkcyA9IHZpelBhbmUudml6UGFuZUNvbHVtbnNbMF0udHVwbGVJZHM7XHJcbiAgICAgIGNvbnN0IG1hcmtzID0gbmV3IEFycmF5PE1hcmtJbmZvPigpO1xyXG4gICAgICBmb3IgKGxldCB0dXBsZUluZGV4ID0gMDsgdHVwbGVJbmRleCA8IHR1cGxlSWRzLmxlbmd0aDsgdHVwbGVJbmRleCsrKSB7XHJcbiAgICAgICAgLy8gVE9ETyBOZWVkIHRvIHJldmFsdWF0ZSB0aGUgcGxhY2Ugb2YgdGhpcyBsb2dpYy4gSWYgaXQgdHVybnMgb3V0IHRoYXQgd2UgbmVlZCBhIHNlcGFyYXRlIGNvbW1hbmRcclxuICAgICAgICAvLyBjYWxsIHRvIGdldCB0aGUgbWFya3MgaW5mbywgdGhlbiB0aGlzIGxvZ2ljIHNob3VsZCBub3QgYmUgaGVyZSBidXQgaW5zdGVhZCBpbiBhIGxheWVyIGFib3ZlIHNvbWV3aGVyZVxyXG4gICAgICAgIGxldCBtYXJrOiBNYXJrSW5mbyA9IHtcclxuICAgICAgICAgIHR5cGU6IE1hcmtUeXBlLkJhciwgLy8gaGFyZGNvZGluZyB0aGlzIGZvciBub3dcclxuICAgICAgICAgIGNvbG9yOiAncmVkJywgLy8gaGFyZGNvZGluZyB0aGlzIGZvciBub3dcclxuICAgICAgICAgIHR1cGxlSWQ6IHR1cGxlSWRzW3R1cGxlSW5kZXhdLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgbWFya3MucHVzaChtYXJrKTtcclxuICAgICAgICAvLyBXZSB3aWxsIGhhdmUgMSBsZXNzIHZhbHVlIGluIHRoaXMgcm93IHNpbmNlIHRoZXJlJ3MgdGhlIHR1cGxlSWQgY29sdW1uXHJcbiAgICAgICAgY29uc3QgY2VsbHMgPSBuZXcgQXJyYXk8RGF0YVZhbHVlPih2aXpQYW5lLnZpelBhbmVDb2x1bW5zLmxlbmd0aCAtIDEpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBqID0gMS8qIHNraXAgdGhlIGZpcnN0IHdoaWNoIGlzIHR1cGxlIGlkcyAqLzsgaiA8IHZpelBhbmUudml6UGFuZUNvbHVtbnMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgIC8vIE5leHQsIHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aGljaCBjb2x1bW4gd2UgYXJlIHJlYWRpbmcgZGF0YSBmb3JcclxuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kaWNlc1tqXV07XHJcbiAgICAgICAgICBjb25zdCB2aXpQYW5lQ29sdW1uRGF0YSA9IHZpelBhbmUudml6UGFuZUNvbHVtbnNbal07XHJcblxyXG4gICAgICAgICAgLy8gRGVmaW5lIHRoZSBoZWFkZXIgd2hlbiB3ZSBhcmUgcHJvY2Vzc2luZyB0aGUgZmlyc3Qgcm93XHJcbiAgICAgICAgICBpZiAodHVwbGVJbmRleCA9PT0gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBoZWFkZXI6IERhdGFIZWFkZXIgPSB7XHJcbiAgICAgICAgICAgICAgZGF0YVR5cGU6IEVudW1NYXBwaW5nLmRhdGFUeXBlLmNvbnZlcnQoY29sdW1uLmRhdGFUeXBlKSxcclxuICAgICAgICAgICAgICBmaWVsZE5hbWU6IGNvbHVtbi5mbixcclxuICAgICAgICAgICAgICBpc1JlZmVyZW5jZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgaW5kZXg6IGogLSAxLFxyXG4gICAgICAgICAgICAgIGZpZWxkQ2FwdGlvbjogY29sdW1uLmZpZWxkQ2FwdGlvblxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaGVhZGVycy5wdXNoKGhlYWRlcik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5sb29rdXBWYWx1ZUZyb21EaWN0aW9uYXJ5KFxyXG4gICAgICAgICAgICBkYXRhRGljdGlvbmFyeSwgY29sdW1uLmRhdGFUeXBlLCB2aXpQYW5lQ29sdW1uRGF0YS52YWx1ZUluZGljZXNbdHVwbGVJbmRleF0pO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGFsaWFzVmFsdWUgPSBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5sb29rdXBWYWx1ZUZyb21EaWN0aW9uYXJ5KFxyXG4gICAgICAgICAgICBkYXRhRGljdGlvbmFyeSwgY29sdW1uLmRhdGFUeXBlLCB2aXpQYW5lQ29sdW1uRGF0YS5hbGlhc0luZGljZXNbdHVwbGVJbmRleF0pIHx8ICcnO1xyXG5cclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gYWxpYXNWYWx1ZTsgLy8gVE9ETyAtIEZpZ3VyZSBvdXQgaG93IHRvIHVzZSB0aGUgZm9ybWF0U3RyaW5nc1xyXG5cclxuICAgICAgICAgIGNvbnN0IGRhdGFDZWxsOiBEYXRhVmFsdWUgPSB7XHJcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICAgICAgICBhbGlhc2VkVmFsdWU6IGFsaWFzVmFsdWVcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgLy8gQWRkIG91ciBjZWxsIHRvIHRoaXMgcm93XHJcbiAgICAgICAgICBjZWxsc1tqIC0gMV0gPSBkYXRhQ2VsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJvd3MucHVzaChjZWxscyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGRhdGFUYWJsZTogRGF0YVRhYmxlID0ge1xyXG4gICAgICAgIGRhdGFUYWJsZTogcm93cyxcclxuICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICAgIG1hcmtzOiBtYXJrc1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgcmVzdWx0LnB1c2goZGF0YVRhYmxlKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9BY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBFbnVtcyBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9FbnVtcyc7XHJcbmltcG9ydCB7XHJcbiAgRGF0YURpY3Rpb25hcnlQcmVzTW9kZWwsXHJcbiAgVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbCxcclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsLFxyXG4gIFZpekRhdGFQcmVzTW9kZWxcclxufSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmcgfSBmcm9tICcuL0VudW1NYXBwaW5ncyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhSGVhZGVyLCBEYXRhVGFibGUsIERhdGFWYWx1ZSwgVW5kZXJseWluZ0RhdGFUYWJsZSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFRhYmxlYXVFeGNlcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG4vKipcclxuICogQ29udGFpbnMgc3RhdGljIGhlbHBlciBtZXRob2RzIGZvciBjb252ZXJ0aW5nIGZyb20gYW4gdW5kZXJseWluZyBkYXRhIHByZXMgbW9kZWwgaW50byB0aGUgYXBpIHJlcHJlc2VudGF0aW9uLlxyXG4gKiBNb3N0IG9mIHRoZSBjb2RlIGlzIGEgZGlyZWN0IHBvcnQgZnJvbSBBcGlVbmRlcmx5aW5nRGF0YUhhbmRsZXIuY3NcclxuICogaHR0cHM6Ly9vcGVuZ3Jvay9zb3VyY2UveHJlZi90ZWFtc19uZWFyL3dvcmtncm91cC92cWx3ZWIvc2NyaXB0c2hhcnAvc3JjL1VJL0FwaS9BcGlVbmRlcmx5aW5nRGF0YUhhbmRsZXIuY3NcclxuICovXHJcbmV4cG9ydCBjbGFzcyBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlciB7XHJcbiAgcHVibGljIHN0YXRpYyBsb29rdXBWYWx1ZUZyb21EaWN0aW9uYXJ5KGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgZHQ6IEVudW1zLkRhdGFUeXBlLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBpZiAoaW5kZXggPCAwKSB7XHJcbiAgICAgIC8vIHBlciBjbCAyODAzOTYgLyBidWd6aWQgODExOTcgbmVnYXRpdmUgZGF0YSB2YWx1ZSBpbmRleCBtZWFucyB0aGF0IGl0IGlzIHNwZWNpYWxcclxuICAgICAgZHQgPSBFbnVtcy5EYXRhVHlwZS5EVF9TVFJJTkc7XHJcbiAgICAgIGluZGV4ID0gLWluZGV4IC0gMTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBjb25zdCByYXdWYWx1ZSA9IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmdldFJhd1ZhbHVlKGRhdGFEaWN0aW9uYXJ5LCBkdCwgaW5kZXgpO1xyXG4gICAgaWYgKHJhd1ZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgIHJlc3VsdCA9IHJhd1ZhbHVlLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldFJhd1ZhbHVlKGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgZHQ6IEVudW1zLkRhdGFUeXBlLCBpbmRleDogbnVtYmVyKTogYW55IHtcclxuICAgIGlmICghZGF0YURpY3Rpb25hcnkuZGF0YVNlZ21lbnRzKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGFEaWN0aW9uYXJ5LmRhdGFTZWdtZW50cykpIHtcclxuICAgICAgY29uc3QgZGF0YVNlZ21lbnQgPSBkYXRhRGljdGlvbmFyeS5kYXRhU2VnbWVudHNba2V5XTtcclxuICAgICAgZm9yIChjb25zdCBkYXRhQ29sdW1uIG9mIGRhdGFTZWdtZW50LmRhdGFDb2x1bW5zKSB7XHJcbiAgICAgICAgaWYgKCFkYXRhQ29sdW1uIHx8IGRhdGFDb2x1bW4uZGF0YVR5cGUgIT09IGR0KSB7XHJcbiAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpbmRleCA8IGRhdGFDb2x1bW4uZGF0YVZhbHVlcy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBkYXRhQ29sdW1uLmRhdGFWYWx1ZXNbaW5kZXhdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaW5kZXggLT0gZGF0YUNvbHVtbi5kYXRhVmFsdWVzLmxlbmd0aDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZERhdGFUYWJsZShcclxuICAgIGRhdGFEaWN0aW9uYXJ5OiBEYXRhRGljdGlvbmFyeVByZXNNb2RlbCwgY29sdW1uczogQXJyYXk8VW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbD4pOiBEYXRhVGFibGUge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhVGFibGUgPSB7XHJcbiAgICAgIGRhdGFUYWJsZTogVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGRUYWJsZShkYXRhRGljdGlvbmFyeSwgY29sdW1ucyksXHJcbiAgICAgIGhlYWRlcnM6IGNvbHVtbnMubWFwKChjLCBpKSA9PiBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZENvbHVtbk1vZGVsKGMsIGkpKVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZFVuZGVybHlpbmdEYXRhVGFibGUoaXNTdW1tYXJ5OiBib29sZWFuLCB1bmRlcmx5aW5nRGF0YVRhYmxlOiBVbmRlcmx5aW5nRGF0YVRhYmxlUHJlc01vZGVsKTogVW5kZXJseWluZ0RhdGFUYWJsZSB7XHJcbiAgICBjb25zdCByZXN1bHQ6IFVuZGVybHlpbmdEYXRhVGFibGUgPSB7XHJcbiAgICAgIGRhdGE6IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmJ1aWxkRGF0YVRhYmxlKHVuZGVybHlpbmdEYXRhVGFibGUuZGF0YURpY3Rpb25hcnksIHVuZGVybHlpbmdEYXRhVGFibGUudW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtbnMpLFxyXG4gICAgICBpc1N1bW1hcnk6IGlzU3VtbWFyeVxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBidWlsZEFjdGl2ZU1hcmtzVGFibGUoZGF0YURpY3Rpb25hcnk6IERhdGFEaWN0aW9uYXJ5UHJlc01vZGVsLCB2aXpEYXRhOiBWaXpEYXRhUHJlc01vZGVsKTogRGF0YVRhYmxlIHtcclxuICAgIHRocm93IFRhYmxlYXVFeGNlcHRpb24uYXBpTm90SW1wbGVtZW50ZWQoWydidWlsZEFjdGl2ZU1hcmtzVGFibGUnXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBidWlsZENvbHVtbk1vZGVsKGNvbHVtbjogVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbCwgaW5kZXg6IG51bWJlcik6IERhdGFIZWFkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZGF0YVR5cGU6IEVudW1NYXBwaW5nLmRhdGFUeXBlLmNvbnZlcnQoY29sdW1uLmRhdGFUeXBlKSxcclxuICAgICAgZmllbGROYW1lOiBjb2x1bW4uZm4sXHJcbiAgICAgIGZpZWxkQ2FwdGlvbjogY29sdW1uLmZpZWxkQ2FwdGlvbixcclxuICAgICAgaXNSZWZlcmVuY2VkOiAhIWNvbHVtbi5pc1JlZmVyZW5jZWQsXHJcbiAgICAgIGluZGV4OiBpbmRleFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGJ1aWxkVGFibGUoXHJcbiAgICBkYXRhRGljdGlvbmFyeTogRGF0YURpY3Rpb25hcnlQcmVzTW9kZWwsIGNvbHVtbnM6IEFycmF5PFVuZGVybHlpbmdEYXRhVGFibGVDb2x1bW5QcmVzTW9kZWw+KTogQXJyYXk8QXJyYXk8RGF0YVZhbHVlPj4ge1xyXG5cclxuICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbmV3IEFycmF5PEFycmF5PERhdGFWYWx1ZT4+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgcm93Q291bnQgPSBjb2x1bW5zWzBdLmZvcm1hdFZhbElkeHMubGVuZ3RoO1xyXG4gICAgY29uc3QgY29sdW1uQ291bnQgPSBjb2x1bW5zLmxlbmd0aDtcclxuXHJcbiAgICBjb25zdCByZXN1bHQgPSBuZXcgQXJyYXk8QXJyYXk8RGF0YVZhbHVlPj4ocm93Q291bnQpO1xyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIG91ciByb3dzXHJcbiAgICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93Q291bnQ7IHJvd0luZGV4KyspIHtcclxuICAgICAgcmVzdWx0W3Jvd0luZGV4XSA9IG5ldyBBcnJheTxEYXRhVmFsdWU+KGNvbHVtbkNvdW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHbyB0aHJvdWdoIGNvbHVtbi1ieS1jb2x1bW4gYW5kIGNvbnZlcnQgdGhlIHZhbHVlc1xyXG4gICAgZm9yIChsZXQgY29sdW1uSW5kZXggPSAwOyBjb2x1bW5JbmRleCA8IGNvbHVtbkNvdW50OyBjb2x1bW5JbmRleCsrKSB7XHJcbiAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xyXG4gICAgICBmb3IgKGxldCByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93Q291bnQ7IHJvd0luZGV4KyspIHtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmxvb2t1cFZhbHVlRnJvbURpY3Rpb25hcnkoXHJcbiAgICAgICAgICAgIGRhdGFEaWN0aW9uYXJ5LCBFbnVtcy5EYXRhVHlwZS5EVF9TVFJJTkcsIGNvbHVtbi5mb3JtYXRWYWxJZHhzW3Jvd0luZGV4XSk7XHJcblxyXG4gICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pc051bGwoWydmb3JtYXR0ZWRWYWx1ZSddKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlOiBEYXRhVmFsdWUgPSB7XHJcbiAgICAgICAgICB2YWx1ZTogVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIubG9va3VwVmFsdWVGcm9tRGljdGlvbmFyeShcclxuICAgICAgICAgICAgZGF0YURpY3Rpb25hcnksIGNvbHVtbi5kYXRhVHlwZSwgY29sdW1uLnZhbHVlSW5kaWNlc1tyb3dJbmRleF0pLFxyXG4gICAgICAgICAgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICAgICAgYWxpYXNlZFZhbHVlOiBmb3JtYXR0ZWRWYWx1ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJlc3VsdFtyb3dJbmRleF1bY29sdW1uSW5kZXhdID0gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9VbmRlcmx5aW5nRGF0YUNvbnZlcnRlci50c1xuICoqLyIsImltcG9ydCAqIGFzIEFwaSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuaW1wb3J0ICogYXMgUHJlc0xheWVyIGZyb20gJy4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL1ByZXNNb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlUb1ByZXNMYXllckVudW1NYXBwaW5ncyBhcyBFbnVtQ29udmVydGVyIH0gZnJvbSAnLi9FbnVtTWFwcGluZ3MnO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIGNvbnRhaW5pbmcgaGVscGVyIG1ldGhvZHMgZm9yIGNvbnZlcnRpbmcgZnJvbSBBcGlQcmVzTW9kZWxzIHRvIHRoZWlyIFByZXNMYXllciBlcXVpdmFsZW50c1xyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBBcGlUb1ByZXNMYXllckNvbnZlcnRlclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaVRvUHJlc0xheWVyQ29udmVydGVyIHtcclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRTaGVldFBhdGgoYXBpU2hlZXRQYXRoPzogQXBpLlNoZWV0UGF0aCk6IFByZXNMYXllci5TaGVldFBhdGhQcmVzTW9kZWwge1xyXG4gICAgaWYgKCFhcGlTaGVldFBhdGgpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5pc1VuZGVmaW5lZChbJ3NoZWV0UGF0aCddKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByZXN1bHQ6IFByZXNMYXllci5TaGVldFBhdGhQcmVzTW9kZWwgPSB7XHJcbiAgICAgIHNoZWV0TmFtZTogYXBpU2hlZXRQYXRoLnNoZWV0TmFtZSxcclxuICAgICAgaXNEYXNoYm9hcmQ6IGFwaVNoZWV0UGF0aC5pc0Rhc2hib2FyZCxcclxuICAgICAgc3Rvcnlib2FyZDogYXBpU2hlZXRQYXRoLnN0b3J5Ym9hcmQgfHwgJycsXHJcbiAgICAgIGZsaXBib2FyZFpvbmVJZDogYXBpU2hlZXRQYXRoLmZsaXBib2FyZFpvbmVJRCB8fCAwLFxyXG4gICAgICBzdG9yeVBvaW50SWQ6IGFwaVNoZWV0UGF0aC5zdG9yeVBvaW50SUQgfHwgMCxcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEV4dGVuc2lvbkxvY2F0b3IoYXBpRXh0ZW5zaW9uTG9jYXRvcjogQXBpLkV4dGVuc2lvbkxvY2F0b3IpOiBQcmVzTGF5ZXIuQWRkSW5Mb2NhdG9yUHJlc01vZGVsIHtcclxuICAgIGNvbnN0IHJlc3VsdDogUHJlc0xheWVyLkFkZEluTG9jYXRvclByZXNNb2RlbCA9IHtcclxuICAgICAgYWRkSW5JbnN0YW5jZUlkOiBhcGlFeHRlbnNpb25Mb2NhdG9yLmluc3RhbmNlSWQsXHJcbiAgICAgIHNoZWV0UGF0aDogQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChhcGlFeHRlbnNpb25Mb2NhdG9yLmRhc2hib2FyZFBhdGgpXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRWaXN1YWxJZChhcGlWaXN1YWxpZDogQXBpLlZpc3VhbElkKTogUHJlc0xheWVyLlZpc3VhbElEUHJlc01vZGVsIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IHtcclxuICAgICAgd29ya3NoZWV0OiBhcGlWaXN1YWxpZC53b3Jrc2hlZXQsXHJcbiAgICAgIGRhc2hib2FyZDogYXBpVmlzdWFsaWQuZGFzaGJvYXJkLFxyXG4gICAgICBzdG9yeWJvYXJkOiBhcGlWaXN1YWxpZC5zdG9yeWJvYXJkLFxyXG4gICAgICBzdG9yeVBvaW50SWQ6IGFwaVZpc3VhbGlkLnN0b3J5UG9pbnRJRCxcclxuICAgICAgZmxpcGJvYXJkWm9uZUlkOiBhcGlWaXN1YWxpZC5mbGlwYm9hcmRab25lSURcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdCBhcyBQcmVzTGF5ZXIuVmlzdWFsSURQcmVzTW9kZWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRWaXN1YWxJZFRvV29ya3NoZWV0KGFwaVZpc3VhbElkOiBBcGkuVmlzdWFsSWQpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGFwaVZpc3VhbElkLndvcmtzaGVldDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFZpc3VhbElkVG9EYXNoYm9hcmQoYXBpVmlzdWFsSWQ6IEFwaS5WaXN1YWxJZCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYXBpVmlzdWFsSWQuZGFzaGJvYXJkIHx8ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RmlsdGVyVmFsdWVzKGZpbHRlclZhbHVlczogQXJyYXk8c3RyaW5nPik6IEFycmF5PHN0cmluZz4ge1xyXG4gICAgaWYgKGZpbHRlclZhbHVlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgLy8gcGxhdGZvcm0gY29kZSBleHBlY3RzIGFuIGVtcHR5IHN0cmluZyBmb3IgY2xlYXJpbmcgZmlsdGVyIHZhbHVlc1xyXG4gICAgICByZXR1cm4gWycnXTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRGaWx0ZXJUeXBlKGZpbHRlclVwZGF0ZVR5cGU6IEFwaS5GaWx0ZXJVcGRhdGVUeXBlKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBFbnVtQ29udmVydGVyLmZpbHRlclVwZGF0ZVR5cGUuY29udmVydChmaWx0ZXJVcGRhdGVUeXBlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgQ29udmVydE51bGxPcHRpb24obnVsbE9wdGlvbjogQXBpLkZpbHRlck51bGxPcHRpb24pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEVudW1Db252ZXJ0ZXIubnVsbE9wdGlvbi5jb252ZXJ0KG51bGxPcHRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBDb252ZXJ0RmlsdGVyRG9tYWluVHlwZShmaWx0ZXJEb21haW5UeXBlOiBBcGkuRmlsdGVyRG9tYWluVHlwZSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gRW51bUNvbnZlcnRlci5maWx0ZXJEb21haW5UeXBlLmNvbnZlcnQoZmlsdGVyRG9tYWluVHlwZSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL0FwaVRvUHJlc0xheWVyQ29udmVydGVyLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBDYXRlZ29yaWNhbERvbWFpbixcclxuICBDYXRlZ29yaWNhbEZpbHRlcixcclxuICBEYXRhVmFsdWUsXHJcbiAgRmlsdGVyLFxyXG4gIEZpbHRlclR5cGUsXHJcbiAgUmFuZ2VEb21haW4sXHJcbiAgUmFuZ2VGaWx0ZXIsXHJcbiAgUmVsYXRpdmVEYXRlRmlsdGVyLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIERhdGFUeXBlLFxyXG4gIEZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcyBhcyBJbmNsdWRlZFZhbHVlcyxcclxuICBGaWx0ZXJUeXBlIGFzIFByZXNMYXllckZpbHRlclR5cGUsXHJcbn0gZnJvbSAnLi4vLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvRW51bXMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBDYXRlZ29yaWNhbERvbWFpblByZXNNb2RlbCxcclxuICBGaWx0ZXJJbmZvUHJlc01vZGVsLFxyXG4gIEZpbHRlclZhbHVlUHJlc01vZGVsLFxyXG4gIFF1YW50aXRhdGl2ZURvbWFpblByZXNNb2RlbCxcclxufSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuXHJcbmltcG9ydCB7IFByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzIGFzIEVudW1NYXBwaW5ncyB9IGZyb20gJy4vRW51bU1hcHBpbmdzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIgfSBmcm9tICcuL1ByZXNMYXllclRvQXBpQ29udmVydGVyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29udmVydGVyIHtcclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRGaWx0ZXJzUHJlc01vZGVsKGZpbHRlclBtczogRmlsdGVySW5mb1ByZXNNb2RlbFtdKTogRmlsdGVyW10ge1xyXG4gICAgbGV0IGZpbHRlcnM6IEZpbHRlcltdID0gW107XHJcbiAgICBmaWx0ZXJQbXMuZm9yRWFjaCggZmlsdGVyUG0gPT4ge1xyXG4gICAgICBzd2l0Y2ggKGZpbHRlclBtLmZpbHRlclR5cGUpIHtcclxuICAgICAgICBjYXNlIFByZXNMYXllckZpbHRlclR5cGUuRkxUUl9DYXRlZ29yaWNhbDoge1xyXG4gICAgICAgICAgZmlsdGVycy5wdXNoKEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydENhdGVnb3JpY2FsRmlsdGVyUHJlc01vZGVsKGZpbHRlclBtKSk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNhc2UgUHJlc0xheWVyRmlsdGVyVHlwZS5GTFRSX1F1YW50aXRhdGl2ZToge1xyXG4gICAgICAgICAgZmlsdGVycy5wdXNoKEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydFF1YW50aXRhdGl2ZUZpbHRlclByZXNNb2RlbChmaWx0ZXJQbSkpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjYXNlIFByZXNMYXllckZpbHRlclR5cGUuRkxUUl9SZWxhdGl2ZURhdGU6IHtcclxuICAgICAgICAgIGZpbHRlcnMucHVzaChGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRSZWxhdGl2ZURhdGVGaWx0ZXJQcmVzTW9kZWwoZmlsdGVyUG0pKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZmlsdGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydENhdGVnb3JpY2FsRmlsdGVyUHJlc01vZGVsKGZpbHRlclBtOiBGaWx0ZXJJbmZvUHJlc01vZGVsKTogQ2F0ZWdvcmljYWxGaWx0ZXIge1xyXG4gICAgbGV0IHNlbGVjdGVkVmFsdWVzOiBEYXRhVmFsdWVbXSA9IGZpbHRlclBtLmNhdGVnb3JpY2FsRmlsdGVySW5mby5jYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QubWFwKGZpbHRlclZhbHVlID0+IHtcclxuICAgICAgcmV0dXJuIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGZpbHRlclZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgbGV0IGZpbHRlcjogQ2F0ZWdvcmljYWxGaWx0ZXIgPSB7XHJcbiAgICAgIHZhbHVlczogc2VsZWN0ZWRWYWx1ZXMsXHJcbiAgICAgIGlzRXhjbHVkZTogZmlsdGVyUG0uY2F0ZWdvcmljYWxGaWx0ZXJJbmZvLmV4Y2x1ZGUsXHJcbiAgICAgIGZpbHRlclR5cGU6IEZpbHRlclR5cGUuQ2F0ZWdvcmljYWwsXHJcbiAgICAgIGZpZWxkQ2FwdGlvbjogZmlsdGVyUG0uZmllbGRDYXB0aW9uLFxyXG4gICAgICBmaWVsZE5hbWU6IGZpbHRlclBtLmZuLFxyXG4gICAgICB2aXN1YWxJZDogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKGZpbHRlclBtLnZpc3VhbElkUHJlc01vZGVsKVxyXG4gICAgfTtcclxuICAgIHJldHVybiBmaWx0ZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRRdWFudGl0YXRpdmVGaWx0ZXJQcmVzTW9kZWwoZmlsdGVyUG06IEZpbHRlckluZm9QcmVzTW9kZWwpOiBSYW5nZUZpbHRlciB7XHJcbiAgICBsZXQgbWluVmFsdWU6IERhdGFWYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKFxyXG4gICAgICBmaWx0ZXJQbS5xdWFudGl0YXRpdmVGaWx0ZXJJbmZvLmNhcHRpb25lZFJhbmdlTWluXHJcbiAgICApO1xyXG4gICAgbGV0IG1heFZhbHVlOiBEYXRhVmFsdWUgPSBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJWYWx1ZVByZXNNb2RlbChcclxuICAgICAgZmlsdGVyUG0ucXVhbnRpdGF0aXZlRmlsdGVySW5mby5jYXB0aW9uZWRSYW5nZU1heFxyXG4gICAgKTtcclxuICAgIGxldCBmaWx0ZXI6IFJhbmdlRmlsdGVyID0ge1xyXG4gICAgICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlLlJhbmdlLFxyXG4gICAgICBmaWVsZENhcHRpb246IGZpbHRlclBtLmZpZWxkQ2FwdGlvbixcclxuICAgICAgZmllbGROYW1lOiBmaWx0ZXJQbS5mbixcclxuICAgICAgdmlzdWFsSWQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRWaXN1YWxJZChmaWx0ZXJQbS52aXN1YWxJZFByZXNNb2RlbCksXHJcbiAgICAgIG1pbjogbWluVmFsdWUsXHJcbiAgICAgIG1heDogbWF4VmFsdWUsXHJcbiAgICAgIGluY2x1ZGVOdWxsVmFsdWVzOiBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRJbmNsdWRlZE51bGxWYWx1ZXMoZmlsdGVyUG0ucXVhbnRpdGF0aXZlRmlsdGVySW5mby5pbmNsdWRlZClcclxuICAgIH07XHJcbiAgICByZXR1cm4gZmlsdGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0UmVsYXRpdmVEYXRlRmlsdGVyUHJlc01vZGVsKGZpbHRlclBtOiBGaWx0ZXJJbmZvUHJlc01vZGVsKTogUmVsYXRpdmVEYXRlRmlsdGVyIHtcclxuICAgIGxldCBhbmNob3JEYXRlVmFsdWU6IERhdGFWYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKFxyXG4gICAgICBmaWx0ZXJQbS5yZWxhdGl2ZURhdGVGaWx0ZXJJbmZvLmNhcHRpb25lZEFuY2hvckRhdGVcclxuICAgICk7XHJcbiAgICBsZXQgZmlsdGVyOiBSZWxhdGl2ZURhdGVGaWx0ZXIgPSB7XHJcbiAgICAgIGZpbHRlclR5cGU6IEZpbHRlclR5cGUuUmVsYXRpdmVEYXRlLFxyXG4gICAgICBmaWVsZENhcHRpb246IGZpbHRlclBtLmZpZWxkQ2FwdGlvbixcclxuICAgICAgZmllbGROYW1lOiBmaWx0ZXJQbS5mbixcclxuICAgICAgdmlzdWFsSWQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRWaXN1YWxJZChmaWx0ZXJQbS52aXN1YWxJZFByZXNNb2RlbCksXHJcbiAgICAgIGFuY2hvckRhdGU6IGFuY2hvckRhdGVWYWx1ZSxcclxuICAgICAgcGVyaW9kVHlwZTogRW51bU1hcHBpbmdzLmRhdGVTdGVwUGVyaW9kLmNvbnZlcnQoZmlsdGVyUG0ucmVsYXRpdmVEYXRlRmlsdGVySW5mby5kYXRlUGVyaW9kVHlwZSksXHJcbiAgICAgIHJhbmdlVHlwZTogRW51bU1hcHBpbmdzLmRhdGVSYW5nZVR5cGUuY29udmVydChmaWx0ZXJQbS5yZWxhdGl2ZURhdGVGaWx0ZXJJbmZvLmRhdGVSYW5nZVR5cGUpLFxyXG4gICAgICByYW5nZU46IGZpbHRlclBtLnJlbGF0aXZlRGF0ZUZpbHRlckluZm8ucmFuZ2VOXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZpbHRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydENhdGVnb3JpY2FsRG9tYWluKGRvbWFpblBtOiBDYXRlZ29yaWNhbERvbWFpblByZXNNb2RlbCk6IENhdGVnb3JpY2FsRG9tYWluIHtcclxuICAgIGxldCBkb21haW5WYWx1ZXM6IEFycmF5PERhdGFWYWx1ZT4gPSBkb21haW5QbS5jYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QubWFwKGZpbHRlclZhbHVlID0+IHtcclxuICAgICAgcmV0dXJuIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGZpbHRlclZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHsgdmFsdWVzOiBkb21haW5WYWx1ZXN9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0UXVhbnRpdGF0aXZlRG9tYWluKGRvbWFpblBtOiBRdWFudGl0YXRpdmVEb21haW5QcmVzTW9kZWwpOiBSYW5nZURvbWFpbiB7XHJcbiAgICBsZXQgbWluVmFsdWU6IERhdGFWYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGRvbWFpblBtLmNhcHRpb25lZFJhbmdlTWluKTtcclxuICAgIGxldCBtYXhWYWx1ZTogRGF0YVZhbHVlID0gRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0RmlsdGVyVmFsdWVQcmVzTW9kZWwoZG9tYWluUG0uY2FwdGlvbmVkUmFuZ2VNYXgpO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbWF4OiBtYXhWYWx1ZSxcclxuICAgICAgbWluOiBtaW5WYWx1ZVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGR2UE06IEZpbHRlclZhbHVlUHJlc01vZGVsKTogRGF0YVZhbHVlIHtcclxuICAgIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gICAgbGV0IHZhbHVlOiBhbnk7XHJcbiAgICBzd2l0Y2ggKGR2UE0uZGF0YVR5cGUpIHtcclxuICAgICAgY2FzZSBEYXRhVHlwZS5EVF9CT09MRUFOOiB7XHJcbiAgICAgICAgdmFsdWUgPSBCb29sZWFuKGR2UE0uZGF0YVZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIERhdGFUeXBlLkRUX0RBVEU6IHtcclxuICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKGR2UE0uZGF0YVZhbHVlU3RyKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIERhdGFUeXBlLkRUX0RBVEVUSU1FOiB7XHJcbiAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZShkdlBNLmRhdGFWYWx1ZVN0cik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBEYXRhVHlwZS5EVF9JTlRFR0VSOiB7XHJcbiAgICAgICAgdmFsdWUgPSBOdW1iZXIucGFyc2VJbnQoZHZQTS5kYXRhVmFsdWVTdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgRGF0YVR5cGUuRFRfUkVBTDoge1xyXG4gICAgICAgIHZhbHVlID0gTnVtYmVyLnBhcnNlRmxvYXQoZHZQTS5kYXRhVmFsdWVTdHIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGRlZmF1bHQgdG8gc3RyaW5nXHJcbiAgICAgIGRlZmF1bHQ6IHtcclxuICAgICAgICB2YWx1ZSA9IGR2UE0uZGF0YVZhbHVlU3RyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgIC8vIFRPRE86IG5vIGVhc3kgd2F5IG9mIGdldHRpbmcgYmFjayBhbGlhc2VkIHZhbHVlIGZyb20gcGxhdGZvcm0sIHdpbGwgbmVlZCB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyXHJcbiAgICAgIGFsaWFzZWRWYWx1ZTogJycsXHJcbiAgICAgIGZvcm1hdHRlZFZhbHVlOiBkdlBNLmRhdGFWYWx1ZURpc3BsYXlTdHJpbmdcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRJbmNsdWRlZE51bGxWYWx1ZXMoaW5jbHVkZU51bGw6IEluY2x1ZGVkVmFsdWVzKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKGluY2x1ZGVOdWxsID09PSBJbmNsdWRlZFZhbHVlcy5JblJhbmdlT3JOdWxsIHx8XHJcbiAgICAgIGluY2x1ZGVOdWxsID09PSBJbmNsdWRlZFZhbHVlcy5BbGwgfHxcclxuICAgICAgaW5jbHVkZU51bGwgPT09IEluY2x1ZGVkVmFsdWVzLk51bGxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvc3JjL21hcHBpbmdzL0ZpbHRlcnNDb252ZXJ0ZXIudHNcbiAqKi8iLCJpbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuLyoqXHJcbiAqIFNpbXBsZSByZWdpc3RyeSBjbGFzcyB3aGljaCBjcmVhdGVzIGEgbWFwcGluZyBiYXNlZCBvbiB0d28ga2V5cy5cclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgTWFwcGluZ1JlZ2lzdHJ5XHJcbiAqIEB0ZW1wbGF0ZSBUSW5wdXRFbnVtVHlwZVxyXG4gKiBAdGVtcGxhdGUgVE91dHB1dEVudW1UeXBlXHJcbiAqIEB0ZW1wbGF0ZSBUTWFwcGluZ1N0b3JhZ2VUeXBlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWFwcGluZ1JlZ2lzdHJ5PFRJbnB1dEVudW1UeXBlIGV4dGVuZHMgc3RyaW5nLCBUT3V0cHV0RW51bVR5cGUgZXh0ZW5kcyBzdHJpbmcsIFRNYXBwaW5nU3RvcmFnZVR5cGU+IHtcclxuICBwcml2YXRlIHN0YXRpYyBNSVNTSU5HX1JFUVVFU1RFRF9NQVBQSU5HOiBzdHJpbmcgPSAnTWlzc2luZyByZXF1ZXN0ZWQgbWFwcGluZzogJTEgdG8gJTInO1xyXG4gIHByaXZhdGUgX3JlZ2lzdHJ5OiB7IFtrZXk6IHN0cmluZ106IFRNYXBwaW5nU3RvcmFnZVR5cGUgfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fcmVnaXN0cnkgPSB7fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYXMoaW5wdXRUeXBlOiBUSW5wdXRFbnVtVHlwZSwgb3V0cHV0VHlwZTogVE91dHB1dEVudW1UeXBlKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLm1ha2VLZXkoaW5wdXRUeXBlLCBvdXRwdXRUeXBlKTtcclxuICAgIGlmICghdGhpcy5fcmVnaXN0cnkuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLl9yZWdpc3RyeVtrZXldKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoaW5wdXRUeXBlOiBUSW5wdXRFbnVtVHlwZSwgb3V0cHV0VHlwZTogVE91dHB1dEVudW1UeXBlKTogVE1hcHBpbmdTdG9yYWdlVHlwZSB7XHJcbiAgICBpZiAoIXRoaXMuaGFzKGlucHV0VHlwZSwgb3V0cHV0VHlwZSkpIHtcclxuICAgICAgdGhyb3cgVGFibGVhdUV4Y2VwdGlvbi5lcnJvcihNYXBwaW5nUmVnaXN0cnkuTUlTU0lOR19SRVFVRVNURURfTUFQUElORywgW2lucHV0VHlwZSwgb3V0cHV0VHlwZV0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGtleSA9IHRoaXMubWFrZUtleShpbnB1dFR5cGUsIG91dHB1dFR5cGUpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5W2tleV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkUmVnaXN0cmF0aW9uKGlucHV0VHlwZTogVElucHV0RW51bVR5cGUsIG91dHB1dFR5cGU6IFRPdXRwdXRFbnVtVHlwZSwgc3RvcmFnZUl0ZW06IFRNYXBwaW5nU3RvcmFnZVR5cGUpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMubWFrZUtleShpbnB1dFR5cGUsIG91dHB1dFR5cGUpO1xyXG5cclxuICAgIC8vIEFkZCB0aGlzIGl0ZW1cclxuICAgIHRoaXMuX3JlZ2lzdHJ5W2tleV0gPSBzdG9yYWdlSXRlbTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbWJpbmVzIHRoZSB0d28ga2V5cyBpbnRvIGEgdW5pcXVlIHN0cmluZ1xyXG4gICAqXHJcbiAgICogQHByaXZhdGVcclxuICAgKiBAcGFyYW0ge1RJbnB1dEVudW1UeXBlfSBpbnB1dFR5cGVcclxuICAgKiBAcGFyYW0ge1RPdXRwdXRFbnVtVHlwZX0gb3V0cHV0VHlwZVxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9XHJcbiAgICogQG1lbWJlcm9mIE1hcHBpbmdSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHByaXZhdGUgbWFrZUtleShpbnB1dFR5cGU6IFRJbnB1dEVudW1UeXBlLCBvdXRwdXRUeXBlOiBUT3V0cHV0RW51bVR5cGUpOiBzdHJpbmcge1xyXG4gICAgY29uc3Qga2V5T2JqID0geyBpbnB1dDogaW5wdXRUeXBlLCBvdXRwdXQ6IG91dHB1dFR5cGUgfTtcclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShrZXlPYmopO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL3NyYy9tYXBwaW5ncy9NYXBwaW5nUmVnaXN0cnkudHNcbiAqKi8iLCJpbXBvcnQgeyBEYXRhVHlwZSwgRGF0YVZhbHVlLCBEb21haW5SZXN0cmljdGlvblR5cGUsIFBhcmFtZXRlckluZm8gfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBUYWJsZWF1RXhjZXB0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IFBhcmFtZXRlckN0cmxQcmVzTW9kZWwgfSBmcm9tICcuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QcmVzTW9kZWxzJztcclxuaW1wb3J0IHsgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmcgfSBmcm9tICcuL0VudW1NYXBwaW5ncyc7XHJcblxyXG4vKipcclxuICogQ29udGFpbnMgbG9naWMgZm9yIGNvbnZlcnRpbmcgUGFyYW1ldGVyIG1vZGVscyBpbnRvIHRoZWlyIGVxdWl2YWxlbnQgQXBpIHZlcnNpb25zXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIge1xyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFBhcmFtZXRlckxpc3QocGFyYW1ldGVyczogQXJyYXk8UGFyYW1ldGVyQ3RybFByZXNNb2RlbD4pOiBBcnJheTxQYXJhbWV0ZXJJbmZvPiB7XHJcbiAgICByZXR1cm4gcGFyYW1ldGVycy5tYXAoUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIuY29udmVydFBhcmFtZXRlcik7XHJcbiAgfVxyXG5cclxuICAvLyBDb252ZXJ0cyBhIHNpbmdsZSBwYXJhbWV0ZXIuXHJcbiAgLy8gUm91Z2ggcG9ydCBvZiBodHRwczovL29wZW5ncm9rL3NvdXJjZS94cmVmL2Rldl9uZXNzaWUvd29ya2dyb3VwL3ZxbHdlYi9zY3JpcHRzaGFycC9zcmMvVUkvQXBpL0FwaVBhcmFtZXRlckhhbmRsZXIuY3MjOTVcclxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnRQYXJhbWV0ZXIocGFyYW06IFBhcmFtZXRlckN0cmxQcmVzTW9kZWwpOiBQYXJhbWV0ZXJJbmZvIHtcclxuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRBbGlhc2VkRGF0YVZhbHVlKHBhcmFtLnZhbHVlQWxpYXMsIHBhcmFtLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIGNvbnN0IGFsbG93YWJsZVZhbHVlc1R5cGUgPSBFbnVtTWFwcGluZy5wYXJhbWV0ZXJUeXBlc0RvbWFpblR5cGUuY29udmVydChwYXJhbS5wYXJhbWV0ZXJEb21haW5UeXBlKTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQ6IFBhcmFtZXRlckluZm8gPSB7XHJcbiAgICAgIG5hbWU6IHBhcmFtLmZpZWxkQ2FwdGlvbixcclxuICAgICAgZmllbGROYW1lOiBwYXJhbS5wYXJhbWV0ZXJOYW1lLFxyXG4gICAgICBkYXRhVHlwZTogRW51bU1hcHBpbmcuZGF0YVR5cGUuY29udmVydChwYXJhbS5kYXRhVHlwZSksXHJcbiAgICAgIGN1cnJlbnRWYWx1ZTogY3VycmVudFZhbHVlLFxyXG4gICAgICBhbGxvd2FibGVWYWx1ZXNUeXBlOiBhbGxvd2FibGVWYWx1ZXNUeXBlXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChhbGxvd2FibGVWYWx1ZXNUeXBlID09PSBEb21haW5SZXN0cmljdGlvblR5cGUuTGlzdCkge1xyXG4gICAgICBjb25zdCBhbGxvd2FibGVWYWx1ZXMgPSBuZXcgQXJyYXk8RGF0YVZhbHVlPigpO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhcmFtLnZhbHVlc0FsaWFzZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBjb25zdCBhZHYgPSBwYXJhbS52YWx1ZXNBbGlhc2VzW2ldO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID0gcGFyYW0uZm9ybWF0dGVkVmFsdWVzW2ldO1xyXG4gICAgICAgIGFsbG93YWJsZVZhbHVlcy5wdXNoKFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRBbGlhc2VkRGF0YVZhbHVlKGFkdiwgZm9ybWF0dGVkVmFsdWUpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmVzdWx0LmFsbG93YWJsZVZhbHVlcyA9IGFsbG93YWJsZVZhbHVlcztcclxuXHJcbiAgICB9IGVsc2UgaWYgKGFsbG93YWJsZVZhbHVlc1R5cGUgPT09IERvbWFpblJlc3RyaWN0aW9uVHlwZS5SYW5nZSkge1xyXG4gICAgICByZXN1bHQubWluVmFsdWUgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5tYWtlRGF0YVZhbHVlKHBhcmFtLnZhbHVlTWluLCBwYXJhbS5mb3JtYXR0ZWRNaW4pO1xyXG4gICAgICByZXN1bHQubWF4VmFsdWUgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5tYWtlRGF0YVZhbHVlKHBhcmFtLnZhbHVlTWF4LCBwYXJhbS5mb3JtYXR0ZWRNYXgpO1xyXG4gICAgICByZXN1bHQuc3RlcFNpemUgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5jb252ZXJ0TnVtYmVyKHJlc3VsdC5kYXRhVHlwZSwgcGFyYW0udmFsdWVJbmMpO1xyXG4gICAgICByZXN1bHQuZGF0ZVN0ZXBQZXJpb2QgPSBFbnVtTWFwcGluZy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KHBhcmFtLmRhdGVQZXJpb2RUeXBlLCBmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBOb3RoaW5nIHRvIGRvIGluIHRoZSBjYXNlIHRoYXQgYWxsIHZhbHVlcyBhcmUgYWxsb3dlZFxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0TnVtYmVyKGRhdGFUeXBlOiBEYXRhVHlwZSwgdmFsdWU6IHN0cmluZyk6IG51bWJlciB8IHVuZGVmaW5lZCB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgaWYgKGRhdGFUeXBlID09PSBEYXRhVHlwZS5JbnQgfHwgZGF0YVR5cGUgPT09IERhdGFUeXBlLkRhdGUgfHwgZGF0YVR5cGUgPT09IERhdGFUeXBlLkRhdGVUaW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlLCAxMCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZGF0YVR5cGUgPT09IERhdGFUeXBlLkZsb2F0KSB7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gIHByaXZhdGUgc3RhdGljIG1ha2VEYXRhVmFsdWUodmFsdWU6IGFueSwgZm9ybWF0dGVkVmFsdWU6IHN0cmluZywgYWxpYXM/OiBzdHJpbmcpOiBEYXRhVmFsdWUge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhVmFsdWUgPSB7XHJcbiAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlZFZhbHVlLFxyXG4gICAgICBhbGlhc2VkVmFsdWU6IGFsaWFzIHx8IGZvcm1hdHRlZFZhbHVlXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0QWxpYXNlZERhdGFWYWx1ZShhZHY6IGFueVtdLCBmb3JtYXR0ZWRWYWx1ZTogc3RyaW5nKTogRGF0YVZhbHVlIHtcclxuICAgIC8vIEFsaWFzZWREYXRhVmFsdWVzIGFyZSBzZXJpYWxpemVkIGluIGtpbmQgb2YgYSBzdHJhbmdlIHdheSBmcm9tIHRoZSBwbGF0Zm9ybSBjb2RlLiBUaGV5IGFyZSBvdXRwdXRcclxuICAgIC8vIGFzIGFuIGFycmF5IG9mIDIgdmFsdWVzLiBUaGUgZmlyc3QgaXMgdGhlIGFjdHVhbCB2YWx1ZSwgdGhlIHNlY29uZCBpcyB0aGUgYWxpYXMuIFNlZSBBbGlhc2VkRGF0YVZhbHVlU2VyaWFsaXplcjo6VG9TZXJpYWxpemVyXHJcbiAgICBpZiAoIWFkdiB8fCAhKGFkdiBpbnN0YW5jZW9mIEFycmF5KSkge1xyXG4gICAgICB0aHJvdyBUYWJsZWF1RXhjZXB0aW9uLmludmFsaWQoWydhbGlhc2VkIGRhdGEgdmFsdWUnXSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBhZHZbMF07XHJcbiAgICBjb25zdCBhbGlhcyA9IGFkdi5sZW5ndGggPCAyID8gdW5kZWZpbmVkIDogYWR2WzFdIGFzIHN0cmluZztcclxuXHJcbiAgICByZXR1cm4gUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIubWFrZURhdGFWYWx1ZSh2YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIGFsaWFzKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9zcmMvbWFwcGluZ3MvUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIudHNcbiAqKi8iLCJpbXBvcnQgeyBBZGRJbkluc3RhbmNlUHJlc01vZGVsIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWNvcmUnO1xyXG5pbXBvcnQgKiBhcyBjb250cmFjdCBmcm9tICdAdGFibGVhdS9wcmVzbGF5ZXItYXBpLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7XHJcbiAgQWRkSW5BcGlQcmVzTGF5ZXJJbnRlcm9wT2JqZWN0LFxyXG4gIE5vdGlmaWNhdGlvbiBhcyBQcmVzTGF5ZXJOb3RpZmljYXRpb24sXHJcbn0gZnJvbSAnLi90eXBlcy9BZGRJbkFwaVByZXNMYXllckludGVyb3BPYmplY3QnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVuYXRpb24gb2YgdGhlIFByZXNlbnRhdGlvbkxheWVyIGNvbnRyYWN0IHdpdGggYSBiaXQgb2YgZXh0cmEgaW5mb3JtYXRpb25cclxuICogYWRkZWQgdG8gd29yayB3aXRoIGFkZC1pbnMuIE1vc3Qgd29yayBpcyBkZWxlZ2F0ZWQgZG93biB0byB0aGUgaW50ZXJvcE9iamVjdCB3aGljaFxyXG4gKiBjb21tdW5pY2F0ZXMgZGlyZWN0bHkgd2l0aCB0aGUgYysrIGxheWVyIHZpYSBRV2ViQ2hhbm5lbFxyXG4gKlxyXG4gKiBAY2xhc3MgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsXHJcbiAqIEBpbXBsZW1lbnRzIHtjb250cmFjdC5QcmVzZW50YXRpb25MYXllcn1cclxuICovXHJcbmV4cG9ydCBjbGFzcyBBZGRJbkFwaVByZXNMYXllckltcGwgaW1wbGVtZW50cyBjb250cmFjdC5QcmVzZW50YXRpb25MYXllciB7XHJcbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25IYW5kbGVyczogeyBbZXZlbnRpZDogc3RyaW5nXTogW2NvbnRyYWN0Lk5vdGlmaWNhdGlvbkhhbmRsZXJdIH07XHJcblxyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ludGVyb3BPYmplY3Q6IEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdCkge1xyXG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzID0ge307XHJcbiAgICAgICAgaWYgKF9pbnRlcm9wT2JqZWN0ICYmIF9pbnRlcm9wT2JqZWN0Lk9uTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICAgIF9pbnRlcm9wT2JqZWN0Lk9uTm90aWZpY2F0aW9uLmNvbm5lY3Qobm90aWZpY2F0aW9uID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgaW5zdGFuY2UgaW5mbyBmb3IgdGhpcyBwYXJ0aWN1bGFyIGFkZC1pbiBmcm9tIHRoZSBjKysgY29kZVxyXG4gICAgICpcclxuICAgICAqIEByZWFkb25seVxyXG4gICAgICogQHR5cGUge0FkZEluSW5zdGFuY2VQcmVzTW9kZWx9XHJcbiAgICAgKiBAbWVtYmVyb2YgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgQWRkSW5JbnN0YW5jZUluZm8oKTogQWRkSW5JbnN0YW5jZVByZXNNb2RlbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludGVyb3BPYmplY3QuYWRkSW5JbnN0YW5jZUluZm8gYXMgQWRkSW5JbnN0YW5jZVByZXNNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEludm9rZXMgYSBjb21tYW5kIHVzaW5nIHRoZSBwcmVzLWxheWVyIGludGVyb3BcclxuICAgICAqXHJcbiAgICAgKiBAdGVtcGxhdGUgVCAtIFRoZSBleHBlY3RlZCByZXR1cm4gdHlwZVxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbW1hbmROYW1lc3BhY2VcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb21tYW5kTmFtZVxyXG4gICAgICogQHBhcmFtIHtvYmplY3R9IHBhcmFtc1xyXG4gICAgICogQHJldHVybnMge1Byb21pc2U8VD59XHJcbiAgICAgKiBAbWVtYmVyb2YgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbnZva2VDb21tYW5kPFQ+KGNvbW1hbmROYW1lc3BhY2U6IHN0cmluZywgY29tbWFuZE5hbWU6IHN0cmluZywgcGFyYW1zOiBvYmplY3QpOiBQcm9taXNlPFQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29tbWFuZE5hbWVzcGFjZSA9IGNvbW1hbmROYW1lc3BhY2UgfHwgJ3RhYmRvYyc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm9wT2JqZWN0LkV4ZWN1dGVDb21tYW5kPFQ+KFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmROYW1lc3BhY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZE5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5TdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gJ0V4ZWN1dGVDb21tYW5kIGZhaWxlZCwgd2l0aCByZXN1bHQ6JyArIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLlJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKG1zZykpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZS5SZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIHdpbGwgcmVnaXN0cmF0aW9uIGEgc2luZ2xlIGluc3RhbmNlIG9mIGEgbm90aWZpY2F0aW9uIGhhbmRsZXIgd2l0aCB0aGUgTmF0aXZlIEMrKyBvYmplY3QsXHJcbiAgICAvLyBhbmQgaW1wbGVtZW50IG11bHRpLWRpc3BhdGNoIHRvIHRoZSB3ZWIgb2JqZWN0cyBmcm9tIGguZXJlXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKGV2ZW50SWQ6IHN0cmluZywgaGFuZGxlcjogY29udHJhY3QuTm90aWZpY2F0aW9uSGFuZGxlcik6ICgpID0+IHZvaWQge1xyXG4gICAgICAgIGlmIChldmVudElkIGluIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2V2ZW50SWRdLnB1c2goaGFuZGxlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZXZlbnRJZF0gPSBbaGFuZGxlcl07XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcm9wT2JqZWN0LlJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihldmVudElkKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZygnUmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyIGZhaWxlZDogJyArIGVycik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICgpID0+IHRoaXMucmVtb3ZlTm90aWZpY2F0aW9uSGFuZGxlcihldmVudElkLCBoYW5kbGVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlbW92ZU5vdGlmaWNhdGlvbkhhbmRsZXIoZXZlbnRJZDogc3RyaW5nLCBoYW5kbGVyOiBjb250cmFjdC5Ob3RpZmljYXRpb25IYW5kbGVyKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlckxpc3QgPSB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tldmVudElkXTtcclxuICAgICAgICBpZiAoIWhhbmRsZXJMaXN0KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZm91bmRJbmRleCA9IGhhbmRsZXJMaXN0LmluZGV4T2YoaGFuZGxlcik7XHJcbiAgICAgICAgaWYgKGZvdW5kSW5kZXggPj0gMCkge1xyXG4gICAgICAgICAgICBoYW5kbGVyTGlzdC5zcGxpY2UoZm91bmRJbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChoYW5kbGVyTGlzdC5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2V2ZW50SWRdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgZGlzcGF0Y2hOb3RpZmljYXRpb24obm90aWZpY2F0aW9uOiBQcmVzTGF5ZXJOb3RpZmljYXRpb24pOiB2b2lkIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygncmVjZWl2ZWQgbm90aWZpY2F0aW9uOiAnICsgSlNPTi5zdHJpbmdpZnkobm90aWZpY2F0aW9uKSk7XHJcbiAgICAgICAgbGV0IGV2ZW50SWQgPSBub3RpZmljYXRpb24uZXZlbnRJZDtcclxuICAgICAgICBsZXQgcHJlc01vZGVsID0gbm90aWZpY2F0aW9uLnByZXNNb2RlbDtcclxuICAgICAgICBpZiAoZXZlbnRJZCBpbiB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycykge1xyXG4gICAgICAgICAgICBsZXQgaGFuZGxlcnMgPSB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tldmVudElkXTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGhhbmRsZXJzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgICAgICAgICAgICBoYW5kbGVyc1tpXShwcmVzTW9kZWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9BZGRJbkFwaVByZXNMYXllckltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBBcGlFdmVudEhhbmRsZXIgfSBmcm9tICdAdGFibGVhdS9hcGktY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgRXhlY3V0ZVJlc3BvbnNlLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBOb3RpZmljYXRpb25IYW5kbGVyLFxyXG4gIFZlcmJJZCxcclxuICBWZXJzaW9uTnVtYmVyLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIEludGVybmFsQXBpRGlzcGF0Y2hlciBmb3IgZGVza3RvcC4gU2luY2UgdGhpcyB3aWxsIHJ1biBpbiB0aGUgc2FtZVxyXG4gKiBmcmFtZSBhcyB0aGUgQXBpRXZlbnRIYW5kbGVyLCB0aGlzIGNsYXNzIG1vc3RseSBqdXN0IG1hcnNoYWxscyBkb3duIHRvIHRoYXQgaW1wbGVtZW50YXRpb25cclxuICpcclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgRGVza3RvcEFwaURpc3BhdGNoZXJcclxuICogQGltcGxlbWVudHMge0ludGVybmFsQXBpRGlzcGF0Y2hlcn1cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEZXNrdG9wQXBpRGlzcGF0Y2hlciBpbXBsZW1lbnRzIEludGVybmFsQXBpRGlzcGF0Y2hlciB7XHJcbiAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uSGFuZGxlcnM6IEFycmF5PE5vdGlmaWNhdGlvbkhhbmRsZXI+O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfYXBpRXZlbnRIYW5kbGVyOiBBcGlFdmVudEhhbmRsZXIpIHtcclxuICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzID0gW107XHJcbiAgICB0aGlzLl9hcGlFdmVudEhhbmRsZXIuc2V0RXZlbnRIYW5kbGVyKChub3RpZmljYXRpb25JZCwgbW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMuZm9yRWFjaChoYW5kbGVyID0+IGhhbmRsZXIoe1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbklkOiBub3RpZmljYXRpb25JZCxcclxuICAgICAgICBkYXRhOiBtb2RlbFxyXG4gICAgICB9KSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuX2FwaUV2ZW50SGFuZGxlci5zZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4ZWN1dGUodmVyYjogVmVyYklkLCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyk6IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPiB7XHJcbiAgICAvLyBKdXN0IHBhc3MgdGhpcyByaWdodCB0aHJvdWdoIHRvIHRoZSBBcGlFdmVudEhhbmRsZXJcclxuICAgIHJldHVybiB0aGlzLl9hcGlFdmVudEhhbmRsZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMucHVzaChoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1bnJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyKTogdm9pZCB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycyA9IHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzLmZpbHRlcihoID0+IGggIT09IGhhbmRsZXIpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRGVza3RvcEFwaURpc3BhdGNoZXIudHNcbiAqKi8iLCJpbXBvcnQgJy4vdHlwZXMvUXRUeXBlcyc7XHJcblxyXG5pbXBvcnQgeyBRV2ViQ2hhbm5lbCB9IGZyb20gJ3F3ZWJjaGFubmVsJztcclxuXHJcbmltcG9ydCB7IEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdCB9IGZyb20gJy4vdHlwZXMvQWRkSW5BcGlQcmVzTGF5ZXJJbnRlcm9wT2JqZWN0JztcclxuXHJcbi8qKlxyXG4gKiBJbml0aWFsaXplcyB0aGUgUVdlYkNoYW5uZWwgY29udHJhY3QgYW5kIHJldHVybnMgdGhlIHByZXMgbGF5ZXIgaW50ZXJvcCBvYmplY3RcclxuICpcclxuICogQHJldHVybnMge1Byb21pc2U8QWRkSW5BcGlQcmVzTGF5ZXJJbnRlcm9wT2JqZWN0Pn1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplV2ViQ2hhbm5lbFByZXNMYXllcigpOiBQcm9taXNlPEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdD4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZTxBZGRJbkFwaVByZXNMYXllckludGVyb3BPYmplY3Q+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIHRyeSB7XHJcblxyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcclxuICAgICAgbmV3IFFXZWJDaGFubmVsKHF0LndlYkNoYW5uZWxUcmFuc3BvcnQsIChjaGFubmVsKSA9PiB7XHJcblxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxyXG4gICAgICAgIGNvbnN0IGFkZEluUHJlc0xheWVyID0gY2hhbm5lbC5vYmplY3RzWydhZGRJblByZXNMYXllciddIGFzIEFkZEluQXBpUHJlc0xheWVySW50ZXJvcE9iamVjdDtcclxuICAgICAgICByZXNvbHZlKGFkZEluUHJlc0xheWVyKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIHJlamVjdChlKTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGhhc1F0KCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0eXBlb2YgcXQgPT09ICdvYmplY3QnO1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9RdFdlYkNoYW5uZWxJbXBsLnRzXG4gKiovIiwiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbioqXG4qKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIFF0IENvbXBhbnkgTHRkLlxuKiogQ29weXJpZ2h0IChDKSAyMDE0IEtsYXLDpGx2ZGFsZW5zIERhdGFrb25zdWx0IEFCLCBhIEtEQUIgR3JvdXAgY29tcGFueSwgaW5mb0BrZGFiLmNvbSwgYXV0aG9yIE1pbGlhbiBXb2xmZiA8bWlsaWFuLndvbGZmQGtkYWIuY29tPlxuKiogQ29udGFjdDogaHR0cDovL3d3dy5xdC5pby9saWNlbnNpbmcvXG4qKlxuKiogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFF0V2ViQ2hhbm5lbCBtb2R1bGUgb2YgdGhlIFF0IFRvb2xraXQuXG4qKlxuKiogJFFUX0JFR0lOX0xJQ0VOU0U6TEdQTDIxJFxuKiogQ29tbWVyY2lhbCBMaWNlbnNlIFVzYWdlXG4qKiBMaWNlbnNlZXMgaG9sZGluZyB2YWxpZCBjb21tZXJjaWFsIFF0IGxpY2Vuc2VzIG1heSB1c2UgdGhpcyBmaWxlIGluXG4qKiBhY2NvcmRhbmNlIHdpdGggdGhlIGNvbW1lcmNpYWwgbGljZW5zZSBhZ3JlZW1lbnQgcHJvdmlkZWQgd2l0aCB0aGVcbioqIFNvZnR3YXJlIG9yLCBhbHRlcm5hdGl2ZWx5LCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHRlcm1zIGNvbnRhaW5lZCBpblxuKiogYSB3cml0dGVuIGFncmVlbWVudCBiZXR3ZWVuIHlvdSBhbmQgVGhlIFF0IENvbXBhbnkuIEZvciBsaWNlbnNpbmcgdGVybXNcbioqIGFuZCBjb25kaXRpb25zIHNlZSBodHRwOi8vd3d3LnF0LmlvL3Rlcm1zLWNvbmRpdGlvbnMuIEZvciBmdXJ0aGVyXG4qKiBpbmZvcm1hdGlvbiB1c2UgdGhlIGNvbnRhY3QgZm9ybSBhdCBodHRwOi8vd3d3LnF0LmlvL2NvbnRhY3QtdXMuXG4qKlxuKiogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIFVzYWdlXG4qKiBBbHRlcm5hdGl2ZWx5LCB0aGlzIGZpbGUgbWF5IGJlIHVzZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyXG4qKiBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMi4xIG9yIHZlcnNpb24gMyBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWVcbioqIFNvZnR3YXJlIEZvdW5kYXRpb24gYW5kIGFwcGVhcmluZyBpbiB0aGUgZmlsZSBMSUNFTlNFLkxHUEx2MjEgYW5kXG4qKiBMSUNFTlNFLkxHUEx2MyBpbmNsdWRlZCBpbiB0aGUgcGFja2FnaW5nIG9mIHRoaXMgZmlsZS4gUGxlYXNlIHJldmlldyB0aGVcbioqIGZvbGxvd2luZyBpbmZvcm1hdGlvbiB0byBlbnN1cmUgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuKiogcmVxdWlyZW1lbnRzIHdpbGwgYmUgbWV0OiBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xncGwuaHRtbCBhbmRcbioqIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9vbGQtbGljZW5zZXMvbGdwbC0yLjEuaHRtbC5cbioqXG4qKiBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBUaGUgUXQgQ29tcGFueSBnaXZlcyB5b3UgY2VydGFpbiBhZGRpdGlvbmFsXG4qKiByaWdodHMuIFRoZXNlIHJpZ2h0cyBhcmUgZGVzY3JpYmVkIGluIFRoZSBRdCBDb21wYW55IExHUEwgRXhjZXB0aW9uXG4qKiB2ZXJzaW9uIDEuMSwgaW5jbHVkZWQgaW4gdGhlIGZpbGUgTEdQTF9FWENFUFRJT04udHh0IGluIHRoaXMgcGFja2FnZS5cbioqXG4qKiAkUVRfRU5EX0xJQ0VOU0UkXG4qKlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcyA9IHtcbiAgICBzaWduYWw6IDEsXG4gICAgcHJvcGVydHlVcGRhdGU6IDIsXG4gICAgaW5pdDogMyxcbiAgICBpZGxlOiA0LFxuICAgIGRlYnVnOiA1LFxuICAgIGludm9rZU1ldGhvZDogNixcbiAgICBjb25uZWN0VG9TaWduYWw6IDcsXG4gICAgZGlzY29ubmVjdEZyb21TaWduYWw6IDgsXG4gICAgc2V0UHJvcGVydHk6IDksXG4gICAgcmVzcG9uc2U6IDEwLFxufTtcblxudmFyIFFXZWJDaGFubmVsID0gZnVuY3Rpb24odHJhbnNwb3J0LCBpbml0Q2FsbGJhY2spXG57XG4gICAgaWYgKHR5cGVvZiB0cmFuc3BvcnQgIT09IFwib2JqZWN0XCIgfHwgdHlwZW9mIHRyYW5zcG9ydC5zZW5kICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIlRoZSBRV2ViQ2hhbm5lbCBleHBlY3RzIGEgdHJhbnNwb3J0IG9iamVjdCB3aXRoIGEgc2VuZCBmdW5jdGlvbiBhbmQgb25tZXNzYWdlIGNhbGxiYWNrIHByb3BlcnR5LlwiICtcbiAgICAgICAgICAgICAgICAgICAgICBcIiBHaXZlbiBpczogdHJhbnNwb3J0OiBcIiArIHR5cGVvZih0cmFuc3BvcnQpICsgXCIsIHRyYW5zcG9ydC5zZW5kOiBcIiArIHR5cGVvZih0cmFuc3BvcnQuc2VuZCkpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFyIGNoYW5uZWwgPSB0aGlzO1xuICAgIHRoaXMudHJhbnNwb3J0ID0gdHJhbnNwb3J0O1xuXG4gICAgdGhpcy5zZW5kID0gZnVuY3Rpb24oZGF0YSlcbiAgICB7XG4gICAgICAgIGlmICh0eXBlb2YoZGF0YSkgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBjaGFubmVsLnRyYW5zcG9ydC5zZW5kKGRhdGEpO1xuICAgIH1cblxuICAgIHRoaXMudHJhbnNwb3J0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2UpXG4gICAge1xuICAgICAgICB2YXIgZGF0YSA9IG1lc3NhZ2UuZGF0YTtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5zaWduYWw6XG4gICAgICAgICAgICAgICAgY2hhbm5lbC5oYW5kbGVTaWduYWwoZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLnJlc3BvbnNlOlxuICAgICAgICAgICAgICAgIGNoYW5uZWwuaGFuZGxlUmVzcG9uc2UoZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLnByb3BlcnR5VXBkYXRlOlxuICAgICAgICAgICAgICAgIGNoYW5uZWwuaGFuZGxlUHJvcGVydHlVcGRhdGUoZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJpbnZhbGlkIG1lc3NhZ2UgcmVjZWl2ZWQ6XCIsIG1lc3NhZ2UuZGF0YSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmV4ZWNDYWxsYmFja3MgPSB7fTtcbiAgICB0aGlzLmV4ZWNJZCA9IDA7XG4gICAgdGhpcy5leGVjID0gZnVuY3Rpb24oZGF0YSwgY2FsbGJhY2spXG4gICAge1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgICAvLyBpZiBubyBjYWxsYmFjayBpcyBnaXZlbiwgc2VuZCBkaXJlY3RseVxuICAgICAgICAgICAgY2hhbm5lbC5zZW5kKGRhdGEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFubmVsLmV4ZWNJZCA9PT0gTnVtYmVyLk1BWF9WQUxVRSkge1xuICAgICAgICAgICAgLy8gd3JhcFxuICAgICAgICAgICAgY2hhbm5lbC5leGVjSWQgPSBOdW1iZXIuTUlOX1ZBTFVFO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwiaWRcIikpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJDYW5ub3QgZXhlYyBtZXNzYWdlIHdpdGggcHJvcGVydHkgaWQ6IFwiICsgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRhdGEuaWQgPSBjaGFubmVsLmV4ZWNJZCsrO1xuICAgICAgICBjaGFubmVsLmV4ZWNDYWxsYmFja3NbZGF0YS5pZF0gPSBjYWxsYmFjaztcbiAgICAgICAgY2hhbm5lbC5zZW5kKGRhdGEpO1xuICAgIH07XG5cbiAgICB0aGlzLm9iamVjdHMgPSB7fTtcblxuICAgIHRoaXMuaGFuZGxlU2lnbmFsID0gZnVuY3Rpb24obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIHZhciBvYmplY3QgPSBjaGFubmVsLm9iamVjdHNbbWVzc2FnZS5vYmplY3RdO1xuICAgICAgICBpZiAob2JqZWN0KSB7XG4gICAgICAgICAgICBvYmplY3Quc2lnbmFsRW1pdHRlZChtZXNzYWdlLnNpZ25hbCwgbWVzc2FnZS5hcmdzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlVuaGFuZGxlZCBzaWduYWw6IFwiICsgbWVzc2FnZS5vYmplY3QgKyBcIjo6XCIgKyBtZXNzYWdlLnNpZ25hbCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVJlc3BvbnNlID0gZnVuY3Rpb24obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIGlmICghbWVzc2FnZS5oYXNPd25Qcm9wZXJ0eShcImlkXCIpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiSW52YWxpZCByZXNwb25zZSBtZXNzYWdlIHJlY2VpdmVkOiBcIiwgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5uZWwuZXhlY0NhbGxiYWNrc1ttZXNzYWdlLmlkXShtZXNzYWdlLmRhdGEpO1xuICAgICAgICBkZWxldGUgY2hhbm5lbC5leGVjQ2FsbGJhY2tzW21lc3NhZ2UuaWRdO1xuICAgIH1cblxuICAgIHRoaXMuaGFuZGxlUHJvcGVydHlVcGRhdGUgPSBmdW5jdGlvbihtZXNzYWdlKVxuICAgIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBtZXNzYWdlLmRhdGEpIHtcbiAgICAgICAgICAgIHZhciBkYXRhID0gbWVzc2FnZS5kYXRhW2ldO1xuICAgICAgICAgICAgdmFyIG9iamVjdCA9IGNoYW5uZWwub2JqZWN0c1tkYXRhLm9iamVjdF07XG4gICAgICAgICAgICBpZiAob2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgb2JqZWN0LnByb3BlcnR5VXBkYXRlKGRhdGEuc2lnbmFscywgZGF0YS5wcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiVW5oYW5kbGVkIHByb3BlcnR5IHVwZGF0ZTogXCIgKyBkYXRhLm9iamVjdCArIFwiOjpcIiArIGRhdGEuc2lnbmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjaGFubmVsLmV4ZWMoe3R5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmlkbGV9KTtcbiAgICB9XG5cbiAgICB0aGlzLmRlYnVnID0gZnVuY3Rpb24obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIGNoYW5uZWwuc2VuZCh7dHlwZTogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuZGVidWcsIGRhdGE6IG1lc3NhZ2V9KTtcbiAgICB9O1xuXG4gICAgY2hhbm5lbC5leGVjKHt0eXBlOiBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5pbml0fSwgZnVuY3Rpb24oZGF0YSkge1xuICAgICAgICBmb3IgKHZhciBvYmplY3ROYW1lIGluIGRhdGEpIHtcbiAgICAgICAgICAgIHZhciBvYmplY3QgPSBuZXcgUU9iamVjdChvYmplY3ROYW1lLCBkYXRhW29iamVjdE5hbWVdLCBjaGFubmVsKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBub3cgdW53cmFwIHByb3BlcnRpZXMsIHdoaWNoIG1pZ2h0IHJlZmVyZW5jZSBvdGhlciByZWdpc3RlcmVkIG9iamVjdHNcbiAgICAgICAgZm9yICh2YXIgb2JqZWN0TmFtZSBpbiBjaGFubmVsLm9iamVjdHMpIHtcbiAgICAgICAgICAgIGNoYW5uZWwub2JqZWN0c1tvYmplY3ROYW1lXS51bndyYXBQcm9wZXJ0aWVzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluaXRDYWxsYmFjaykge1xuICAgICAgICAgICAgaW5pdENhbGxiYWNrKGNoYW5uZWwpO1xuICAgICAgICB9XG4gICAgICAgIGNoYW5uZWwuZXhlYyh7dHlwZTogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuaWRsZX0pO1xuICAgIH0pO1xufTtcblxuZnVuY3Rpb24gUU9iamVjdChuYW1lLCBkYXRhLCB3ZWJDaGFubmVsKVxue1xuICAgIHRoaXMuX19pZF9fID0gbmFtZTtcbiAgICB3ZWJDaGFubmVsLm9iamVjdHNbbmFtZV0gPSB0aGlzO1xuXG4gICAgLy8gTGlzdCBvZiBjYWxsYmFja3MgdGhhdCBnZXQgaW52b2tlZCB1cG9uIHNpZ25hbCBlbWlzc2lvblxuICAgIHRoaXMuX19vYmplY3RTaWduYWxzX18gPSB7fTtcblxuICAgIC8vIENhY2hlIG9mIGFsbCBwcm9wZXJ0aWVzLCB1cGRhdGVkIHdoZW4gYSBub3RpZnkgc2lnbmFsIGlzIGVtaXR0ZWRcbiAgICB0aGlzLl9fcHJvcGVydHlDYWNoZV9fID0ge307XG5cbiAgICB2YXIgb2JqZWN0ID0gdGhpcztcblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHRoaXMudW53cmFwUU9iamVjdCA9IGZ1bmN0aW9uKHJlc3BvbnNlKVxuICAgIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICAgIC8vIHN1cHBvcnQgbGlzdCBvZiBvYmplY3RzXG4gICAgICAgICAgICB2YXIgcmV0ID0gbmV3IEFycmF5KHJlc3BvbnNlLmxlbmd0aCk7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3BvbnNlLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgcmV0W2ldID0gb2JqZWN0LnVud3JhcFFPYmplY3QocmVzcG9uc2VbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJlc3BvbnNlXG4gICAgICAgICAgICB8fCAhcmVzcG9uc2VbXCJfX1FPYmplY3QqX19cIl1cbiAgICAgICAgICAgIHx8IHJlc3BvbnNlW1wiaWRcIl0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIG9iamVjdElkID0gcmVzcG9uc2UuaWQ7XG4gICAgICAgIGlmICh3ZWJDaGFubmVsLm9iamVjdHNbb2JqZWN0SWRdKVxuICAgICAgICAgICAgcmV0dXJuIHdlYkNoYW5uZWwub2JqZWN0c1tvYmplY3RJZF07XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IHVud3JhcCB1bmtub3duIFFPYmplY3QgXCIgKyBvYmplY3RJZCArIFwiIHdpdGhvdXQgZGF0YS5cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgcU9iamVjdCA9IG5ldyBRT2JqZWN0KCBvYmplY3RJZCwgcmVzcG9uc2UuZGF0YSwgd2ViQ2hhbm5lbCApO1xuICAgICAgICBxT2JqZWN0LmRlc3Ryb3llZC5jb25uZWN0KGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKHdlYkNoYW5uZWwub2JqZWN0c1tvYmplY3RJZF0gPT09IHFPYmplY3QpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgd2ViQ2hhbm5lbC5vYmplY3RzW29iamVjdElkXTtcbiAgICAgICAgICAgICAgICAvLyByZXNldCB0aGUgbm93IGRlbGV0ZWQgUU9iamVjdCB0byBhbiBlbXB0eSB7fSBvYmplY3RcbiAgICAgICAgICAgICAgICAvLyBqdXN0IGFzc2lnbmluZyB7fSB0aG91Z2ggd291bGQgbm90IGhhdmUgdGhlIGRlc2lyZWQgZWZmZWN0LCBidXQgdGhlXG4gICAgICAgICAgICAgICAgLy8gYmVsb3cgYWxzbyBlbnN1cmVzIGFsbCBleHRlcm5hbCByZWZlcmVuY2VzIHdpbGwgc2VlIHRoZSBlbXB0eSBtYXBcbiAgICAgICAgICAgICAgICAvLyBOT1RFOiB0aGlzIGRldG91ciBpcyBuZWNlc3NhcnkgdG8gd29ya2Fyb3VuZCBRVEJVRy00MDAyMVxuICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eU5hbWVzID0gW107XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgcHJvcGVydHlOYW1lIGluIHFPYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5wdXNoKHByb3BlcnR5TmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAodmFyIGlkeCBpbiBwcm9wZXJ0eU5hbWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBxT2JqZWN0W3Byb3BlcnR5TmFtZXNbaWR4XV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gaGVyZSB3ZSBhcmUgYWxyZWFkeSBpbml0aWFsaXplZCwgYW5kIHRodXMgbXVzdCBkaXJlY3RseSB1bndyYXAgdGhlIHByb3BlcnRpZXNcbiAgICAgICAgcU9iamVjdC51bndyYXBQcm9wZXJ0aWVzKCk7XG4gICAgICAgIHJldHVybiBxT2JqZWN0O1xuICAgIH1cblxuICAgIHRoaXMudW53cmFwUHJvcGVydGllcyA9IGZ1bmN0aW9uKClcbiAgICB7XG4gICAgICAgIGZvciAodmFyIHByb3BlcnR5SWR4IGluIG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfXykge1xuICAgICAgICAgICAgb2JqZWN0Ll9fcHJvcGVydHlDYWNoZV9fW3Byb3BlcnR5SWR4XSA9IG9iamVjdC51bndyYXBRT2JqZWN0KG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfX1twcm9wZXJ0eUlkeF0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU2lnbmFsKHNpZ25hbERhdGEsIGlzUHJvcGVydHlOb3RpZnlTaWduYWwpXG4gICAge1xuICAgICAgICB2YXIgc2lnbmFsTmFtZSA9IHNpZ25hbERhdGFbMF07XG4gICAgICAgIHZhciBzaWduYWxJbmRleCA9IHNpZ25hbERhdGFbMV07XG4gICAgICAgIG9iamVjdFtzaWduYWxOYW1lXSA9IHtcbiAgICAgICAgICAgIGNvbm5lY3Q6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihjYWxsYmFjaykgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQmFkIGNhbGxiYWNrIGdpdmVuIHRvIGNvbm5lY3QgdG8gc2lnbmFsIFwiICsgc2lnbmFsTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdID0gb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XSB8fCBbXTtcbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdLnB1c2goY2FsbGJhY2spO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpc1Byb3BlcnR5Tm90aWZ5U2lnbmFsICYmIHNpZ25hbE5hbWUgIT09IFwiZGVzdHJveWVkXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSByZXF1aXJlZCBmb3IgXCJwdXJlXCIgc2lnbmFscywgaGFuZGxlZCBzZXBhcmF0ZWx5IGZvciBwcm9wZXJ0aWVzIGluIHByb3BlcnR5VXBkYXRlXG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gbm90ZSB0aGF0IHdlIGFsd2F5cyBnZXQgbm90aWZpZWQgYWJvdXQgdGhlIGRlc3Ryb3llZCBzaWduYWxcbiAgICAgICAgICAgICAgICAgICAgd2ViQ2hhbm5lbC5leGVjKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmNvbm5lY3RUb1NpZ25hbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogb2JqZWN0Ll9faWRfXyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbDogc2lnbmFsSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2Nvbm5lY3Q6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZihjYWxsYmFjaykgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQmFkIGNhbGxiYWNrIGdpdmVuIHRvIGRpc2Nvbm5lY3QgZnJvbSBzaWduYWwgXCIgKyBzaWduYWxOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdID0gb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XSB8fCBbXTtcbiAgICAgICAgICAgICAgICB2YXIgaWR4ID0gb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XS5pbmRleE9mKGNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoaWR4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IGZpbmQgY29ubmVjdGlvbiBvZiBzaWduYWwgXCIgKyBzaWduYWxOYW1lICsgXCIgdG8gXCIgKyBjYWxsYmFjay5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdLnNwbGljZShpZHgsIDEpO1xuICAgICAgICAgICAgICAgIGlmICghaXNQcm9wZXJ0eU5vdGlmeVNpZ25hbCAmJiBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsSW5kZXhdLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBvbmx5IHJlcXVpcmVkIGZvciBcInB1cmVcIiBzaWduYWxzLCBoYW5kbGVkIHNlcGFyYXRlbHkgZm9yIHByb3BlcnRpZXMgaW4gcHJvcGVydHlVcGRhdGVcbiAgICAgICAgICAgICAgICAgICAgd2ViQ2hhbm5lbC5leGVjKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmRpc2Nvbm5lY3RGcm9tU2lnbmFsLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiBvYmplY3QuX19pZF9fLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsOiBzaWduYWxJbmRleFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW52b2tlcyBhbGwgY2FsbGJhY2tzIGZvciB0aGUgZ2l2ZW4gc2lnbmFsbmFtZS4gQWxzbyB3b3JrcyBmb3IgcHJvcGVydHkgbm90aWZ5IGNhbGxiYWNrcy5cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnZva2VTaWduYWxDYWxsYmFja3Moc2lnbmFsTmFtZSwgc2lnbmFsQXJncylcbiAgICB7XG4gICAgICAgIHZhciBjb25uZWN0aW9ucyA9IG9iamVjdC5fX29iamVjdFNpZ25hbHNfX1tzaWduYWxOYW1lXTtcbiAgICAgICAgaWYgKGNvbm5lY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25uZWN0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgY2FsbGJhY2suYXBwbHkoY2FsbGJhY2ssIHNpZ25hbEFyZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnByb3BlcnR5VXBkYXRlID0gZnVuY3Rpb24oc2lnbmFscywgcHJvcGVydHlNYXApXG4gICAge1xuICAgICAgICAvLyB1cGRhdGUgcHJvcGVydHkgY2FjaGVcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydHlJbmRleCBpbiBwcm9wZXJ0eU1hcCkge1xuICAgICAgICAgICAgdmFyIHByb3BlcnR5VmFsdWUgPSBwcm9wZXJ0eU1hcFtwcm9wZXJ0eUluZGV4XTtcbiAgICAgICAgICAgIG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfX1twcm9wZXJ0eUluZGV4XSA9IHByb3BlcnR5VmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKHZhciBzaWduYWxOYW1lIGluIHNpZ25hbHMpIHtcbiAgICAgICAgICAgIC8vIEludm9rZSBhbGwgY2FsbGJhY2tzLCBhcyBzaWduYWxFbWl0dGVkKCkgZG9lcyBub3QuIFRoaXMgZW5zdXJlcyB0aGVcbiAgICAgICAgICAgIC8vIHByb3BlcnR5IGNhY2hlIGlzIHVwZGF0ZWQgYmVmb3JlIHRoZSBjYWxsYmFja3MgYXJlIGludm9rZWQuXG4gICAgICAgICAgICBpbnZva2VTaWduYWxDYWxsYmFja3Moc2lnbmFsTmFtZSwgc2lnbmFsc1tzaWduYWxOYW1lXSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNpZ25hbEVtaXR0ZWQgPSBmdW5jdGlvbihzaWduYWxOYW1lLCBzaWduYWxBcmdzKVxuICAgIHtcbiAgICAgICAgaW52b2tlU2lnbmFsQ2FsbGJhY2tzKHNpZ25hbE5hbWUsIHNpZ25hbEFyZ3MpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZE1ldGhvZChtZXRob2REYXRhKVxuICAgIHtcbiAgICAgICAgdmFyIG1ldGhvZE5hbWUgPSBtZXRob2REYXRhWzBdO1xuICAgICAgICB2YXIgbWV0aG9kSWR4ID0gbWV0aG9kRGF0YVsxXTtcbiAgICAgICAgb2JqZWN0W21ldGhvZE5hbWVdID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgdmFyIGNhbGxiYWNrO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFyZ3VtZW50c1tpXSA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGFyZ3MucHVzaChhcmd1bWVudHNbaV0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB3ZWJDaGFubmVsLmV4ZWMoe1xuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5pbnZva2VNZXRob2QsXG4gICAgICAgICAgICAgICAgXCJvYmplY3RcIjogb2JqZWN0Ll9faWRfXyxcbiAgICAgICAgICAgICAgICBcIm1ldGhvZFwiOiBtZXRob2RJZHgsXG4gICAgICAgICAgICAgICAgXCJhcmdzXCI6IGFyZ3NcbiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IG9iamVjdC51bndyYXBRT2JqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2spKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiaW5kR2V0dGVyU2V0dGVyKHByb3BlcnR5SW5mbylcbiAgICB7XG4gICAgICAgIHZhciBwcm9wZXJ0eUluZGV4ID0gcHJvcGVydHlJbmZvWzBdO1xuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gcHJvcGVydHlJbmZvWzFdO1xuICAgICAgICB2YXIgbm90aWZ5U2lnbmFsRGF0YSA9IHByb3BlcnR5SW5mb1syXTtcbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBwcm9wZXJ0eSBjYWNoZSB3aXRoIGN1cnJlbnQgdmFsdWVcbiAgICAgICAgLy8gTk9URTogaWYgdGhpcyBpcyBhbiBvYmplY3QsIGl0IGlzIG5vdCBkaXJlY3RseSB1bndyYXBwZWQgYXMgaXQgbWlnaHRcbiAgICAgICAgLy8gcmVmZXJlbmNlIG90aGVyIFFPYmplY3QgdGhhdCB3ZSBkbyBub3Qga25vdyB5ZXRcbiAgICAgICAgb2JqZWN0Ll9fcHJvcGVydHlDYWNoZV9fW3Byb3BlcnR5SW5kZXhdID0gcHJvcGVydHlJbmZvWzNdO1xuXG4gICAgICAgIGlmIChub3RpZnlTaWduYWxEYXRhKSB7XG4gICAgICAgICAgICBpZiAobm90aWZ5U2lnbmFsRGF0YVswXSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIC8vIHNpZ25hbCBuYW1lIGlzIG9wdGltaXplZCBhd2F5LCByZWNvbnN0cnVjdCB0aGUgYWN0dWFsIG5hbWVcbiAgICAgICAgICAgICAgICBub3RpZnlTaWduYWxEYXRhWzBdID0gcHJvcGVydHlOYW1lICsgXCJDaGFuZ2VkXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhZGRTaWduYWwobm90aWZ5U2lnbmFsRGF0YSwgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHtcbiAgICAgICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eVZhbHVlID0gb2JqZWN0Ll9fcHJvcGVydHlDYWNoZV9fW3Byb3BlcnR5SW5kZXhdO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGRuJ3QgaGFwcGVuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlVuZGVmaW5lZCB2YWx1ZSBpbiBwcm9wZXJ0eSBjYWNoZSBmb3IgcHJvcGVydHkgXFxcIlwiICsgcHJvcGVydHlOYW1lICsgXCJcXFwiIGluIG9iamVjdCBcIiArIG9iamVjdC5fX2lkX18pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldDogZnVuY3Rpb24odmFsdWUpIHtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJQcm9wZXJ0eSBzZXR0ZXIgZm9yIFwiICsgcHJvcGVydHlOYW1lICsgXCIgY2FsbGVkIHdpdGggdW5kZWZpbmVkIHZhbHVlIVwiKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvYmplY3QuX19wcm9wZXJ0eUNhY2hlX19bcHJvcGVydHlJbmRleF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB3ZWJDaGFubmVsLmV4ZWMoe1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuc2V0UHJvcGVydHksXG4gICAgICAgICAgICAgICAgICAgIFwib2JqZWN0XCI6IG9iamVjdC5fX2lkX18sXG4gICAgICAgICAgICAgICAgICAgIFwicHJvcGVydHlcIjogcHJvcGVydHlJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB2YWx1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIGRhdGEubWV0aG9kcy5mb3JFYWNoKGFkZE1ldGhvZCk7XG5cbiAgICBkYXRhLnByb3BlcnRpZXMuZm9yRWFjaChiaW5kR2V0dGVyU2V0dGVyKTtcblxuICAgIGRhdGEuc2lnbmFscy5mb3JFYWNoKGZ1bmN0aW9uKHNpZ25hbCkgeyBhZGRTaWduYWwoc2lnbmFsLCBmYWxzZSk7IH0pO1xuXG4gICAgZm9yICh2YXIgbmFtZSBpbiBkYXRhLmVudW1zKSB7XG4gICAgICAgIG9iamVjdFtuYW1lXSA9IGRhdGEuZW51bXNbbmFtZV07XG4gICAgfVxufVxuXG4vL3JlcXVpcmVkIGZvciB1c2Ugd2l0aCBub2RlanNcbmlmICh0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jykge1xuICAgIG1vZHVsZS5leHBvcnRzID0ge1xuICAgICAgICBRV2ViQ2hhbm5lbDogUVdlYkNoYW5uZWxcbiAgICB9O1xufVxuXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9+L3F3ZWJjaGFubmVsL3F3ZWJjaGFubmVsLmpzXG4gKiogbW9kdWxlIGlkID0gMTA0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file From 6fa039e1109e89e0a3062317a0e1af88134b2d25 Mon Sep 17 00:00:00 2001 From: Brendan Lee Date: Tue, 28 Nov 2017 12:14:05 -0800 Subject: [PATCH 2/2] whitespace removal --- Samples/DataSources/datasources.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Samples/DataSources/datasources.html b/Samples/DataSources/datasources.html index 837fa47f..d5d74050 100644 --- a/Samples/DataSources/datasources.html +++ b/Samples/DataSources/datasources.html @@ -67,7 +67,7 @@ Type - + Fields