UNPKG

@angularfy/autonumeric

Version:
121 lines 44 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @record */ export function AutonumericOptions() { } if (false) { /** @type {?|undefined} */ AutonumericOptions.prototype.allowDecimalPadding; /** @type {?|undefined} */ AutonumericOptions.prototype.alwaysAllowDecimalCharacter; /** @type {?|undefined} */ AutonumericOptions.prototype.caretPositionOnFocus; /** @type {?|undefined} */ AutonumericOptions.prototype.createLocalList; /** @type {?|undefined} */ AutonumericOptions.prototype.currencySymbol; /** @type {?|undefined} */ AutonumericOptions.prototype.currencySymbolPlacement; /** @type {?|undefined} */ AutonumericOptions.prototype.decimalCharacter; /** @type {?|undefined} */ AutonumericOptions.prototype.decimalCharacterAlternative; /** @type {?|undefined} */ AutonumericOptions.prototype.decimalPlaces; /** @type {?|undefined} */ AutonumericOptions.prototype.decimalPlacesRawValue; /** @type {?|undefined} */ AutonumericOptions.prototype.decimalPlacesShownOnBlur; /** @type {?|undefined} */ AutonumericOptions.prototype.decimalPlacesShownOnFocus; /** @type {?|undefined} */ AutonumericOptions.prototype.defaultValueOverride; /** @type {?|undefined} */ AutonumericOptions.prototype.digitalGroupSpacing; /** @type {?|undefined} */ AutonumericOptions.prototype.digitGroupSeparator; /** @type {?|undefined} */ AutonumericOptions.prototype.divisorWhenUnfocused; /** @type {?|undefined} */ AutonumericOptions.prototype.emptyInputBehavior; /** @type {?|undefined} */ AutonumericOptions.prototype.eventBubbles; /** @type {?|undefined} */ AutonumericOptions.prototype.eventIsCancelable; /** @type {?|undefined} */ AutonumericOptions.prototype.failOnUnknownOption; /** @type {?|undefined} */ AutonumericOptions.prototype.formatOnPageLoad; /** @type {?|undefined} */ AutonumericOptions.prototype.formulaMode; /** @type {?|undefined} */ AutonumericOptions.prototype.historySize; /** @type {?|undefined} */ AutonumericOptions.prototype.isCancellable; /** @type {?|undefined} */ AutonumericOptions.prototype.leadingZero; /** @type {?|undefined} */ AutonumericOptions.prototype.maximumValue; /** @type {?|undefined} */ AutonumericOptions.prototype.minimumValue; /** @type {?|undefined} */ AutonumericOptions.prototype.modifyValueOnWheel; /** @type {?|undefined} */ AutonumericOptions.prototype.negativeBracketsTypeOnBlur; /** @type {?|undefined} */ AutonumericOptions.prototype.negativePositiveSignPlacement; /** @type {?|undefined} */ AutonumericOptions.prototype.negativeSignCharacter; /** @type {?|undefined} */ AutonumericOptions.prototype.noEventListeners; /** @type {?|undefined} */ AutonumericOptions.prototype.onInvalidPaste; /** @type {?|undefined} */ AutonumericOptions.prototype.outputFormat; /** @type {?|undefined} */ AutonumericOptions.prototype.overrideMinMaxLimits; /** @type {?|undefined} */ AutonumericOptions.prototype.positiveSignCharacter; /** @type {?|undefined} */ AutonumericOptions.prototype.rawValueDivisor; /** @type {?|undefined} */ AutonumericOptions.prototype.readOnly; /** @type {?|undefined} */ AutonumericOptions.prototype.roundingMethod; /** @type {?|undefined} */ AutonumericOptions.prototype.saveValueToSessionStorage; /** @type {?|undefined} */ AutonumericOptions.prototype.selectNumberOnly; /** @type {?|undefined} */ AutonumericOptions.prototype.selectOnFocus; /** @type {?|undefined} */ AutonumericOptions.prototype.serializeSpaces; /** @type {?|undefined} */ AutonumericOptions.prototype.showOnlyNumbersOnFocus; /** @type {?|undefined} */ AutonumericOptions.prototype.showPositiveSign; /** @type {?|undefined} */ AutonumericOptions.prototype.showWarnings; /** @type {?|undefined} */ AutonumericOptions.prototype.styleRules; /** @type {?|undefined} */ AutonumericOptions.prototype.suffixText; /** @type {?|undefined} */ AutonumericOptions.prototype.symbolWhenUnfocused; /** @type {?|undefined} */ AutonumericOptions.prototype.unformatOnHover; /** @type {?|undefined} */ AutonumericOptions.prototype.unformatOnSubmit; /** @type {?|undefined} */ AutonumericOptions.prototype.valuesToStrings; /** @type {?|undefined} */ AutonumericOptions.prototype.watchExternalChanges; /** @type {?|undefined} */ AutonumericOptions.prototype.wheelOn; /** @type {?|undefined} */ AutonumericOptions.prototype.wheelStep; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b251bWVyaWMubW9kZWwuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYW5ndWxhcmZ5L2F1dG9udW1lcmljLyIsInNvdXJjZXMiOlsibGliL2F1dG9udW1lcmljLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSx3Q0EyZEM7OztJQXBkRyxpREFBdUM7O0lBUXZDLHlEQUFzQzs7SUFTdEMsa0RBQXFDOztJQUtyQyw2Q0FBMEI7O0lBTTFCLDRDQUF3Qjs7SUFPeEIscURBQWlDOztJQUlqQyw4Q0FBMEI7O0lBTTFCLHlEQUE0Qzs7SUFLNUMsMkNBQXVCOztJQU12QixtREFBc0M7O0lBU3RDLHNEQUF5Qzs7SUFXekMsdURBQTBDOztJQVExQyxrREFBNEI7O0lBUzVCLGlEQUFzQzs7SUFLdEMsaURBQTZCOztJQVU3QixrREFBcUM7O0lBWXJDLGdEQUE0Qjs7SUFJNUIsMENBQXVCOztJQUl2QiwrQ0FBNEI7O0lBUTVCLGlEQUE4Qjs7SUFJOUIsOENBQTJCOztJQVkzQix5Q0FBc0I7O0lBS3RCLHlDQUFxQjs7SUFZckIsMkNBQXdCOztJQVF4Qix5Q0FBcUI7O0lBT3JCLDBDQUErQjs7SUFRL0IsMENBQStCOztJQWEvQixnREFBNkI7O0lBTTdCLHdEQUEyQzs7SUFxQjNDLDJEQUE4Qzs7SUFLOUMsbURBQStCOztJQVMvQiw4Q0FBMkI7O0lBcUIzQiw0Q0FBd0I7O0lBV3hCLDBDQUE2Qjs7SUFNN0Isa0RBQXFDOztJQUtyQyxtREFBc0M7O0lBUXRDLDZDQUFnQzs7SUFPaEMsc0NBQW1COztJQWdCbkIsNENBQXdCOztJQUl4Qix1REFBb0M7O0lBS3BDLDhDQUEyQjs7SUFLM0IsMkNBQXdCOztJQVV4Qiw2Q0FBeUI7O0lBTXpCLG9EQUFpQzs7SUFNakMsOENBQTJCOztJQUszQiwwQ0FBdUI7O0lBNkJ2Qix3Q0FBaUI7O0lBS2pCLHdDQUFvQjs7SUFjcEIsaURBQW9DOztJQWFwQyw2Q0FBMEI7O0lBSzFCLDhDQUEyQjs7SUFNM0IsNkNBQWtFOztJQU1sRSxrREFBK0I7O0lBWS9CLHFDQUFpQjs7SUFZakIsdUNBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9udW1lcmljT3B0aW9ucyB7XHJcbiAgICAvKiBEZWZpbmVzIGlmIHRoZSBkZWNpbWFsIHBsYWNlcyBzaG91bGQgYmUgcGFkZGVkIHdpdGggemVyb2VzXHJcbiAgICAgICAqIGB0cnVlYCAgICAgOiBhbHdheXMgcGFkIGRlY2ltYWxzIHdpdGggemVyb3MgKGllLiAnMTIuMzQwMCcpXHJcbiAgICAgICAqIGBmYWxzZWAgICAgOiBuZXZlciBwYWQgd2l0aCB6ZXJvcyAoaWUuICcxMi4zNCcpXHJcbiAgICAgICAqIGAnZmxvYXRzJ2AgOiBwYWQgd2l0aCB6ZXJvZXMgb25seSB3aGVuIHRoZXJlIGFyZSBkZWNpbWFscyAoaWUuICcxMicgYW5kICcxMi4zNDAwJylcclxuICAgICAgICogTm90ZTogc2V0dGluZyBhbGxvd0RlY2ltYWxQYWRkaW5nIHRvICdmYWxzZScgd2lsbCBvdmVycmlkZSB0aGUgJ2RlY2ltYWxQbGFjZXMnIHNldHRpbmcuXHJcbiAgICAgICAqL1xyXG4gICAgYWxsb3dEZWNpbWFsUGFkZGluZz86IGJvb2xlYW4gfCBzdHJpbmc7XHJcblxyXG4gICAgLyogRGVmaW5lcyBpZiB0aGUgZGVjaW1hbCBjaGFyYWN0ZXIgb3IgZGVjaW1hbCBjaGFyYWN0ZXIgYWx0ZXJuYXRpdmUgc2hvdWxkIGJlIGFjY2VwdGVkIHdoZW4gdGhlcmUgaXMgYWxyZWFkeVxyXG4gICAgICogYSBkZWNpbWFsIGNoYXJhY3RlciBzaG93biBpbiB0aGUgZWxlbWVudC5cclxuICAgICAqIElmIHNldCB0byBgdHJ1ZWB8IGFueSBkZWNpbWFsIGNoYXJhY3RlciBpbnB1dCB3aWxsIGJlIGFjY2VwdGVkIGFuZCB3aWxsIHN1YnNlcXVlbnRseSBtb2RpZnkgdGhlIGRlY2ltYWwgY2hhcmFjdGVyIHBvc2l0aW9ufFxyXG4gICAgICogYXMgd2VsbCBhcyB0aGUgYHJhd1ZhbHVlYC5cclxuICAgICAqIElmIHNldCB0byBgZmFsc2VgfCB0aGUgZGVjaW1hbCBjaGFyYWN0ZXIgYW5kIGl0cyBhbHRlcm5hdGl2ZSBrZXkgd2lsbCBiZSBkcm9wcGVkIGFzIGJlZm9yZS4gVGhpcyBpcyB0aGUgZGVmYXVsdCBzZXR0aW5nLlxyXG4gICAgICovXHJcbiAgICBhbHdheXNBbGxvd0RlY2ltYWxDaGFyYWN0ZXI/OiBib29sZWFuO1xyXG5cclxuICAgIC8qIERlZmluZXMgd2hlcmUgc2hvdWxkIGJlIHBvc2l0aW9uZWQgdGhlIGNhcmV0IG9uIGZvY3VzXHJcbiAgICAgKiBudWxsIDogRG8gbm90IGVuZm9yY2UgYW55IGNhcmV0IHBvc2l0aW9uaW5nIG9uIGZvY3VzICh0aGlzIGlzIG5lZWRlZCB3aGVuIHVzaW5nIGBzZWxlY3RPbkZvY3VzYClcclxuICAgICAqIGAnc3RhcnQnYCA6IHB1dCB0aGUgY2FyZXQgb2YgdGhlIGZhciBsZWZ0IHNpZGUgb2YgdGhlIHZhbHVlIChleGNsdWRpbmcgdGhlIHBvc2l0aXZlL25lZ2F0aXZlIHNpZ24gYW5kIGN1cnJlbmN5IHN5bWJvbHwgaWYgYW55KVxyXG4gICAgICogYCdlbmQnYCA6IHB1dCB0aGUgY2FyZXQgb2YgdGhlIGZhciByaWdodCBzaWRlIG9mIHRoZSB2YWx1ZSAoZXhjbHVkaW5nIHRoZSBwb3NpdGl2ZS9uZWdhdGl2ZSBzaWduIGFuZCBjdXJyZW5jeSBzeW1ib2x8IGlmIGFueSlcclxuICAgICAqIGAnZGVjaW1hbExlZnQnYCA6IHB1dCB0aGUgY2FyZXQgb2YgdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwgY2hhcmFjdGVyIGlmIGFueVxyXG4gICAgICogYCdkZWNpbWFsUmlnaHQnYCA6IHB1dCB0aGUgY2FyZXQgb2YgdGhlIHJpZ2h0IG9mIHRoZSBkZWNpbWFsIGNoYXJhY3RlciBpZiBhbnlcclxuICAgICAqL1xyXG4gICAgY2FyZXRQb3NpdGlvbk9uRm9jdXM/OiBzdHJpbmcgfCBudWxsO1xyXG5cclxuICAgIC8qIERlZmluZXMgaWYgYSBsb2NhbCBsaXN0IG9mIEF1dG9OdW1lcmljIG9iamVjdHMgc2hvdWxkIGJlIGtlcHQgd2hlbiBpbml0aWFsaXppbmcgdGhpcyBvYmplY3QuXHJcbiAgICAgKiBUaGlzIGxpc3QgaXMgdXNlZCBieSB0aGUgYGdsb2JhbC4qYCBmdW5jdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIGNyZWF0ZUxvY2FsTGlzdD86IGJvb2xlYW47XHJcblxyXG4gICAgLyogRGVmaW5lcyB0aGUgY3VycmVuY3kgc3ltYm9sIHN0cmluZy5cclxuICAgICAqIEl0IGNhbiBiZSBhIHN0cmluZyBvZiBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciAoYWxsb3dpbmcgZm9yIGluc3RhbmNlIHRvIHVzZSBhIHNwYWNlIG9uIGVpdGhlciBzaWRlIG9mIGl0fCBleGFtcGxlOiAnJCAnIG9yICcgJCcpXHJcbiAgICAgKiBjZi4gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ3VycmVuY3lfc3ltYm9sXHJcbiAgICAgKi9cclxuICAgIGN1cnJlbmN5U3ltYm9sPzogc3RyaW5nO1xyXG5cclxuXHJcbiAgICAvKiBEZWZpbmVzIHdoZXJlIHRoZSBjdXJyZW5jeSBzeW1ib2wgc2hvdWxkIGJlIHBsYWNlZCAoYmVmb3JlIG9mIGFmdGVyIHRoZSBudW1iZXJzKVxyXG4gICAgICogZm9yIHByZWZpeCBjdXJyZW5jeVN5bWJvbFBsYWNlbWVudDogXCJwXCIgKGRlZmF1bHQpXHJcbiAgICAgKiBmb3Igc3VmZml4IGN1cnJlbmN5U3ltYm9sUGxhY2VtZW50OiBcInNcIlxyXG4gICAgICovXHJcbiAgICBjdXJyZW5jeVN5bWJvbFBsYWNlbWVudD86IHN0cmluZztcclxuXHJcbiAgICAvKiBEZWZpbmVzIHdoYXQgZGVjaW1hbCBzZXBhcmF0b3IgY2hhcmFjdGVyIGlzIHVzZWRcclxuICAgICAqL1xyXG4gICAgZGVjaW1hbENoYXJhY3Rlcj86IHN0cmluZztcclxuXHJcbiAgICAvKiBBbGxvdyB0byBkZWNsYXJlIGFuIGFsdGVybmF0aXZlIGRlY2ltYWwgc2VwYXJhdG9yIHdoaWNoIGlzIGF1dG9tYXRpY2FsbHkgcmVwbGFjZWQgYnkgYGRlY2ltYWxDaGFyYWN0ZXJgIHdoZW4gdHlwZWQuXHJcbiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgY291bnRyaWVzIHRoYXQgdXNlIGEgY29tbWEgJ3wnIGFzIHRoZSBkZWNpbWFsIGNoYXJhY3RlciBhbmQgaGF2ZSBrZXlib2FyZHMgd2l0aCBhIG51bWVyaWMgcGFkcyB0aGF0IGhhdmVcclxuICAgICAqIGEgcGVyaW9kICdmdWxsIHN0b3AnIGFzIHRoZSBkZWNpbWFsIGNoYXJhY3RlciAoRnJhbmNlIG9yIFNwYWluIGZvciBpbnN0YW5jZSkuXHJcbiAgICAgKi9cclxuICAgIGRlY2ltYWxDaGFyYWN0ZXJBbHRlcm5hdGl2ZT86IG51bGwgfCBzdHJpbmc7XHJcblxyXG4gICAgLyogRGVmaW5lcyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgdG8gc2hvdyBvbiB0aGUgZm9ybWF0dGVkIHZhbHVlfCBhbmQga2VlcCBmb3IgdGhlIHByZWNpc2lvbi5cclxuICAgICAqIEluY2lkZW50YWxseXwgc2luY2Ugd2UgbmVlZCB0byBiZSBhYmxlIHRvIHNob3cgdGhhdCBtYW55IGRlY2ltYWwgcGxhY2VzfCB0aGlzIGFsc28gZGVmaW5lcyB0aGUgcmF3IHZhbHVlIHByZWNpc2lvbiBieSBkZWZhdWx0LlxyXG4gICAgICovXHJcbiAgICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xyXG4gICAgLyogRGVmaW5lcyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBzaG91bGQgYmUga2VwdCBmb3IgdGhlIHJhdyB2YWx1ZSAoaWUuIFRoaXMgaXMgdGhlIHByZWNpc2lvbiBmb3IgZmxvYXQgdmFsdWVzKS5cclxuICAgICAqXHJcbiAgICAgKiBJZiB0aGlzIG9wdGlvbiBpcyBzZXQgdG8gYG51bGxgICh3aGljaCBpcyB0aGUgZGVmYXVsdCl8IHRoZW4gdGhlIHZhbHVlIG9mIGBkZWNpbWFsUGxhY2VzYCBpcyB1c2VkIGZvciBgZGVjaW1hbFBsYWNlc1Jhd1ZhbHVlYCBhcyB3ZWxsLlxyXG4gICAgICogTm90ZTogU2V0dGluZyB0aGlzIHRvIGEgbG93ZXIgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzIHRoYW4gdGhlIG9uZSB0byBiZSBzaG93biB3aWxsIGxlYWQgdG8gY29uZnVzaW9uIGZvciB0aGUgdXNlcnMuXHJcbiAgICAgKi9cclxuICAgIGRlY2ltYWxQbGFjZXNSYXdWYWx1ZT86IG51bGwgfCBudW1iZXI7XHJcblxyXG4gICAgLyogRGVmaW5lcyBob3cgbWFueSBkZWNpbWFsIHBsYWNlcyBzaG91bGQgYmUgdmlzaWJsZSB3aGVuIHRoZSBlbGVtZW50IGlzIHVuZm9jdXNlZC5cclxuICAgICAqIElmIHRoaXMgaXMgc2V0IHRvIGBudWxsYHwgdGhlbiB0aGlzIG9wdGlvbiBpcyBpZ25vcmVkfCBhbmQgdGhlIGBkZWNpbWFsUGxhY2VzYCBvcHRpb24gdmFsdWUgd2lsbCBiZSB1c2VkIGluc3RlYWQuXHJcbiAgICAgKiBUaGlzIG1lYW5zIHRoaXMgaXMgb3B0aW9uYWwgOyBpZiBvbWl0dGVkIHRoZSBkZWNpbWFsIHBsYWNlcyB3aWxsIGJlIHRoZSBzYW1lIHdoZW4gdGhlIGlucHV0IGhhcyB0aGUgZm9jdXMuXHJcbiAgICAgKlxyXG4gICAgICogVGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgaW4gY29uam9uY3Rpb24gd2l0aCB0aGUgdHdvIG90aGVyIGBzY2FsZSpgIG9wdGlvbnN8IHdoaWNoIGFsbG93cyB0byBkaXNwbGF5XHJcbiAgICAgIGEgZGlmZmVyZW50IGZvcm1hdHRlZCB2YWx1ZSB3aGVuIHRoZSBlbGVtZW50IGlzIHVuZm9jdXNlZHwgd2hpbGUgYW5vdGhlciBmb3JtYXR0ZWQgdmFsdWUgaXMgc2hvd24gd2hlbiBmb2N1c2VkLlxyXG4gICAgICovXHJcbiAgICBkZWNpbWFsUGxhY2VzU2hvd25PbkJsdXI/OiBudWxsIHwgbnVtYmVyO1xyXG5cclxuICAgIC8qIERlZmluZXMgaG93IG1hbnkgZGVjaW1hbCBwbGFjZXMgc2hvdWxkIGJlIHZpc2libGUgd2hlbiB0aGUgZWxlbWVudCBoYXMgdGhlIGZvY3VzLlxyXG4gICAgICogSWYgdGhpcyBpcyBzZXQgdG8gYG51bGxgfCB0aGVuIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWR8IGFuZCB0aGUgYGRlY2ltYWxQbGFjZXNgIG9wdGlvbiB2YWx1ZSB3aWxsIGJlIHVzZWQgaW5zdGVhZC5cclxuICAgICAqXHJcbiAgICAgKiBFeGFtcGxlOlxyXG4gICAgICogRm9yIGluc3RhbmNlIGlmIGBkZWNpbWFsUGxhY2VzU2hvd25PbkZvY3VzYCBpcyBzZXQgdG8gYDVgIGFuZCB0aGUgZGVmYXVsdCBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXMgaXMgYDJgfCB0aGVuIG9uIGZvY3VzIGAxfDAwMC4xMjM0NWBcclxuICAgICAqIHdpbGwgYmUgc2hvd258IHdoaWxlIHdpdGhvdXQgZm9jdXMgYDF8MDAwLjEyYCB3aWxsIGJlIHNldCBiYWNrLlxyXG4gICAgICogTm90ZSAxOiB0aGUgcmVzdWx0cyBkZXBlbmRzIG9uIHRoZSByb3VuZGluZyBtZXRob2QgdXNlZC5cclxuICAgICAqIE5vdGUgMjogdGhlIGBnZXROdW1lcmljU3RyaW5nKClgIG1ldGhvZCByZXR1cm5zIHRoZSBleHRlbmRlZCBkZWNpbWFsIHBsYWNlc1xyXG4gICAgICovXHJcbiAgICBkZWNpbWFsUGxhY2VzU2hvd25PbkZvY3VzPzogbnVsbCB8IG51bWJlcjtcclxuXHJcbiAgICAvKiBIZWxwZXIgb3B0aW9uIGZvciBBU1AuTkVUIHBvc3RiYWNrXHJcbiAgICAgKiBUaGlzIHNob3VsZCBiZSBzZXQgYXMgdGhlIHZhbHVlIG9mIHRoZSB1bmZvcm1hdHRlZCBkZWZhdWx0IHZhbHVlXHJcbiAgICAgKiBleGFtcGxlczpcclxuICAgICAqIG5vIGRlZmF1bHQgdmFsdWU9XCJcIiB7ZGVmYXVsdFZhbHVlT3ZlcnJpZGU6IFwiXCJ9XHJcbiAgICAgKiB2YWx1ZT0xMjM0LjU2IHtkZWZhdWx0VmFsdWVPdmVycmlkZTogJzEyMzQuNTYnfVxyXG4gICAgICovXHJcbiAgICBkZWZhdWx0VmFsdWVPdmVycmlkZT86IG51bGw7XHJcblxyXG4gICAgLyogRGVmaW5lcyBob3cgbWFueSBudW1iZXJzIHNob3VsZCBiZSBncm91cGVkIHRvZ2V0aGVyICh1c3VhbGx5IGZvciB0aGUgdGhvdXNhbmQgc2VwYXJhdG9yKVxyXG4gICAgICogLSBcIjJcInwgIHJlc3VsdHMgaW4gOTl8OTl8OTl8OTk5IEluZGlhJ3MgbGFraHNcclxuICAgICAqIC0gXCIyc1wifCByZXN1bHRzIGluIDk5fDk5OXw5OXw5OXw5OTkgSW5kaWEncyBsYWtocyBzY2FsZWRcclxuICAgICAqIC0gXCIzXCJ8ICByZXN1bHRzIGluIDk5OXw5OTl8OTk5IChkZWZhdWx0KVxyXG4gICAgICogLSBcIjRcInwgIHJlc3VsdHMgaW4gOTk5OXw5OTk5fDk5OTkgdXNlZCBpbiBzb21lIEFzaWFuIGNvdW50cmllc1xyXG4gICAgICogTm90ZTogVGhpcyBvcHRpb24gZG9lcyBub3QgYWNjZXB0IG90aGVyIGdyb3VwaW5nIGNob2ljZS5cclxuICAgICAqL1xyXG4gICAgZGlnaXRhbEdyb3VwU3BhY2luZz86IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgICAvKiBEZWZpbmVzIHRoZSB0aG91c2FuZCBncm91cGluZyBzZXBhcmF0b3IgY2hhcmFjdGVyXHJcbiAgICAgKiBFeGFtcGxlIDogSWYgYCcuJ2AgaXMgc2V0fCB0aGVuIHlvdSdsbCBnZXQgYCcxLjIzNC41NjcnYFxyXG4gICAgICovXHJcbiAgICBkaWdpdEdyb3VwU2VwYXJhdG9yPzogc3RyaW5nO1xyXG5cclxuICAgIC8qIFRoZSBgZGl2aXNvcldoZW5VbmZvY3VzZWRgIGRpdmlkZSB0aGUgZWxlbWVudCB2YWx1ZSBvbiBmb2N1cy5cclxuICAgICAqIE9uIGJsdXJ8IHRoZSBlbGVtZW50IHZhbHVlIGlzIG11bHRpcGxpZWQgYmFjay5cclxuICAgICAqIEV4YW1wbGUgOiBEaXNwbGF5IHBlcmNlbnRhZ2VzIHVzaW5nIHsgZGl2aXNvcldoZW5VbmZvY3VzZWQ6IDEwMCB9IChvciBkaXJlY3RseSBpbiB0aGUgSHRtbCB3aXRoXHJcbiAgICAgKmA8aW5wdXQgZGF0YS1kaXZpc29yLXdoZW4tdW5mb2N1c2VkPVwiMTAwXCI+YClcclxuICAgICAqIFRoZSBkaXZpc29yIHZhbHVlIGRvZXMgbm90IG5lZWQgdG8gYmUgYW4gaW50ZWdlcnwgYnV0IHBsZWFzZSB1bmRlcnN0YW5kIHRoYXQgSmF2YXNjcmlwdCBoYXMgbGltaXRlZCBhY2N1cmFjeSBpbiBtYXRoO1xyXG4gICAgICB1c2Ugd2l0aCBjYXV0aW9uLlxyXG4gICAgICogTm90ZTogVGhlIGBnZXROdW1lcmljU3RyaW5nYCBtZXRob2QgcmV0dXJucyB0aGUgZnVsbCB2YWx1ZXwgaW5jbHVkaW5nIHRoZSAnaGlkZGVuJyBkZWNpbWFscy5cclxuICAgICAqL1xyXG4gICAgZGl2aXNvcldoZW5VbmZvY3VzZWQ/OiBudWxsIHwgbnVtYmVyO1xyXG5cclxuICAgIC8qIERlZmluZXMgd2hhdCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHRoZSBlbGVtZW50IGlmIHRoZSByYXcgdmFsdWUgaXMgYW4gZW1wdHkgc3RyaW5nICgnJykuXHJcbiAgICAgKiAtICdmb2N1cycgIDogVGhlIGN1cnJlbmN5IHNpZ24gaXMgZGlzcGxheWVkIHdoZW4gdGhlIGlucHV0IHJlY2VpdmVzIGZvY3VzIChkZWZhdWx0KVxyXG4gICAgICogLSAncHJlc3MnICA6IFRoZSBjdXJyZW5jeSBzaWduIGlzIGRpc3BsYXllZCB3aGVuZXZlciBhIGtleSBpcyBiZWluZyBwcmVzc2VkXHJcbiAgICAgKiAtICdhbHdheXMnIDogVGhlIGN1cnJlbmN5IHNpZ24gaXMgYWx3YXlzIGRpc3BsYXllZFxyXG4gICAgICogLSAnemVybycgICA6IEEgemVybyBpcyBkaXNwbGF5ZWQgKCdyb3VuZGVkJyB3aXRoIG9yIHdpdGhvdXQgYSBjdXJyZW5jeSBzaWduKSBpZiB0aGUgaW5wdXQgaGFzIG5vIHZhbHVlIG9uIGZvY3VzIG91dFxyXG4gICAgICogLSAnbWluJyAgICA6IFRoZSBtaW5pbXVtIHZhbHVlIGlzIGRpc3BsYXllZCBpZiB0aGUgaW5wdXQgaGFzIG5vIHZhbHVlIG9uIGZvY3VzIG91dFxyXG4gICAgICogLSAnbWF4JyAgICA6IFRoZSBtYXhpbXVtIHZhbHVlIGlzIGRpc3BsYXllZCBpZiB0aGUgaW5wdXQgaGFzIG5vIHZhbHVlIG9uIGZvY3VzIG91dFxyXG4gICAgICogLSAnbnVsbCcgICA6IFdoZW4gdGhlIGVsZW1lbnQgaXMgZW1wdHl8IHRoZSBgcmF3VmFsdWVgIGFuZCB0aGUgZWxlbWVudCB2YWx1ZS90ZXh0IGlzIHNldCB0byBgbnVsbGAuIFRoaXMgYWxzbyBhbGxvd3MgdG8gc2V0XHJcbiAgICAgKiAgdGhlIHZhbHVlIHRvIGBudWxsYCB1c2luZyBgYW5FbGVtZW50LnNldChudWxsKWAuXHJcbiAgICAgKi9cclxuICAgIGVtcHR5SW5wdXRCZWhhdmlvcj86IHN0cmluZztcclxuXHJcbiAgICAvKiBEZWZpbmVzIGlmIHRoZSBjdXN0b20gYW5kIG5hdGl2ZSBldmVudHMgdHJpZ2dlcmVkIGJ5IEF1dG9OdW1lcmljIHNob3VsZCBidWJibGUgdXAgb3Igbm90LlxyXG4gICAgICovXHJcbiAgICBldmVudEJ1YmJsZXM/OiBib29sZWFuO1xyXG5cclxuICAgIC8qIERlZmluZXMgaWYgdGhlIGN1c3RvbSBhbmQgbmF0aXZlIGV2ZW50cyB0cmlnZ2VyZWQgYnkgQXV0b051bWVyaWMgc2hvdWxkIGJlIGNhbmNlbGFibGUuXHJcbiAgICAgKi9cclxuICAgIGV2ZW50SXNDYW5jZWxhYmxlPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiBUaGlzIG9wdGlvbiBpcyB0aGUgJ3N0cmljdCBtb2RlJyAoYWthICdkZWJ1ZycgbW9kZSl8IHdoaWNoIGFsbG93cyBhdXRvTnVtZXJpYyB0byBzdHJpY3RseSBhbmFseXNlIHRoZSBvcHRpb25zIHBhc3NlZHxcclxuICAgICAqIGFuZCBmYWlscyBpZiBhbiB1bmtub3duIG9wdGlvbnMgaXMgdXNlZCBpbiB0aGUgc2V0dGluZ3Mgb2JqZWN0LlxyXG4gICAgICogWW91IHNob3VsZCBzZXQgdGhhdCB0byBgdHJ1ZWAgaWYgeW91IHdhbnQgdG8gbWFrZSBzdXJlIHlvdSBhcmUgb25seSB1c2luZyAncHVyZScgYXV0b051bWVyaWMgc2V0dGluZ3Mgb2JqZWN0cyBpbiB5b3VyIGNvZGUuXHJcbiAgICAgKiBJZiB5b3Ugc2VlIHVuY2F1Z2h0IGVycm9ycyBpbiB0aGUgY29uc29sZSBhbmQgeW91ciBjb2RlIHN0YXJ0cyB0byBmYWlsfCB0aGlzIG1lYW5zIHNvbWVob3cgdGhvc2Ugb3B0aW9ucyBnZXRzIHBvbGx1dGVkIGJ5XHJcbiAgICAgKiAgYW5vdGhlciBwcm9ncmFtICh3aGljaCB1c3VhbGx5IGhhcHBlbnMgd2hlbiB1c2luZyBmcmFtZXdvcmtzKS5cclxuICAgICAqL1xyXG4gICAgZmFpbE9uVW5rbm93bk9wdGlvbj86IGJvb2xlYW47XHJcblxyXG4gICAgLyogRGV0ZXJtaW5lIGlmIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgZm9ybWF0dGVkIG9uIGluaXRpYWxpemF0aW9uLlxyXG4gICAgICovXHJcbiAgICBmb3JtYXRPblBhZ2VMb2FkPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiBEZWZpbmVzIGlmIHRoZSAnZm9ybXVsYSBtb2RlJyBjYW4gYmUgYWN0aXZhdGVkIGJ5IHRoZSB1c2VyLlxyXG4gICAgICogSWYgc2V0IHRvIGB0cnVlYHwgdGhlbiB0aGUgdXNlciBjYW4gZW50ZXIgdGhlIGZvcm11bGEgbW9kZSBieSBlbnRlcmluZyB0aGUgJz0nIGNoYXJhY3Rlci5cclxuICAgICAqIEhlIHdpbGwgdGhlbiBiZSBhbGxvd2VkIHRvIGVudGVyIGFueSBzaW1wbGUgbWF0aCBmb3JtdWxhIHVzaW5nIG51bWVyaWMgY2hhcmFjdGVycyBhcyB3ZWxsIGFzXHJcbiAgICAgKiB0aGUgZm9sbG93aW5nIG9wZXJhdG9ycyArfCAtfCAqfCAvfCAoIGFuZCApLlxyXG4gICAgICogVGhlIGZvcm11bGEgbW9kZSBpcyBjbG9zZWQgd2hlbiB0aGUgdXNlciBlaXRoZXIgdmFsaWRhdGUgdGhlaXIgbWF0aCBleHByZXNzaW9uIHVzaW5nIHRoZSBgRW50ZXJgIGtleXwgb3Igd2hlbiB0aGUgZWxlbWVudCBpcyBibHVycmVkLlxyXG4gICAgICogSWYgdGhlIGZvcm11bGEgaXMgaW52YWxpZHwgdGhlIHByZXZpb3VzIHZhbGlkIGByYXdWYWx1ZWAgaXMgc2V0IGJhY2t8IGFuZCB0aGUgYGF1dG9OdW1lcmljOmludmFsaWRGb3JtdWxhYCBldmVudCBpcyBzZW50LlxyXG4gICAgICogV2hlbiBhIHZhbGlkIGZvcm11bGEgaXMgYWNjZXB0ZWR8IHRoZW4gaXRzIHJlc3VsdCBpcyBgc2V0KClgfCBhbmQgdGhlIGBhdXRvTnVtZXJpYzp2YWxpZEZvcm11bGFgIGV2ZW50IGlzIHNlbnQuXHJcbiAgICAgKlxyXG4gICAgICogQnkgZGVmYXVsdHwgdGhpcyBtb2RlIGlzIGRpc2FibGVkLlxyXG4gICAgICovXHJcbiAgICBmb3JtdWxhTW9kZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyogU2V0IHRoZSB1bmRvL3JlZG8gaGlzdG9yeSB0YWJsZSBzaXplLlxyXG4gICAgICogRWFjaCByZWNvcmQga2VlcHMgdGhlIHJhdyB2YWx1ZSBhcyB3ZWxsIGFuZCB0aGUgbGFzdCBrbm93biBjYXJldC9zZWxlY3Rpb24gcG9zaXRpb25zLlxyXG4gICAgICovXHJcbiAgICBoaXN0b3J5U2l6ZT86IG51bWJlcjtcclxuICAgIC8qIEFsbG93IHRoZSB1c2VyIHRvICdjYW5jZWwnIGFuZCB1bmRvIHRoZSBjaGFuZ2VzIGhlIG1hZGUgdG8gdGhlIGdpdmVuIGF1dG9udW1lcmljLW1hbmFnZWQgZWxlbWVudHwgYnkgcHJlc3NpbmcgdGhlICdFc2NhcGUnIGtleS5cclxuICAgICAqIFdoZW5ldmVyIHRoZSB1c2VyICd2YWxpZGF0ZScgdGhlIGlucHV0IChlaXRoZXIgYnkgaGl0dGluZyAnRW50ZXInfCBvciBibHVycmluZyB0aGUgZWxlbWVudCl8IHRoZSBuZXcgdmFsdWUgaXMgc2F2ZWQgZm9yIHN1YnNlcXVlbnRcclxuICAgICAqICAnY2FuY2VsbGF0aW9uJy5cclxuICAgICAqIFRoZSBwcm9jZXNzIDpcclxuICAgICAqICAgLSBzYXZlIHRoZSBpbnB1dCB2YWx1ZSBvbiBmb2N1c1xyXG4gICAgICogICAtIGlmIHRoZSB1c2VyIGNoYW5nZSB0aGUgaW5wdXQgdmFsdWV8IGFuZCBoaXQgYEVzY2FwZWB8IHRoZW4gdGhlIGluaXRpYWwgdmFsdWUgc2F2ZWQgb24gZm9jdXMgaXMgc2V0IGJhY2tcclxuICAgICAqICAgLSBvbiB0aGUgb3RoZXIgaGFuZCBpZiB0aGUgdXNlciBlaXRoZXIgaGF2ZSB1c2VkIGBFbnRlcmAgdG8gdmFsaWRhdGUgKGBFbnRlcmAgdGhyb3dzIGEgY2hhbmdlIGV2ZW50KSBoaXMgZW50cmllc3xcclxuICAgICAqICBvciBpZiB0aGUgaW5wdXQgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZCBieSBhbm90aGVyIHNjcmlwdCBpbiB0aGUgbWVhbiB0aW1lfCB0aGVuIHdlIHNhdmUgdGhlIG5ldyBpbnB1dCB2YWx1ZVxyXG4gICAgICogICAtIG9uIGEgc3VjY2Vzc2Z1bCAnY2FuY2VsJ3wgc2VsZWN0IHRoZSB3aG9sZSB2YWx1ZSAod2hpbGUgcmVzcGVjdGluZyB0aGUgYHNlbGVjdE51bWJlck9ubHlgIG9wdGlvbilcclxuICAgICAqICAgLSBib251czsgaWYgdGhlIHZhbHVlIGhhcyBub3QgY2hhbmdlZHwgaGl0dGluZyAnRXNjJyBqdXN0IHNlbGVjdCBhbGwgdGhlIGlucHV0IHZhbHVlICh3aGlsZSByZXNwZWN0aW5nIHRoZSBgc2VsZWN0TnVtYmVyT25seWAgb3B0aW9uKVxyXG4gICAgICovXHJcbiAgICBpc0NhbmNlbGxhYmxlPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiBDb250cm9scyB0aGUgbGVhZGluZyB6ZXJvIGJlaGF2aW9yXHJcbiAgICAgKiAtICdhbGxvdycgOiBhbGxvd3MgbGVhZGluZyB6ZXJvcyB0byBiZSBlbnRlcmVkLiBaZXJvcyB3aWxsIGJlIHRydW5jYXRlZCB3aGVuIGVudGVyaW5nIGFkZGl0aW9uYWwgZGlnaXRzLlxyXG4gICAgICogIE9uIGZvY3Vzb3V0IHplcm9zIHdpbGwgYmUgZGVsZXRlZFxyXG4gICAgICogLSAnZGVueScgIDogYWxsb3dzIG9ubHkgb25lIGxlYWRpbmcgemVybyBvbiB2YWx1ZXMgdGhhdCBhcmUgYmV0d2VlbiAxIGFuZCAtMVxyXG4gICAgICogLSAna2VlcCcgIDogYWxsb3dzIGxlYWRpbmcgemVyb3MgdG8gYmUgZW50ZXJlZC4gb24gZm9jdXNvdXQgemVyb3Mgd2lsbCBiZSByZXRhaW5lZFxyXG4gICAgICovXHJcbiAgICBsZWFkaW5nWmVybz86IHN0cmluZztcclxuXHJcbiAgICAvKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHBvc3NpYmxlIHZhbHVlIGEgdXNlciBjYW4gZW50ZXIuXHJcbiAgICAgKiBOb3RlczpcclxuICAgICAqIC0gdGhpcyB2YWx1ZSBtdXN0IGJlIGEgc3RyaW5nIGFuZCB1c2UgdGhlIHBlcmlvZCBmb3IgdGhlIGRlY2ltYWwgcG9pbnRcclxuICAgICAqIC0gdGhpcyB2YWx1ZSBuZWVkcyB0byBiZSBsYXJnZXIgdGhhbiBgbWluaW11bVZhbHVlYFxyXG4gICAgICovXHJcbiAgICBtYXhpbXVtVmFsdWU/OiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICAgLyogRGVmaW5lcyB0aGUgbWluaW11bSBwb3NzaWJsZSB2YWx1ZSBhIHVzZXIgY2FuIGVudGVyLlxyXG4gICAgICogTm90ZXM6XHJcbiAgICAgKiAtIHRoaXMgdmFsdWUgbXVzdCBiZSBhIHN0cmluZyBhbmQgdXNlIHRoZSBwZXJpb2QgZm9yIHRoZSBkZWNpbWFsIHBvaW50XHJcbiAgICAgKiAtIHRoaXMgdmFsdWUgbmVlZHMgdG8gYmUgc21hbGxlciB0aGFuIGBtYXhpbXVtVmFsdWVgXHJcbiAgICAgKiAtIGlmIHRoaXMgaXMgc3VwZXJpb3IgdG8gMHwgdGhlbiB5b3UnbGwgZWZmZWN0aXZlbHkgcHJldmVudCB5b3VyIHVzZXIgdG8gZW50aXJlbHkgZGVsZXRlIHRoZSBjb250ZW50IG9mIHlvdXIgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBtaW5pbXVtVmFsdWU/OiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICAgLyogQWxsb3dzIHRoZSB1c2VyIHRvIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlIGVsZW1lbnQgdmFsdWUgd2l0aCB0aGUgbW91c2Ugd2hlZWwuXHJcbiAgICAgKiBUaGUgd2hlZWwgYmVoYXZpb3IgY2FuIGJlIG1vZGlmaWVkIGJ5IHRoZSBgd2hlZWxTdGVwYCBvcHRpb24uXHJcbiAgICAgKiBUaGlzIGB3aGVlbFN0ZXBgIG9wdGlvbiBjYW4gYmUgdXNlZCBpbiB0d28gd2F5c3wgZWl0aGVyIGJ5IHNldHRpbmc6XHJcbiAgICAgKiAtIGEgJ2ZpeGVkJyBzdGVwIHZhbHVlIChgd2hlZWxTdGVwIDogMTAwMGApfCBvclxyXG4gICAgICogLSB0aGUgJ3Byb2dyZXNzaXZlJyBzdHJpbmcgKGB3aGVlbFN0ZXAgOiAncHJvZ3Jlc3NpdmUnYCl8IHdoaWNoIHdpbGwgdGhlbiBhY3RpdmF0ZSBhIHNwZWNpYWwgbW9kZSB3aGVyZSB0aGUgc3RlcCBpcyBhdXRvbWF0aWNhbGx5XHJcbiAgICAgKiAgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZWxlbWVudCB2YWx1ZSBzaXplLlxyXG4gICAgICpcclxuICAgICAqIE5vdGUgOlxyXG4gICAgICogWW91IGNhbiBhY3RpdmF0ZS9kZWFjdGl2YXRlIHRoZSB3aGVlbCBldmVudCBmb3IgZWFjaCBgd2hlZWxPbmAgb3B0aW9uIHZhbHVlIGJ5IHVzaW5nIHRoZSAnU2hpZnQnIG1vZGlmaWVyIGtleSB3aGlsZSB1c2luZ1xyXG4gICAgICogIHRoZSBtb3VzZSB3aGVlbC5cclxuICAgICAqL1xyXG4gICAgbW9kaWZ5VmFsdWVPbldoZWVsPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiBBZGRzIGJyYWNrZXRzIG9uIG5lZ2F0aXZlIHZhbHVlcyAoaWUuIHRyYW5zZm9ybXMgJy0kIDk5OS45OScgdG8gJygkOTk5Ljk5KScpXHJcbiAgICAgKiBUaG9zZSBicmFja2V0cyBhcmUgdmlzaWJsZSBvbmx5IHdoZW4gdGhlIGZpZWxkIGRvZXMgTk9UIGhhdmUgdGhlIGZvY3VzLlxyXG4gICAgICogVGhlIGxlZnQgYW5kIHJpZ2h0IHN5bWJvbHMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHF1b3RlcyBhbmQgc2VwYXJhdGVkIGJ5IGEgY29tbWEuXHJcbiAgICAgKi9cclxuICAgIG5lZ2F0aXZlQnJhY2tldHNUeXBlT25CbHVyPzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICAvKiBQbGFjZW1lbnQgb2YgdGhlIG5lZ2F0aXZlL3Bvc2l0aXZlIHNpZ24gcmVsYXRpdmUgdG8gdGhlIGBjdXJyZW5jeVN5bWJvbGAgb3B0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEV4YW1wbGU6XHJcbiAgICAgKiAvLyBEZWZhdWx0IHZhbHVlc1xyXG4gICAgICogLTF8MjM0LjU2ICA9PiBkZWZhdWx0IG5vIG9wdGlvbnMgcmVxdWlyZWRcclxuICAgICAqICQtMXwyMzQuNTYgPT4ge2N1cnJlbmN5U3ltYm9sOiBcIiRcInwgbmVnYXRpdmVQb3NpdGl2ZVNpZ25QbGFjZW1lbnQ6IFwiclwifSAvLyBEZWZhdWx0IGlmIG5lZ2F0aXZlUG9zaXRpdmVTaWduUGxhY2VtZW50IGlzXHJcbiAgICAgKiAgJ251bGwnIGFuZCBjdXJyZW5jeVN5bWJvbCBpcyBub3QgZW1wdHlcclxuICAgICAqXHJcbiAgICAgKiAvLyBTaWduIG9uIHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiB0aGUgd2hvbGUgbnVtYmVyXHJcbiAgICAgKiAtJDF8MjM0LjU2ID0+IHtjdXJyZW5jeVN5bWJvbDogXCIkXCJ9IG9yIHtjdXJyZW5jeVN5bWJvbDogXCIkXCJ8IG5lZ2F0aXZlUG9zaXRpdmVTaWduUGxhY2VtZW50OiBcImxcIn1cclxuICAgICAqIC0xfDIzNC41NiQgPT4ge2N1cnJlbmN5U3ltYm9sOiBcIiRcInwgY3VycmVuY3lTeW1ib2xQbGFjZW1lbnQ6IFwic1wifCBuZWdhdGl2ZVBvc2l0aXZlU2lnblBsYWNlbWVudDogXCJwXCJ9XHJcbiAgICAgKiAvLyBEZWZhdWx0IGlmIG5lZ2F0aXZlUG9zaXRpdmVTaWduUGxhY2VtZW50IGlzICdudWxsJyBhbmQgY3VycmVuY3lTeW1ib2wgaXMgbm90IGVtcHR5XHJcbiAgICAgKlxyXG4gICAgICogLy8gU2lnbiBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIHRoZSB3aG9sZSBudW1iZXJcclxuICAgICAqIDF8MjM0LjU2LSAgPT4ge25lZ2F0aXZlUG9zaXRpdmVTaWduUGxhY2VtZW50OiBcInNcIn1cclxuICAgICAqICQxfDIzNC41Ni0gPT4ge2N1cnJlbmN5U3ltYm9sOiBcIiRcInwgbmVnYXRpdmVQb3NpdGl2ZVNpZ25QbGFjZW1lbnQ6IFwic1wifVxyXG4gICAgICogMXwyMzQuNTYtJCA9PiB7Y3VycmVuY3lTeW1ib2w6IFwiJFwifCBjdXJyZW5jeVN5bWJvbFBsYWNlbWVudDogXCJzXCJ9XHJcbiAgICAgKiAxfDIzNC41NiQtID0+IHtjdXJyZW5jeVN5bWJvbDogXCIkXCJ8IGN1cnJlbmN5U3ltYm9sUGxhY2VtZW50OiBcInNcInwgbmVnYXRpdmVQb3NpdGl2ZVNpZ25QbGFjZW1lbnQ6IFwiclwifVxyXG4gICAgICovXHJcbiAgICBuZWdhdGl2ZVBvc2l0aXZlU2lnblBsYWNlbWVudD86IHN0cmluZyB8IG51bGw7XHJcblxyXG4gICAgLyogRGVmaW5lcyB0aGUgbmVnYXRpdmUgc2lnbiBzeW1ib2wuXHJcbiAgICAgKiBJdCBjYW4gYmUgYSBzdHJpbmcgb2Ygb25seSBvbmUgY2hhcmFjdGVyLlxyXG4gICAgICovXHJcbiAgICBuZWdhdGl2ZVNpZ25DaGFyYWN0ZXI/OiBzdHJpbmc7XHJcblxyXG4gICAgLyogRGVmaW5lcyBpZiB0aGUgZWxlbWVudCBzaG91bGQgaGF2ZSBldmVudCBsaXN0ZW5lcnMgYWN0aXZhdGVkIG9uIGl0LlxyXG4gICAgICogQnkgZGVmYXVsdHwgdGhvc2UgZXZlbnQgbGlzdGVuZXJzIGFyZSBvbmx5IGFkZGVkIHRvIDxpbnB1dD4gZWxlbWVudHMgYW5kIGh0bWwgZWxlbWVudCB3aXRoIHRoZSBgY29udGVudGVkaXRhYmxlYFxyXG4gICAgICogYXR0cmlidXRlIHNldCB0byBgdHJ1ZWB8IGJ1dCBub3Qgb24gdGhlIG90aGVyIGh0bWwgdGFncy5cclxuICAgICAqIFRoaXMgYWxsb3dzIHRvIGluaXRpYWxpemUgZWxlbWVudHMgd2l0aG91dCBhbnkgZXZlbnQgbGlzdGVuZXJzLlxyXG4gICAgICogV2FybmluZzogU2luY2UgQXV0b051bWVyaWMgd2lsbCBub3QgY2hlY2sgdGhlIGlucHV0IGNvbnRlbnQgYWZ0ZXIgaXRzIGluaXRpYWxpemF0aW9ufCB1c2luZyBzb21lIGF1dG9OdW1lcmljXHJcbiAgICAgKiBtZXRob2RzIGFmdGVyd2FyZHMgKndpbGwqIHByb2JhYmx5IGxlYWRzIHRvIGZvcm1hdHRpbmcgcHJvYmxlbXMuXHJcbiAgICAgKi9cclxuICAgIG5vRXZlbnRMaXN0ZW5lcnM/OiBib29sZWFuO1xyXG5cclxuICAgIC8qIE1hbmFnZSBob3cgYXV0b051bWVyaWMgcmVhY3Qgd2hlbiB0aGUgdXNlciB0cmllcyB0byBwYXN0ZSBhbiBpbnZhbGlkIG51bWJlci5cclxuICAgICAqIC0gJ2Vycm9yJyAgICA6IChUaGlzIGlzIHRoZSBkZWZhdWx0IGJlaGF2aW9yKSBUaGUgaW5wdXQgdmFsdWUgaXMgbm90IGNoYW5nZWQgYW5kIGFuIGVycm9yIGlzIG91dHB1dCBpbiB0aGUgY29uc29sZS5cclxuICAgICAqIC0gJ2lnbm9yZScgICA6IGlkZW0gdGhhbiAnZXJyb3InfCBidXQgZmFpbCBzaWxlbnRseSB3aXRob3V0IG91dHB1dHRpbmcgYW55IGVycm9yL3dhcm5pbmcgaW4gdGhlIGNvbnNvbGUuXHJcbiAgICAgKiAtICdjbGFtcCcgICAgOiBpZiB0aGUgcGFzdGVkIHZhbHVlIGlzIGVpdGhlciB0b28gc21hbGwgb3IgdG9vIGJpZyByZWdhcmRpbmcgdGhlIG1pbmltdW1WYWx1ZSBhbmQgbWF4aW11bVZhbHVlIHJhbmdlfFxyXG4gICAgICogdGhlbiB0aGUgcmVzdWx0IGlzIGNsYW1wZWQgdG8gdGhvc2UgbGltaXRzLlxyXG4gICAgICogLSAndHJ1bmNhdGUnIDogYXV0b051bWVyaWMgd2lsbCBpbnNlcnQgYXMgbWFueSBwYXN0ZWQgbnVtYmVycyBpdCBjYW4gYXQgdGhlIGluaXRpYWwgY2FyZXQvc2VsZWN0aW9ufCB1bnRpbCBldmVyeXRoaW5nIGlzIHBhc3RlZHxcclxuICAgICAqIG9yIHRoZSByYW5nZSBsaW1pdCBpcyBoaXQuXHJcbiAgICAgKiAgICAgICAgICAgICAgICBUaGUgbm9uLXBhc3RlZCBudW1iZXJzIGFyZSBkcm9wcGVkIGFuZCB0aGVyZWZvcmUgbm90IHVzZWQgYXQgYWxsLlxyXG4gICAgICogLSAncmVwbGFjZScgIDogYXV0b051bWVyaWMgd2lsbCBmaXJzdCBpbnNlcnQgYXMgbWFueSBwYXN0ZWQgbnVtYmVycyBpdCBjYW4gYXQgdGhlIGluaXRpYWwgY2FyZXQvc2VsZWN0aW9ufCB0aGVuIGlmIHRoZSByYW5nZSBsaW1pdFxyXG4gICAgICogaXMgaGl0fCBpdCB3aWxsIHRyeVxyXG4gICAgICogICAgICAgICAgICAgICAgdG8gcmVwbGFjZSBvbmUgYnkgb25lIHRoZSByZW1haW5pbmcgaW5pdGlhbCBudW1iZXJzIChvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgY2FyZXQpIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHBhc3RlZFxyXG4gICAgICogIG51bWJlcnMuXHJcbiAgICAgKlxyXG4gICAgICogTm90ZSAxIDogQSBwYXN0ZSBjb250ZW50IHN0YXJ0aW5nIHdpdGggYSBuZWdhdGl2ZSBzaWduICctJyB3aWxsIGJlIGFjY2VwdGVkIGFueXdoZXJlIGluIHRoZSBpbnB1dHwgYW5kIHdpbGwgc2V0IHRoZSByZXN1bHRpbmcgdmFsdWVcclxuICAgICAqICBhcyBhIG5lZ2F0aXZlIG51bWJlclxyXG4gICAgICogTm90ZSAyIDogQSBwYXN0ZSBjb250ZW50IHN0YXJ0aW5nIHdpdGggYSBudW1iZXIgd2lsbCBiZSBhY2NlcHRlZHwgZXZlbiBpZiB0aGUgcmVzdCBpcyBnaWJiZXJpc2ggKGllLiAnMTIzZm9vYmFyNDU2JykuXHJcbiAgICAgKiAgICAgICAgICBPbmx5IHRoZSBmaXJzdCBudW1iZXIgd2lsbCBiZSB1c2VkIChoZXJlICcxMjMnKS5cclxuICAgICAqIE5vdGUgMyA6IFRoZSBwYXN0ZSBldmVudCB3b3JrcyB3aXRoIHRoZSBgZGVjaW1hbFBsYWNlc1Nob3duT25Gb2N1c2Agb3B0aW9uIHRvby5cclxuICAgICAqL1xyXG4gICAgb25JbnZhbGlkUGFzdGU/OiBzdHJpbmc7XHJcblxyXG4gICAgLyogRGVmaW5lcyBob3cgdGhlIHZhbHVlIHNob3VsZCBiZSBmb3JtYXR0ZWQgd2hlbiB3YW50aW5nIGEgJ2xvY2FsaXplZCcgdmVyc2lvbiBvZiBpdC5cclxuICAgICAqIC0gbnVsbCBvciAnc3RyaW5nJyA9PiAnbm5ubi5ubicgb3IgJy1ubm5uLm5uJyBhcyB0ZXh0IHR5cGUuIFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuXHJcbiAgICAgKiAtICdudW1iZXInICAgICAgICAgPT4gbm5ubi5ubiBvciAtbm5ubi5ubiBhcyBhIE51bWJlciAoV2FybmluZzogdGhpcyB3b3JrcyBvbmx5IGZvciBpbnRlZ2VycyBpbmZlcmlvciB0byBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUilcclxuICAgICAqIC0gJ3wnIG9yICctfCcgICAgICA9PiAnbm5ubnxubicgb3IgJy1ubm5ufG5uJ1xyXG4gICAgICogLSAnLi0nICAgICAgICAgICAgID0+ICdubm5uLm5uJyBvciAnbm5ubi5ubi0nXHJcbiAgICAgKiAtICd8LScgICAgICAgICAgICAgPT4gJ25ubm58bm4nIG9yICdubm5ufG5uLSdcclxuICAgICAqXHJcbiAgICAgKiBOb3RlOiBUaGUgaHlwaGVuICctJyBpcyB0cmFuc2xhdGVkIHRvIHRoZSBjdXN0b20gbmVnYXRpdmUgc2lnbiBkZWZpbmVkIGluIGBuZWdhdGl2ZVNpZ25DaGFyYWN0ZXJgXHJcbiAgICAgKi9cclxuICAgIG91dHB1dEZvcm1hdD86IHN0cmluZyB8IG51bGw7XHJcbiAgICAvKiBPdmVycmlkZSB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBsaW1pdHNcclxuICAgICAqIG92ZXJyaWRlTWluTWF4TGltaXRzOiBcImNlaWxpbmdcIiBhZGhlcmVzIHRvIG1heGltdW1WYWx1ZSBhbmQgaWdub3JlcyBtaW5pbXVtVmFsdWUgc2V0dGluZ3NcclxuICAgICAqIG92ZXJyaWRlTWluTWF4TGltaXRzOiBcImZsb29yXCIgYWRoZXJlcyB0byBtaW5pbXVtVmFsdWUgYW5kIGlnbm9yZXMgbWF4aW11bVZhbHVlIHNldHRpbmdzXHJcbiAgICAgKiBvdmVycmlkZU1pbk1heExpbWl0czogXCJpZ25vcmVcIiBpZ25vcmVzIGJvdGggbWluaW11bVZhbHVlICYgbWF4aW11bVZhbHVlXHJcbiAgICAgKi9cclxuICAgIG92ZXJyaWRlTWluTWF4TGltaXRzPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIC8qIERlZmluZXMgdGhlIHBvc2l0aXZlIHNpZ24gc3ltYm9sLlxyXG4gICAgICogSXQgY2FuIGJlIGEgc3RyaW5nIG9mIG9ubHkgb25lIGNoYXJhY3Rlci5cclxuICAgICAqIFRoaXMgaXMgc2hvd24gb25seSBpZiBgc2hvd1Bvc2l0aXZlU2lnbmAgaXMgc2V0IHRvIGB0cnVlYC5cclxuICAgICAqL1xyXG4gICAgcG9zaXRpdmVTaWduQ2hhcmFjdGVyPzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICAvKiBUaGUgYHJhd1ZhbHVlRGl2aXNvcmAgZGl2aWRlcyB0aGUgZm9ybWF0dGVkIHZhbHVlIHNob3duIGluIHRoZSBBdXRvTnVtZXJpYyBlbGVtZW50IGFuZCBzdG9yZSB0aGUgcmVzdWx0IGluIGByYXdWYWx1ZWAuXHJcbiAgICAgKiBAZXhhbXBsZSB7IHJhd1ZhbHVlRGl2aXNvcjogJzEwMCcgfSBvciA8aW5wdXQgZGF0YS1yYXctdmFsdWUtZGl2aXNvcj1cIjEwMFwiPlxyXG4gICAgICogR2l2ZW4gdGhlIGAwLjAxMjM0YCByYXcgdmFsdWV8IHRoZSBmb3JtYXR0ZWQgdmFsdWUgd2lsbCBiZSBkaXNwbGF5ZWQgYXMgYCcxLjIzNCdgLlxyXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiBkaXNwbGF5aW5nIHBlcmNlbnRhZ2UgZm9yIGluc3RhbmNlfCBhbmQgYXZvaWQgdGhlIG5lZWQgdG8gZGl2aWRlL211bHRpcGx5IGJ5IDEwMFxyXG4gICAgICogYmV0d2VlbiB0aGUgbnVtYmVyIHNob3duIGFuZCB0aGUgcmF3IHZhbHVlLlxyXG4gICAgICovXHJcbiAgICByYXdWYWx1ZURpdmlzb3I/OiBudWxsIHwgbnVtYmVyO1xyXG5cclxuICAgIC8qIERlZmluZXMgaWYgdGhlIGVsZW1lbnQgKGA8aW5wdXQ+YCBvciBhbm90aGVyIGFsbG93ZWQgaHRtbCB0YWcpIHNob3VsZCBiZSBzZXQgYXMgcmVhZC1vbmx5IG9uIGluaXRpYWxpemF0aW9uLlxyXG4gICAgICogV2hlbiBzZXQgdG8gYHRydWVgfCB0aGVuOlxyXG4gICAgICogLSB0aGUgYHJlYWRvbmx5YCBodG1sIHByb3BlcnR5IGlzIGFkZGVkIHRvIHRoZSA8aW5wdXQ+IGVsZW1lbnQgb24gaW5pdGlhbGl6YXRpb258IG9yXHJcbiAgICAgKiAtIHRoZSBgY29udGVudGVkaXRhYmxlYCBhdHRyaWJ1dGUgaXMgc2V0IHRvIGBmYWxzZWAgb24gbm9uLWlucHV0IGVsZW1lbnRzLlxyXG4gICAgICovXHJcbiAgICByZWFkT25seT86IGJvb2xlYW47XHJcblxyXG4gICAgLyogRGVmaW5lcyB0aGUgcm91bmRpbmcgbWV0aG9kIHRvIHVzZS5cclxuICAgICAqIHJvdW5kaW5nTWV0aG9kOiBcIlNcInwgUm91bmQtSGFsZi1VcCBTeW1tZXRyaWMgKGRlZmF1bHQpXHJcbiAgICAgKiByb3VuZGluZ01ldGhvZDogXCJBXCJ8IFJvdW5kLUhhbGYtVXAgQXN5bW1ldHJpY1xyXG4gICAgICogcm91bmRpbmdNZXRob2Q6IFwic1wifCBSb3VuZC1IYWxmLURvd24gU3ltbWV0cmljIChsb3dlciBjYXNlIHMpXHJcbiAgICAgKiByb3VuZGluZ01ldGhvZDogXCJhXCJ8IFJvdW5kLUhhbGYtRG93biBBc3ltbWV0cmljIChsb3dlciBjYXNlIGEpXHJcbiAgICAgKiByb3VuZGluZ01ldGhvZDogXCJCXCJ8IFJvdW5kLUhhbGYtRXZlbiBcIkJhbmtlcnMgUm91bmRpbmdcIlxyXG4gICAgICogcm91bmRpbmdNZXRob2Q6IFwiVVwifCBSb3VuZCBVcCBcIlJvdW5kLUF3YXktRnJvbS1aZXJvXCJcclxuICAgICAqIHJvdW5kaW5nTWV0aG9kOiBcIkRcInwgUm91bmQgRG93biBcIlJvdW5kLVRvd2FyZC1aZXJvXCIgLSBzYW1lIGFzIHRydW5jYXRlXHJcbiAgICAgKiByb3VuZGluZ01ldGhvZDogXCJDXCJ8IFJvdW5kIHRvIENlaWxpbmcgXCJUb3dhcmQgUG9zaXRpdmUgSW5maW5pdHlcIlxyXG4gICAgICogcm91bmRpbmdNZXRob2Q6IFwiRlwifCBSb3VuZCB0byBGbG9vciBcIlRvd2FyZCBOZWdhdGl2ZSBJbmZpbml0eVwiXHJcbiAgICAgKiByb3VuZGluZ01ldGhvZDogXCJOMDVcIiBSb3VuZHMgdG8gdGhlIG5lYXJlc3QgLjA1ID0+IHNhbWUgYXMgXCJDSEZcIiB1c2VkIGluIDEuOVggYW5kIHN0aWxsIHZhbGlkXHJcbiAgICAgKiByb3VuZGluZ01ldGhvZDogXCJVMDVcIiBSb3VuZHMgdXAgdG8gbmV4dCAuMDVcclxuICAgICAqIHJvdW5kaW5nTWV0aG9kOiBcIkQwNVwiIFJvdW5kcyBkb3duIHRvIG5leHQgLjA1XHJcbiAgICAgKi9cclxuICAgIHJvdW5kaW5nTWV0aG9kPzogc3RyaW5nO1xyXG4gICAgLyogU2V0IHRvIGB0cnVlYCB0byBhbGxvdyB0aGUgYGRlY2ltYWxQbGFjZXNTaG93bk9uRm9jdXNgIHZhbHVlIHRvIGJlIHNhdmVkIHdpdGggc2Vzc2lvblN0b3JhZ2VcclxuICAgICAqIElmIElFIDYgb3IgNyBpcyBkZXRlY3RlZHwgdGhlIHZhbHVlIHdpbGwgYmUgc2F2ZWQgYXMgYSBzZXNzaW9uIGNvb2tpZS5cclxuICAgICAqL1xyXG4gICAgc2F2ZVZhbHVlVG9TZXNzaW9uU3RvcmFnZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyogRGV0ZXJtaW5lIGlmIHRoZSBzZWxlY3QgYWxsIGtleWJvYXJkIGNvbW1hbmQgd2lsbCBzZWxlY3QgdGhlIGNvbXBsZXRlIGlucHV0IHRleHR8IG9yIG9ubHkgdGhlIGlucHV0IG51bWVyaWMgdmFsdWVcclxuICAgICAqIE5vdGUgOiBJZiB0aGUgY3VycmVuY3kgc3ltYm9sIGlzIGJldHdlZW4gdGhlIG51bWVyaWMgdmFsdWUgYW5kIHRoZSBuZWdhdGl2ZSBzaWdufCBvbmx5IHRoZSBudW1lcmljIHZhbHVlIHdpbGwgYmUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgc2VsZWN0TnVtYmVyT25seT86IGJvb2xlYW47XHJcblxyXG4gICAgLyogRGVmaW5lcyBpZiB0aGUgZWxlbWVudCB2YWx1ZSBzaG91bGQgYmUgc2VsZWN0ZWQgb24gZm9jdXMuXHJcbiAgICAgKiBOb3RlOiBUaGUgc2VsZWN0aW9uIGlzIGRvbmUgdXNpbmcgdGhlIGBzZWxlY3ROdW1iZXJPbmx5YCBvcHRpb24uXHJcbiAgICAgKi9cclxuICAgIHNlbGVjdE9uRm9jdXM/OiBib29sZWFuO1xyXG5cclxuICAgIC8qIERlZmluZXMgaG93IHRoZSBzZXJpYWxpemUgZnVuY3Rpb25zIHNob3VsZCB0cmVhdCB0aGUgc3BhY2VzLlxyXG4gICAgICogVGhvc2Ugc3BhY2VzICcgJyBjYW4gZWl0aGVyIGJlIGNvbnZlcnRlZCB0byB0aGUgcGx1cyBzaWduICcrJ3wgd2hpY2ggaXMgdGhlIGRlZmF1bHR8IG9yIHRvICclMjAnLlxyXG4gICAgICogQm90aCB2YWx1ZXMgYmVpbmcgdmFsaWQgcGVyIHRoZSBzcGVjIChodHRwOi8vd3d3LnczLm9yZy9BZGRyZXNzaW5nL1VSTC91cmktc3BlYy5odG1sKS5cclxuICAgICAqIEFsc28gc2VlIHRoZSBzdW1tZWQgdXAgYW5zd2VyIG9uIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzMzOTM5Mjg3LlxyXG4gICAgICpcclxuICAgICAqIHRsO2RyIDogU3BhY2VzIHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gJyUyMCcgYmVmb3JlIHRoZSAnPycgc2lnbnwgdGhlbiBjb252ZXJ0ZWQgdG8gJysnIGFmdGVyLlxyXG4gICAgICogSW4gb3VyIGNhc2Ugc2luY2Ugd2Ugc2VyaWFsaXplIHRoZSBxdWVyeXwgd2UgdXNlICcrJyBhcyB0aGUgZGVmYXVsdCAoYnV0IGFsbG93IHRoZSB1c2VyIHRvIGdldCBiYWNrIHRoZSBvbGQgKndyb25nKiBiZWhhdmlvcikuXHJcbiAgICAgKi9cclxuICAgIHNlcmlhbGl6ZVNwYWNlcz86IHN0cmluZztcclxuICAgIC8qIERlZmluZXMgaWYgdGhlIGVsZW1lbnQgdmFsdWUgc2hvdWxkIGJlIGNvbnZlcnRlZCB0byB0aGUgcmF3IHZhbHVlIG9uIGZvY3VzIChhbmQgYmFjayB0byB0aGUgZm9ybWF0dGVkIG9uIGJsdXIpLlxyXG4gICAgICogSWYgc2V0IHRvIGB0cnVlYHwgdGhlbiBhdXRvTnVtZXJpYyByZW1vdmUgdGhlIHRob3VzYW5kIHNlcGFyYXRvcnwgY3VycmVuY3kgc3ltYm9sIGFuZCBzdWZmaXggb24gZm9jdXMuXHJcbiAgICAgKiBFeGFtcGxlOlxyXG4gICAgICogSWYgdGhlIGlucHV0IHZhbHVlIGlzICckIDF8OTk5Ljg4IHN1ZmZpeCd8IG9uIGZvY3VzIGl0IGJlY29tZXMgJzE5OTkuODgnIGFuZCBiYWNrIHRvICckIDF8OTk5Ljg4IHN1ZmZpeCcgb24gYmx1ci5cclxuICAgICAqL1xyXG4gICAgc2hvd09ubHlOdW1iZXJzT25Gb2N1cz86IGJvb2xlYW47XHJcblxyXG4gICAgLyogQWxsb3cgdGhlIHBvc2l0aXZlIHNpZ24gc3ltYm9sIGArYCB0byBiZSBkaXNwbGF5ZWQgZm9yIHBvc2l0aXZlIG51bWJlcnMuXHJcbiAgICAgKiBCeSBkZWZhdWx0fCB0aGlzIHBvc2l0aXZlIHNpZ24gaXMgbm90IHNob3duLlxyXG4gICAgICogVGhlIHNpZ24gcGxhY2VtZW50IGlzIGNvbnRyb2xsZWQgYnkgdGhlICduZWdhdGl2ZVBvc2l0aXZlU2lnblBsYWNlbWVudCcgb3B0aW9ufCBtaW1pY2tpbmcgdGhlIG5lZ2F0aXZlIHNpZ24gcGxhY2VtZW50IHJ1bGVzLlxyXG4gICAgICovXHJcbiAgICBzaG93UG9zaXRpdmVTaWduPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiBEZWZpbmVzIGlmIHdhcm5pbmdzIHNob3VsZCBiZSBzaG93biBpbiB0aGUgY29uc29sZS5cclxuICAgICAqIFRob3NlIHdhcm5pbmdzIGNhbiBiZSBpZ25vcmVkfCBidXQgYXJlIHVzdWFsbHkgcHJpbnRlZCB3aGVuIHNvbWV0aGluZyBjb3VsZCBiZSBpbXByb3ZlZCBieSB0aGUgdXNlciAoaWUuIG9wdGlvbiBjb25mbGljdHMpLlxyXG4gICAgICovXHJcbiAgICBzaG93V2FybmluZ3M/OiBib29sZWFuO1xyXG5cclxuICAgIC8qIERlZmluZXMgdGhlIHJ1bGVzIHRoYXQgY2FsY3VsYXRlIHRoZSBDU1MgY2xhc3MoZXMpIHRvIGFwcGx5IG9uIHRoZSBlbGVtZW50fCBiYXNlZCBvbiB0aGUgcmF3IHVuZm9ybWF0dGVkIHZhbHVlLlxyXG4gICAgICogVGhpcyBjYW4gYWxzbyBiZSB1c2VkIHRvIGNhbGwgY2FsbGJhY2tzIHdoZW5ldmVyIHRoZSBgcmF3VmFsdWVgIGlzIHVwZGF0ZWQuXHJcbiAgICAgKiBJbXBvcnRhbnQ6IGFsbCBjYWxsYmFja3MgbXVzdCByZXR1cm4gYG51bGxgIGlmIG5vIHJhbmdlcy91c2VyRGVmaW5lZCBjbGFzc2VzIGFyZSBzZWxlY3RlZFxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIHtcclxuICAgICAqICAgICBwb3NpdGl2ZSAgIDogJ2F1dG9OdW1lcmljLXBvc2l0aXZlJ3wgLy8gT3IgYG51bGxgIHRvIG5vdCB1c2UgaXRcclxuICAgICAqICAgICBuZWdhdGl2ZSAgIDogJ2F1dG9OdW1lcmljLW5lZ2F0aXZlJ3xcclxuICAgICAqICAgICByYW5nZXMgICAgIDogW1xyXG4gICAgICogICAgICAgICB7IG1pbjogMHwgbWF4OiAyNXwgY2xhc3M6ICdhdXRvTnVtZXJpYy1yZWQnIH18XHJcbiAgICAgKiAgICAgICAgIHsgbWluOiAyNXwgbWF4OiA1MHwgY2xhc3M6ICdhdXRvTnVtZXJpYy1vcmFuZ2UnIH18XHJcbiAgICAgKiAgICAgICAgIHsgbWluOiA1MHwgbWF4OiA3NXwgY2xhc3M6ICdhdXRvTnVtZXJpYy15ZWxsb3cnIH18XHJcbiAgICAgKiAgICAgICAgIHsgbWluOiA3NXwgbWF4OiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUnwgY2xhc3M6ICdhdXRvTnVtZXJpYy1ncmVlbicgfXxcclxuICAgICAqICAgICBdfFxyXG4gICAgICogICAgIHVzZXJEZWZpbmVkOiBbXHJcbiAgICAgKiAgICAgICAgIC8vIElmICdjbGFzc2VzJyBpcyBhIHN0cmluZ3wgc2V0IGl0IGlmIGB0cnVlYHwgcmVtb3ZlIGl0IGlmIGBmYWxzZWBcclxuICAgICAqICAgICAgICAgeyBjYWxsYmFjazogcmF3VmFsdWUgPT4geyByZXR1cm4gdHJ1ZTsgfXwgY2xhc3NlczogJ3RoaXNJc1RydWUnIH18XHJcbiAgICAgKiAgICAgICAgIC8vIElmICdjbGFzc2VzJyBpcyBhbiBhcnJheSB3aXRoIG9ubHkgMiBlbGVtZW50c3wgc2V0IHRoZSBmaXJzdCBjbGFzcyBpZiBgdHJ1ZWB8IHRoZSBzZWNvbmQgaWYgYGZhbHNlYFxyXG4gICAgICogICAgICAgICB7IGNhbGxiYWNrOiByYXdWYWx1ZSA9PiByYXdWYWx1ZSAlIDIgPT09IDB8IGNsYXNzZXM6IFsnYXV0b051bWVyaWMtZXZlbid8ICdhdXRvTnVtZXJpYy1vZGQnXSB9fFxyXG4gICAgICogICAgICAgICAvLyBSZXR1cm4gb25seSBvbmUgaW5kZXggdG8gdXNlIG9uIHRoZSBgY2xhc3Nlc2AgYXJyYXkgKGhlcmV8ICdjbGFzczMnKVxyXG4gICAgICogICAgICAgICB7IGNhbGxiYWNrOiByYXdWYWx1ZSA9PiB7IHJldHVybiAyOyB9fCBjbGFzc2VzOiBbJ2NsYXNzMSd8ICdjbGFzczInfCAnY2xhc3MzJ10gfXxcclxuICAgICAqICAgICAgICAgLy8gUmV0dXJuIGFuIGFycmF5IG9mIGluZGV4ZXMgdG8gdXNlIG9uIHRoZSBgY2xhc3Nlc2AgYXJyYXkgKGhlcmV8ICdjbGFzczEnIGFuZCAnY2xhc3MzJylcclxuICAgICAqICAgICAgICAgeyBjYWxsYmFjazogcmF3VmFsdWUgPT4geyByZXR1cm4gWzB8IDJdOyB9fCBjbGFzc2VzOiBbJ2NsYXNzMSd8ICdjbGFzczInfCAnY2xhc3MzJ10gfXxcclxuICAgICAqICAgICAgICAgLy8gSWYgJ2NsYXNzZXMnIGlzIGB1bmRlZmluZWRgIG9yIGBudWxsYHwgdGhlbiB0aGUgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggdGhlIEF1dG9OdW1lcmljIG9iamVjdCBwYXNzZWQgYXMgYSBwYXJhbWV0ZXJcclxuICAgICAqICAgICAgICAgeyBjYWxsYmFjazogYW5FbGVtZW50ID0+IHsgcmV0dXJuIGFuRWxlbWVudC5nZXRGb3JtYXR0ZWQoKTsgfSB9fFxyXG4gICAgICogICAgIF18XHJcbiAgICAgKiB9XHJcbiAgICAgKi9cclxuICAgIHN0eWxlUnVsZXM/OiBhbnk7XHJcbiAgICAvKiBBZGQgYSB0ZXh0IG9uIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhlIGVsZW1lbnQgdmFsdWUuXHJcbiAgICAgKiBUaGlzIHN1ZmZpeCB0ZXh0IGNhbiBoYXZlIGFueSBjaGFyYWN0ZXJzIGluIGl0cyBzdHJpbmd8IGV4Y2VwdCBudW1lcmljIGNoYXJhY3RlcnMgYW5kIHRoZSBuZWdhdGl2ZS9wb3NpdGl2ZSBzaWduLlxyXG4gICAgICogRXhhbXBsZTogJyBkb2xsYXJzJ1xyXG4gICAgICovXHJcbiAgICBzdWZmaXhUZXh0Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qIFRoZSB0aHJlZSBvcHRpb25zIChkaXZpc29yV2hlblVuZm9jdXNlZHwgZGVjaW1hbFBsYWNlc1Nob3duT25CbHVyICYgc3ltYm9sV2hlblVuZm9jdXNlZCkgaGFuZGxlIHNjYWxpbmdcclxuICAgICAqIG9mIHRoZSBpbnB1dCB3aGVuIHRoZSBpbnB1dCBkb2VzIG5vdCBoYXZlIGZvY3VzXHJcbiAgICAgKiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBub24tc2NhbGVkIHZhbHVlIGlzIGhlbGQgaW4gZGF0YSBhbmQgaXQgaXMgYWR2aXNlZCB0aGF0IHlvdSB1c2UgdGhlIGBzYXZlVmFsdWVUb1Nlc3Npb25TdG9yYWdlYFxyXG4gICAgICogIG9wdGlvbiB0byBlbnN1cmUgcmV0YWluaW5nIHRoZSB2YWx1ZVxyXG4gICAgICogW1wiZGl2aXNvclwifCBcImRlY2ltYWwgcGxhY2VzXCJ8IFwic3ltYm9sXCJdXHJcbiAgICAgKiBFeGFtcGxlOiB3aXRoIHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBzZXQge2Rpdmlzb3JXaGVuVW5mb2N1c2VkOiAnMTAwMCd8IGRlY2ltYWxQbGFjZXNTaG93bk9uQmx1cjogJzEnfCBzeW1ib2xXaGVuVW5mb2N1c2VkOiAnIEsnfVxyXG4gICAgICogRXhhbXBsZTogZm9jdXNpbiB2YWx1ZSBcIjF8MTExLjExXCIgZm9jdXNvdXQgdmFsdWUgXCIxLjEgS1wiXHJcbiAgICAgKi9cclxuXHJcbiAgICAvKiBUaGUgYHN5bWJvbFdoZW5VbmZvY3VzZWRgIG9wdGlvbiBpcyBhIHN5bWJvbCBwbGFjZWQgYXMgYSBzdWZmaXggd2hlbiBub3QgaW4gZm9jdXMuXHJcbiAgICAgKiBUaGlzIGlzIG9wdGlvbmFsIHRvby5cclxuICAgICAqL1xyXG4gICAgc3ltYm9sV2hlblVuZm9jdXNlZD86IG51bGwgfCBzdHJpbmc7XHJcblxyXG4gICAgLyogRGVmaW5lcyBpZiB0aGUgZWxlbWVudCB2YWx1ZSBzaG91bGQgYmUgdW5mb3JtYXR0ZWQgd2hlbiB0aGUgdXNlciBob3ZlciBoaXMgbW91c2Ugb3ZlciBpdCB3aGlsZSBob2xkaW5nIHRoZSBgQWx0YCBrZXkuXHJcbiAgICAgKiBVbmZvcm1hdHRpbmcgdGhlcmUgbWVhbnMgdGhhdCB0aGlzIHJlbW92ZXMgYW55IG5vbi1udW1iZXIgY2hhcmFjdGVycyBhbmQgZGlzcGxheXMgdGhlICpyYXcqIHZhbHVlfCBhcyB1bmRlcnN0b29kXHJcbiAgICAgKiBieSBKYXZhc2NyaXB0IChpZS4gYDEyLjM0YCBpcyBhIHZhbGlkIG51bWJlcnwgd2hpbGUgYDEyfDM0YCBpcyBub3QpLlxyXG4gICAgICogV2UgcmVmb3JtYXQgYmFjayBiZWZvcmUgYW55dGhpbmcgZWxzZSBpZiA6XHJcbiAgICAgKiAtIHRoZSB1c2VyIGZvY3VzIG9uIHRoZSBlbGVtZW50IGJ5IHRhYmJpbmcgb3IgY2xpY2tpbmcgaW50byBpdHxcclxuICAgICAqIC0gdGhlIHVzZXIgcmVsZWFzZXMgdGhlIGBBbHRgIGtleXwgYW5kXHJcbiAgICAgKiAtIGlmIHdlIGRldGVjdCBhIG1vdXNlbGVhdmUgZXZlbnQuXHJcbiAgICAgKlxyXG4gICAgICogV2UgdW5mb3JtYXQgYWdhaW4gaWYgOlxyXG4gICAgICogLSB3aGlsZSB0aGUgbW91c2UgaXMgb3ZlciB0aGUgZWxlbWVudHwgdGhlIHVzZXIgaGl0IGBBbHRgIGFnYWluXHJcbiAgICAgKi9cclxuICAgIHVuZm9ybWF0T25Ib3Zlcj86IGJvb2xlYW47XHJcblxyXG4gICAgLyogUmVtb3ZlcyB0aGUgZm9ybWF0dGluZyBhbmQgdXNlIHRoZSByYXcgdmFsdWUgaW4gZWFjaCBhdXRvTnVtZXJpYyBlbGVtZW50cyBvZiB0aGUgcGFyZW50IGZvcm0gZWxlbWVudHwgb24gdGhlIGZvcm0gYHN1Ym1pdGAgZXZlbnQuXHJcbiAgICAgKiBUaGUgb3V0cHV0IGZvcm1hdCBpcyBhIG51bWVyaWMgc3RyaW5nIChubm5uLm5uIG9yIC1ubm5uLm5uKS5cclxuICAgICAqL1xyXG4gICAgdW5mb3JtYXRPblN1Ym1pdD86IGJvb2xlYW47XHJcblxyXG4gICAgLyogUHJvdmlkZXMgYSB3YXkgZm9yIGF1dG9tYXRpY2FsbHkgcmVwbGFjaW5nIHRoZSBmb3JtYXR0ZWQgdmFsdWUgd2l0aCBhIHByZS1kZWZpbmVkIHN0cmluZ3wgd2hlbiB0aGUgcmF3IHZhbHVlIGlzIGVxdWFsIHRvIGFcclxuICAgICAqIHNwZWNpZmljIHZhbHVlXHJcbiAgICAgKiBIZXJlIHlvdSBjYW4gc3BlY2lmeSBhcyBtYW55ICdjb252ZXJzaW9uJyBhcyBuZWVkZWQuXHJcbiAgICAgKi9cclxuICAgIHZhbHVlc1RvU3RyaW5ncz86IG51bGwgfCB7IDA6ICctJywgfSB8IHsgJy0xJzogJ01pbicsIDE6ICdNYXgnLCB9O1xyXG4gICAgLyogRGVmaW5lcyBpZiB0aGUgQXV0b051bWVyaWMgZWxlbWVudCBzaG91bGQgd2F0Y2ggZXh0ZXJuYWwgY2hhbmdlcyBtYWRlIHdpdGhvdXQgdXNpbmcgYC5zZXQoKWB8IGJ1dCBieSB1c2luZyB0aGUgYmFzaWNcclxuICAgICAqIGBhTkVsZW1lbnQubm9kZSgpLnZhbHVlID0gNDJgIG5vdGF0aW9uLlxyXG4gICAgICogSWYgc2V0IHRvIGB3YXRjaGB8IHRoZW4gQXV0b051bWVyaWMgd2lsbCBmb3JtYXQgdGhlIG5ldyB2YWx1ZSB1c2luZyBgLnNldCgpYCBpbnRlcm5hbGx5LlxyXG4gICAgICogT3RoZXJ3aXNlIGl0IHdpbGwgbmVpdGhlciBmb3JtYXQgaXR8IG5vciBzYXZlIGl0IGluIHRoZSBoaXN0b3J5LlxyXG4gICAgICovXHJcbiAgICB3YXRjaEV4dGVybmFsQ2hhbmdlcz86IGJvb2xlYW47XHJcblxyXG4gICAgLyogRGVmaW5lcyB3aGVuIHRoZSB3aGVlbCBldmVudCB3aWxsIGluY3JlbWVudCBvciBkZWNyZW1lbnQgdGhlIGVsZW1lbnQgdmFsdWUuXHJcbiAgICAgKiBXaGVuIHNldCB0byBgJ2ZvY3VzJ2B8IHRoZSBBdXRvTnVtZXJpYy1tYW5hZ2VkIGVsZW1lbnQgbmVlZHMgdG8gYmUgZm9jdXNlZCBmb3IgdGhlIHdoZWVsIGV2ZW50IHRvIGNoYW5nZSB0aGUgdmFsdWUuXHJcbiAgICAgKiBXaGVuIHNldCB0byBgJ2hvdmVyJ2B8IHVzaW5nIHRoZSB3aGVlbCBldmVudCB3aGlsZSB0aGUgbW91c2UgaXMgaG92ZXJpbmcgdGhlIGVsZW1lbnQgaXMgc3VmZmljaWVudCAobm8gZm9jdXMgbmVlZGVkKS5cclxuICAgICAqXHJcbiAgICAgKiBOb3RlIDpcclxuICAgICAqIFdoZW4gYHdoZWVsT25gIGlzIHNldCB0byBgJ2ZvY3VzJ2B8IHlvdSBjYW4gdXNlIHRoZSAnU2hpZnQnIG1vZGlmaWVyIGtleSB3aGlsZSB1c2luZyB0aGUgbW91c2Ugd2hlZWwgaW4gb3JkZXJcclxuICAgICAqIHRvIHRlbXBvcmFyaWx5IGFjdGl2YXRlIHRoZSBpbmNyZW1lbnQvZGVjcmVtZW50IGZlYXR1cmUgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBub3QgZm9jdXNlZC5cclxuICAgICAqIFdoZW4gYHdoZWVsT25gIGlzIHNldCB0byBgJ2hvdmVyJ2B8IHlvdSBjYW4gdXNlIHRoZSAnU2hpZnQnIG1vZGlmaWVyIGtleSB3aGlsZSB1c2luZyB0aGUgbW91c2Ugd2hlZWwgaW4gb3JkZXJcclxuICAgICAqICB0byB0ZW1wb3JhcmlseSBkaXNhYmxlIHRoZSBpbmNyZW1lbnQvZGVjcmVtZW50IGZlYXR1cmUgZXZlbiBpZiB0aGUgZWxlbWVudCBpcyBub3QgaG92ZXJlZC5cclxuICAgICAqL1xyXG4gICAgd2hlZWxPbj86IHN0cmluZztcclxuXHJcbiAgICAvKiBUaGF0IG9wdGlvbiBpcyBsaW5rZWQgdG8gdGhlIGBtb2RpZnlWYWx1ZU9uV2hlZWxgIG9uZSBhbmQgd2lsbCBvbmx5IGJlIHVzZWQgaWYgdGhlIGxhdHRlciBpcyBzZXQgdG8gYHRydWVgLlxyXG4gICAgICogVGhpcyBvcHRpb24gd2lsbCBtb2RpZnkgdGhlIHdoZWVsIGJlaGF2aW9yIGFuZCBjYW4gYmUgdXNlZCBpbiB0d28gd2F5c3wgZWl0aGVyIGJ5IHNldHRpbmcgOlxyXG4gICAgICogLSBhICdmaXhlZCcgc3RlcCB2YWx1ZSAoYSBwb3NpdGl2ZSBmbG9hdCBvciBpbnRlZ2VyIG51bWJlciBgMTAwMGApfCBvclxyXG4gICAgICogLSB0aGUgYCdwcm9ncmVzc2l2ZSdgIHN0cmluZy5cclxuICAgICAqXHJcbiAgICAgKiBUaGUgJ2ZpeGVkJyBtb2RlIGFsd2F5cyBpbmNyZW1lbnQvZGVjcmVtZW50IHRoZSBlbGVtZW50IHZhbHVlIGJ5IHRoYXQgYW1vdW50fCB3aGlsZSByZXNwZWN0aW5nXHJcbiAgICAgKiAgdGhlIGBtaW5pbXVtVmFsdWVgIGFuZCBgbWF4aW11bVZhbHVlYCBzZXR0aW5ncy5cclxuICAgICAqIFRoZSAncHJvZ3Jlc3NpdmUnIG1vZGUgd2lsbCBpbmNyZW1lbnQvZGVjcmVtZW50IHRoZSBlbGVtZW50IHZhbHVlIGJhc2VkIG9uIGl0cyBjdXJyZW50IHZhbHVlLiBUaGUgYmlnZ2VyIHRoZVxyXG4gICAgICogbnVtYmVyfCB0aGUgYmlnZ2VyIHRoZSBzdGVwfCBhbmQgdmljZSB2ZXJzYS5cclxuICAgICAqL1xyXG4gICAgd2hlZWxTdGVwPzogc3RyaW5nO1xyXG5cclxuICAgIC8qIE9wdGlvbnMgQ2hhbmdlIHN0cmF0ZWd5LFxyXG4gICAgICpcclxuICAgICAqL1xyXG59XHJcbiJdfQ==