footprintjs 9.8.0 → 9.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,4 +27,4 @@ export var ArrayMergeMode;
27
27
  /** Overwrite parent array with subflow output. Use for Dynamic loops. */
28
28
  ArrayMergeMode["Replace"] = "replace";
29
29
  })(ArrayMergeMode || (ArrayMergeMode = {}));
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQWFILE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBZTlFLG9DQUFvQztBQUNwQyx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFZO0lBQ3BDLElBQUksRUFBRSxDQUFDLE9BQWEsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDdkUsR0FBRyxFQUFFLENBQUMsT0FBYSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztJQUNyRSxLQUFLLEVBQUUsQ0FBQyxPQUFhLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3pFLEtBQUssRUFBRSxDQUFDLE9BQWEsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDekUsSUFBSSxFQUFFLENBQUMsT0FBYSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztDQUN4RSxDQUFDO0FBbURGLDhFQUE4RTtBQUM5RSxVQUFVO0FBQ1YsOEVBQThFO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4Qix3RkFBd0Y7SUFDeEYsbUNBQWlCLENBQUE7SUFDakIseUVBQXlFO0lBQ3pFLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdHlwZXMudHMg4oCUIEFsbCB0eXBlIGRlZmluaXRpb25zIGZvciB0aGUgZW5naW5lIGxpYnJhcnkuXG4gKlxuICogQ2VudHJhbGl6ZXMgdHlwZSBkZWZpbml0aW9ucyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gKiBFdmVyeSBoYW5kbGVyIHJlY2VpdmVzIEhhbmRsZXJEZXBzICh0aGUgREkgYmFnKSBpbnN0ZWFkIG9mIGltcG9ydGluZyB0aGUgdHJhdmVyc2VyLlxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7IEZsb3dDb250cm9sVHlwZSwgRmxvd01lc3NhZ2UgfSBmcm9tICcuLi9tZW1vcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vc2NvcGUvcHJvdGVjdGlvbi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IERlY2lkZXIsIFNlbGVjdG9yLCBTdGFnZU5vZGUgfSBmcm9tICcuL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElDb250cm9sRmxvd05hcnJhdGl2ZSB9IGZyb20gJy4vbmFycmF0aXZlL3R5cGVzLmpzJztcblxuLy8gUmUtZXhwb3J0IFN0YWdlTm9kZSB0eXBlcyBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgRGVjaWRlciwgU2VsZWN0b3IsIFN0YWdlTm9kZSB9IGZyb20gJy4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcblxuLy8gUmUtZXhwb3J0IHBhdXNlIHR5cGVzIGZyb20gcGF1c2UvIGxpYnJhcnlcbmV4cG9ydCB0eXBlIHsgRmxvd2NoYXJ0Q2hlY2twb2ludCwgUGF1c2FibGVIYW5kbGVyLCBQYXVzZVJlc3VsdCB9IGZyb20gJy4uL3BhdXNlL2luZGV4LmpzJztcbmV4cG9ydCB7IGlzUGF1c2VSZXN1bHQsIGlzUGF1c2VTaWduYWwsIFBhdXNlU2lnbmFsIH0gZnJvbSAnLi4vcGF1c2UvaW5kZXguanMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExvZ2dlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBNaW5pbWFsIGxvZ2dpbmcgY29udHJhY3QuIE1pcnJvcnMgQ29uc29sZSBBUEkgc3Vic2V0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTG9nZ2VyIHtcbiAgaW5mbyhtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkO1xuICBsb2cobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZDtcbiAgZGVidWcobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZDtcbiAgZXJyb3IobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZDtcbiAgd2FybihtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkO1xufVxuXG4vKiogRGVmYXVsdCBjb25zb2xlLWJhc2VkIGxvZ2dlci4gKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0tIHRyaXZpYWwgY29uc29sZSBkZWxlZ2F0aW9uICovXG5leHBvcnQgY29uc3QgZGVmYXVsdExvZ2dlcjogSUxvZ2dlciA9IHtcbiAgaW5mbzogKG1lc3NhZ2U/OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBjb25zb2xlLmluZm8obWVzc2FnZSwgLi4uYXJncyksXG4gIGxvZzogKG1lc3NhZ2U/OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBjb25zb2xlLmxvZyhtZXNzYWdlLCAuLi5hcmdzKSxcbiAgZGVidWc6IChtZXNzYWdlPzogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gY29uc29sZS5kZWJ1ZyhtZXNzYWdlLCAuLi5hcmdzKSxcbiAgZXJyb3I6IChtZXNzYWdlPzogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gY29uc29sZS5lcnJvcihtZXNzYWdlLCAuLi5hcmdzKSxcbiAgd2FybjogKG1lc3NhZ2U/OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBjb25zb2xlLndhcm4obWVzc2FnZSwgLi4uYXJncyksXG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFN0YWdlIEZ1bmN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIENhbGxiYWNrIHRoYXQgcmVjZWl2ZXMgdG9rZW5zIGR1cmluZyBzdHJlYW1pbmcuICovXG5leHBvcnQgdHlwZSBTdHJlYW1DYWxsYmFjayA9ICh0b2tlbjogc3RyaW5nKSA9PiB2b2lkO1xuXG4vKipcbiAqIFRoZSBmdW5jdGlvbiBzaWduYXR1cmUgZm9yIHN0YWdlIGhhbmRsZXJzLlxuICogLSBUT3V0OiByZXR1cm4gdHlwZSBwcm9kdWNlZCBieSB0aGUgc3RhZ2VcbiAqIC0gVFNjb3BlOiB0aGUgc2NvcGUgb2JqZWN0IHBhc3NlZCB0byB0aGUgc3RhZ2VcbiAqIC0gT3B0aW9uYWwgM3JkIHBhcmFtZXRlciBgc3RyZWFtQ2FsbGJhY2tgIGluamVjdGVkIGZvciBzdHJlYW1pbmcgc3RhZ2VzLlxuICovXG5leHBvcnQgdHlwZSBTdGFnZUZ1bmN0aW9uPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4gPSAoXG4gIHNjb3BlOiBUU2NvcGUsXG4gIGJyZWFrUGlwZWxpbmU6ICgpID0+IHZvaWQsXG4gIHN0cmVhbUNhbGxiYWNrPzogU3RyZWFtQ2FsbGJhY2ssXG4pID0+IFByb21pc2U8VE91dCB8IHZvaWQ+IHwgVE91dCB8IHZvaWQ7XG5cbi8qKlxuICogU3RhZ2UgZnVuY3Rpb24gZm9yIHBhdXNhYmxlIHN0YWdlcyDigJQgcmV0dXJuIHZhbHVlIGlzIHRoZSBwYXVzZSBkYXRhIChhbnkgdHlwZSkuXG4gKiBSZXR1cm4gbm9uLXZvaWQgdG8gcGF1c2UsIHJldHVybiB2b2lkIHRvIGNvbnRpbnVlIG5vcm1hbGx5LlxuICovXG5leHBvcnQgdHlwZSBQYXVzYWJsZVN0YWdlRnVuY3Rpb248VFNjb3BlID0gYW55PiA9IChcbiAgc2NvcGU6IFRTY29wZSxcbiAgYnJlYWtQaXBlbGluZTogKCkgPT4gdm9pZCxcbikgPT4gUHJvbWlzZTx1bmtub3duPiB8IHVua25vd247XG5cbi8qKiBGYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHNjb3BlIGluc3RhbmNlIGZvciBlYWNoIHN0YWdlLiAqL1xuZXhwb3J0IHR5cGUgU2NvcGVGYWN0b3J5PFRTY29wZSA9IGFueT4gPSAoXG4gIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gIHJlYWRPbmx5Q29udGV4dD86IHVua25vd24sXG4gIGV4ZWN1dGlvbkVudj86IEV4ZWN1dGlvbkVudixcbikgPT4gVFNjb3BlO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFN0cmVhbWluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIFN0cmVhbVRva2VuSGFuZGxlciA9IChzdHJlYW1JZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgU3RyZWFtTGlmZWN5Y2xlSGFuZGxlciA9IChzdHJlYW1JZDogc3RyaW5nLCBmdWxsVGV4dD86IHN0cmluZykgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1IYW5kbGVycyB7XG4gIG9uVG9rZW4/OiBTdHJlYW1Ub2tlbkhhbmRsZXI7XG4gIG9uU3RhcnQ/OiBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyO1xuICBvbkVuZD86IFN0cmVhbUxpZmVjeWNsZUhhbmRsZXI7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3ViZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQ29udHJvbHMgaG93IGFycmF5IHZhbHVlcyBmcm9tIG91dHB1dE1hcHBlciBhcmUgbWVyZ2VkIGludG8gcGFyZW50IHNjb3BlLlxuICovXG5leHBvcnQgZW51bSBBcnJheU1lcmdlTW9kZSB7XG4gIC8qKiBBcHBlbmQgc3ViZmxvdyBvdXRwdXQgdG8gZXhpc3RpbmcgcGFyZW50IGFycmF5OiBbLi4uZXhpc3RpbmcsIC4uLnZhbHVlXS4gRGVmYXVsdC4gKi9cbiAgQ29uY2F0ID0gJ2NvbmNhdCcsXG4gIC8qKiBPdmVyd3JpdGUgcGFyZW50IGFycmF5IHdpdGggc3ViZmxvdyBvdXRwdXQuIFVzZSBmb3IgRHluYW1pYyBsb29wcy4gKi9cbiAgUmVwbGFjZSA9ICdyZXBsYWNlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93TW91bnRPcHRpb25zPFRQYXJlbnRTY29wZSA9IGFueSwgVFN1YmZsb3dJbnB1dCA9IGFueSwgVFN1YmZsb3dPdXRwdXQgPSBhbnk+IHtcbiAgaW5wdXRNYXBwZXI/OiAocGFyZW50U2NvcGU6IFRQYXJlbnRTY29wZSkgPT4gVFN1YmZsb3dJbnB1dDtcbiAgLyoqXG4gICAqIE1hcHMgc3ViZmxvdyBvdXRwdXQgYmFjayBpbnRvIHBhcmVudCBzY29wZS5cbiAgICpcbiAgICogKipBcnJheSBtZXJnZSBiZWhhdmlvcioqIGlzIGNvbnRyb2xsZWQgYnkgYGFycmF5TWVyZ2VgOlxuICAgKiAtIGAnY29uY2F0J2AgKGRlZmF1bHQpOiBgWy4uLmV4aXN0aW5nLCAuLi52YWx1ZV1gIOKAlCByZXR1cm4gb25seSAqKmRlbHRhKiogaXRlbXNcbiAgICogLSBgJ3JlcGxhY2UnYDogb3ZlcndyaXRlcyB0aGUgcGFyZW50IHZhbHVlIOKAlCByZXR1cm4gdGhlIGZ1bGwgYXJyYXlcbiAgICpcbiAgICogU2NhbGFyIHZhbHVlcyBhcmUgYWx3YXlzIHJlcGxhY2VkIHJlZ2FyZGxlc3Mgb2YgYGFycmF5TWVyZ2VgLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIERlbHRhIG1vZGUgKGRlZmF1bHQpIOKAlCByZXR1cm4gb25seSBuZXcgaXRlbXMsIGNvbmNhdCBhcHBlbmRzXG4gICAqIG91dHB1dE1hcHBlcjogKHNmKSA9PiAoeyBtZXNzYWdlczogc2YubmV3TWVzc2FnZXMgfSlcbiAgICpcbiAgICogLy8gUmVwbGFjZSBtb2RlIOKAlCByZXR1cm4gZnVsbCBhcnJheSwgcGFyZW50IHZhbHVlIGlzIG92ZXJ3cml0dGVuXG4gICAqIC8vIFVzZWZ1bCBpbiBEeW5hbWljIGxvb3BzIHdoZXJlIHRoZSBzdWJmbG93IHJlY29tcHV0ZXMgdGhlIGZ1bGwgdmFsdWUgZWFjaCBpdGVyYXRpb25cbiAgICogb3V0cHV0TWFwcGVyOiAoc2YpID0+ICh7IHRvb2xEZXNjcmlwdGlvbnM6IHNmLnRvb2xEZXNjcmlwdGlvbnMgfSksXG4gICAqIGFycmF5TWVyZ2U6IEFycmF5TWVyZ2VNb2RlLlJlcGxhY2UsXG4gICAqXG4gICAqIC8vIFNjYWxhcnMgYXJlIGZpbmUgaW4gYm90aCBtb2RlcyDigJQgYWx3YXlzIHJlcGxhY2VkXG4gICAqIG91dHB1dE1hcHBlcjogKHNmKSA9PiAoeyBzdGF0dXM6IHNmLnJlc3VsdCwgY291bnQ6IHNmLnRvdGFsIH0pXG4gICAqIGBgYFxuICAgKi9cbiAgb3V0cHV0TWFwcGVyPzogKHN1YmZsb3dPdXRwdXQ6IFRTdWJmbG93T3V0cHV0LCBwYXJlbnRTY29wZTogVFBhcmVudFNjb3BlKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIGhvdyBhcnJheSB2YWx1ZXMgZnJvbSBvdXRwdXRNYXBwZXIgYXJlIG1lcmdlZCBpbnRvIHBhcmVudCBzY29wZS5cbiAgICogQXBwbGllcyBvbmx5IHRvIHRvcC1sZXZlbCBhcnJheSBrZXlzLiBOZXN0ZWQgYXJyYXlzIGluc2lkZSBvYmplY3RzXG4gICAqIGFsd2F5cyB1c2UgYXBwZW5kIChhcHBlbmRUb0FycmF5KSByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgQXJyYXlNZXJnZU1vZGUuQ29uY2F0XG4gICAqL1xuICBhcnJheU1lcmdlPzogQXJyYXlNZXJnZU1vZGU7XG5cbiAgLyoqXG4gICAqIFNUUlVDVFVSRS1PTkxZOiB0aGUgZG93bnN0cmVhbSBzdGFnZSBpZCB0aGlzIGJyYW5jaCdzIGNvbnZlcmdlbmNlIGVkZ2VcbiAgICogcG9pbnRzIHRvLCBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IFwiY29udmVyZ2UgYXQgdGhlIG5leHQgbGluZWFyIHN0YWdlLlwiXG4gICAqXG4gICAqIFdoZW4gYSBmb3JrL3NlbGVjdG9yL2RlY2lkZXIgYnJhbmNoIGNhcnJpZXMgYGNvbnZlcmdlQXRgLCBpdHMgdmlzdWFsaXplZFxuICAgKiBgbmV4dGAgZWRnZSBpcyBmaXJlZCB0byB0aGUgbmFtZWQgc3RhZ2UgaW5zdGVhZCBvZiB0byB0aGUgc2hhcmVkXG4gICAqIGNvbnZlcmdlbmNlIG5vZGUgaXRzIHNpYmxpbmdzIHVzZS4gVGhpcyBleHByZXNzZXMgYW4gdW5lcXVhbC1kZXB0aCBtZXJnZVxuICAgKiDigJQgZS5nLiBhIGB0b29sc2Agc2xvdCB0aGF0IGJ5cGFzc2VzIHRoZSBgbWVzc2FnZUFQSWAgYXNzZW1ibHkgbm9kZSBhbmRcbiAgICogcGFpcnMgd2l0aCBpdHMgb3V0cHV0IGF0IGBjYWxsLWxsbWAgKHNvIGBjYWxsLWxsbWAgcmVhZHMgYXMgYSAyLXBhcmVudFxuICAgKiBtZXJnZSksIGZhaXRoZnVsIHRvIHRoZSBBbnRocm9waWMgd2lyZSBwcm90b2NvbCAoc3lzdGVtK21lc3NhZ2VzID0gdGhlXG4gICAqIG1lc3NhZ2UgcGF5bG9hZDsgdG9vbHMgPSBhIHNlcGFyYXRlIHRvcC1sZXZlbCBmaWVsZCkuXG4gICAqXG4gICAqICoqVGhpcyBhZmZlY3RzIHRoZSBTVFJVQ1RVUkUvdG9wb2xvZ3kgZ3JhcGggb25seSoqIOKAlCB0aGUgcnVudGltZSBpc1xuICAgKiB1bmNoYW5nZWQgKHRoZSBicmFuY2gncyBvdXRwdXRzIHJpZGUgc2hhcmVkIHNjb3BlOyB0aGUgbmFtZWQgdGFyZ2V0IHJlYWRzXG4gICAqIHRoZW0gd2hlbiBpdCBydW5zKS4gSXQgZG9lcyBOT1QgaW50cm9kdWNlIGEgam9pbiBiYXJyaWVyLiBUaGUgdGFyZ2V0IGlzIGFcbiAgICogRk9SV0FSRCBzdGFnZSAoYWRkZWQgbGF0ZXIgaW4gdGhlIGNoYWluKSwgc28gaXQgaXMgbm90IHZhbGlkYXRlZCBhdFxuICAgKiBicmFuY2gtZGVjbGFyYXRpb24gdGltZS5cbiAgICovXG4gIGNvbnZlcmdlQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCBhbiBpbm5lciBgc2NvcGUuJGJyZWFrKHJlYXNvbilgIGNhbGwgaW5zaWRlIHRoaXMgc3ViZmxvd1xuICAgKiBwcm9wYWdhdGVzIHVwIHRvIHRoZSBwYXJlbnQg4oCUIGkuZS4sIHRoZSBwYXJlbnQncyBgYnJlYWtGbGFnYCBpcyBzZXRcbiAgICogYWZ0ZXIgdGhlIHN1YmZsb3cgZXhpdHMsIHRlcm1pbmF0aW5nIHRoZSBwYXJlbnQncyBvdXRlciBsb29wIHRvby5cbiAgICpcbiAgICogKipEZWZhdWx0OiBgZmFsc2VgKiogKGN1cnJlbnQgYmVoYXZpb3VyIOKAlCBpbm5lciBicmVhayBzdG9wcyBvbmx5IHRoZVxuICAgKiBzdWJmbG93OyBwYXJlbnQgY29udGludWVzKS5cbiAgICpcbiAgICogIyMgV2hlbiB0byB1c2VcbiAgICpcbiAgICogU2V0IGBwcm9wYWdhdGVCcmVhazogdHJ1ZWAgb24gc3ViZmxvdyBtb3VudHMgdGhhdCByZXByZXNlbnRcbiAgICogKip0ZXJtaW5hbCoqIGJyYW5jaGVzIOKAlCBcImlmIHRoaXMgc3ViZmxvdyBmaXJlcywgdGhlIG91dGVyIGxvb3AgaXNcbiAgICogZG9uZVwiLiBFeGFtcGxlczpcbiAgICpcbiAgICogLSBBIGh1bWFuLXJldmlldyBydW5uZXIgdGhhdCB0YWtlcyBvdmVyIGZyb20gYW4gYWdlbnQncyB0b29sLWNhbGxpbmdcbiAgICogICBsb29wIGFuZCBwcm9kdWNlcyB0aGUgZmluYWwgcmVzcG9uc2UuXG4gICAqIC0gQSBzYWZldHktZ2F0ZSBzdWJmbG93IHRoYXQgaGFsdHMgdGhlIG91dGVyIHdvcmtmbG93IHdoZW4gYSBwb2xpY3lcbiAgICogICB2aW9sYXRpb24gaXMgZGV0ZWN0ZWQuXG4gICAqIC0gQW4gZXJyb3ItcmVjb3Zlcnkgc3ViZmxvdyB0aGF0IHJlc3RvcmVzIHN0YXRlIGFuZCB0aGVuIHRlcm1pbmF0ZXMuXG4gICAqXG4gICAqICMjIFNlbWFudGljc1xuICAgKlxuICAgKiAxLiBJbnNpZGUgdGhlIHN1YmZsb3csIGEgc3RhZ2UgY2FsbHMgYHNjb3BlLiRicmVhayhyZWFzb24pYC5cbiAgICogMi4gVGhlIHN1YmZsb3cncyBvd24gZXhlY3V0aW9uIHN0b3BzIChub3JtYWwgYCRicmVha2AgYmVoYXZpb3VyKS5cbiAgICogMy4gYFN1YmZsb3dFeGVjdXRvcmAgaW5zcGVjdHMgdGhlIHN1YmZsb3cncyBleGl0IHN0YXRlLiBJZlxuICAgKiAgICBgcHJvcGFnYXRlQnJlYWsgPT09IHRydWVgIEFORCB0aGUgaW5uZXIgYnJlYWsgZmlyZWQsIGl0IGZvcndhcmRzXG4gICAqICAgIHRoZSBicmVhayAoYW5kIGl0cyByZWFzb24pIHRvIHRoZSBwYXJlbnQncyBgYnJlYWtGbGFnYC5cbiAgICogNC4gVGhlIHBhcmVudCB0cmF2ZXJzZXIgc2VlcyBgc2hvdWxkQnJlYWtgIG9uIGl0cyBuZXh0IHN0ZXAgYW5kIGV4aXRzLlxuICAgKiA1LiBBIGBGbG93UmVjb3JkZXIub25CcmVha2AgZXZlbnQgZmlyZXMgYXQgdGhlIHBhcmVudC1tb3VudCBsZXZlbCB3aXRoXG4gICAqICAgIGBwcm9wYWdhdGVkRnJvbVN1YmZsb3dgID0gdGhlIHN1YmZsb3cncyBpZCBhbmQgdGhlIGlubmVyIHJlYXNvbi5cbiAgICpcbiAgICogIyMgUGFyYWxsZWwvZmFuLW91dFxuICAgKlxuICAgKiBGb2xsb3dzIHRoZSBleGlzdGluZyBsaWJyYXJ5IHJ1bGUgaW4gYENoaWxkcmVuRXhlY3V0b3JgOiB0aGUgcGFyZW50XG4gICAqIGJyZWFrcyBvbmx5IHdoZW4gKipldmVyeSoqIGNoaWxkIG9mIGEgZm9yayBicm9rZS4gQSBzaW5nbGVcbiAgICogYHByb3BhZ2F0ZUJyZWFrOiB0cnVlYCBzdWJmbG93IGNvbnRyaWJ1dGluZyBpdHMgYnJlYWsgdG8gdGhlIGNvdW50XG4gICAqIGRvZXMgbm90IG9uIGl0cyBvd24gdGVybWluYXRlIHRoZSBwYXJlbnQgZmFuLW91dC5cbiAgICpcbiAgICogIyMgb3V0cHV0TWFwcGVyIHN0aWxsIHJ1bnNcbiAgICpcbiAgICogVGhlIHN1YmZsb3cncyBgb3V0cHV0TWFwcGVyYCAoaWYgc3VwcGxpZWQpIEFMV0FZUyBydW5zIGJlZm9yZSB0aGVcbiAgICogYnJlYWsgcHJvcGFnYXRlcywgc28gdGhlIHN1YmZsb3cncyBwYXJ0aWFsIHN0YXRlIGlzIHN0aWxsIHdyaXR0ZW4gdG9cbiAgICogdGhlIHBhcmVudCBzY29wZS4gVGhpcyBpcyBpbnRlbnRpb25hbCDigJQgdGhlIHR5cGljYWwgdXNlIGNhc2UgaXMgYW5cbiAgICogXCJlc2NhbGF0aW9uXCIgc3ViZmxvdyB3aG9zZSBvdXRwdXQgSVMgdGhlIGZpbmFsIGFuc3dlciB0aGF0IG5lZWRzIHRvXG4gICAqIGxhbmQgaW4gdGhlIHBhcmVudCBzY29wZSBiZWZvcmUgdGhlIG91dGVyIGxvb3AgdGVybWluYXRlcy4gSWYgeW91XG4gICAqIHdhbnQgdG8gc3VwcHJlc3Mgb3V0cHV0IG1hcHBpbmcgb24gYnJlYWssIGNoZWNrIHRoZSBicmVhayBzdGF0ZVxuICAgKiBpbnNpZGUgeW91ciBgb3V0cHV0TWFwcGVyYCBhbmQgcmV0dXJuIGB7fWAgZWFybHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwcm9wYWdhdGVCcmVhaz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ViZmxvd1Jlc3VsdCB7XG4gIHN1YmZsb3dJZDogc3RyaW5nO1xuICBzdWJmbG93TmFtZTogc3RyaW5nO1xuICB0cmVlQ29udGV4dDoge1xuICAgIGdsb2JhbENvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIHN0YWdlQ29udGV4dHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGhpc3Rvcnk6IHVua25vd25bXTtcbiAgfTtcbiAgcGFyZW50U3RhZ2VJZDogc3RyaW5nO1xuICBwaXBlbGluZVN0cnVjdHVyZT86IHVua25vd247XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3ViZmxvdyBUcmF2ZXJzZXIgRmFjdG9yeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogU3ViZmxvd1RyYXZlcnNlckZhY3Rvcnkg4oCUIENyZWF0ZXMgYSBGbG93Y2hhcnRUcmF2ZXJzZXIgZm9yIHN1YmZsb3cgZXhlY3V0aW9uLlxuICpcbiAqIEluamVjdGVkIGludG8gU3ViZmxvd0V4ZWN1dG9yIHRvIGJyZWFrIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5OlxuICogRmxvd2NoYXJ0VHJhdmVyc2VyIOKGkiBTdWJmbG93RXhlY3V0b3Ig4oaSIEZsb3djaGFydFRyYXZlcnNlci5cbiAqXG4gKiBUaGUgZmFjdG9yeSBjYXB0dXJlcyBwYXJlbnQgdHJhdmVyc2VyIGNvbmZpZyAoc3RhZ2VNYXAsIHNjb3BlRmFjdG9yeSwgbmFycmF0aXZlLCBldGMuKVxuICogaW4gYSBjbG9zdXJlLiBTdWJmbG93RXhlY3V0b3IgY2FsbHMgaXQgd2l0aCBzdWJmbG93LXNwZWNpZmljIG92ZXJyaWRlcyAocm9vdCwgcnVudGltZSwgaW5wdXQpLlxuICogVGhlIHJldHVybmVkIHRyYXZlcnNlciB1c2VzIHRoZSBTQU1FIDctcGhhc2UgYWxnb3JpdGhtIGFzIHRoZSB0b3AtbGV2ZWwgdHJhdmVyc2VyLFxuICogc28gZGVjaWRlcnMsIHNlbGVjdG9ycywgbG9vcHMsIGxhenkgc3ViZmxvd3MsIGFuZCBhYm9ydCBzaWduYWxzIGFsbCB3b3JrIGluc2lkZSBzdWJmbG93cy5cbiAqL1xuZXhwb3J0IHR5cGUgU3ViZmxvd1RyYXZlcnNlckZhY3Rvcnk8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IChvcHRpb25zOiB7XG4gIC8qKiBSb290IG5vZGUgb2YgdGhlIHN1YmZsb3cgKHdpdGggaXNTdWJmbG93Um9vdCBzdHJpcHBlZCkuICovXG4gIHJvb3Q6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+O1xuICAvKiogSXNvbGF0ZWQgZXhlY3V0aW9uIHJ1bnRpbWUgZm9yIHRoZSBzdWJmbG93LiAqL1xuICBleGVjdXRpb25SdW50aW1lOiBJRXhlY3V0aW9uUnVudGltZTtcbiAgLyoqIE1hcHBlZCBpbnB1dCBmcm9tIHBhcmVudCBzY29wZSAoYmVjb21lcyByZWFkT25seUNvbnRleHQgZm9yIHN0YWdlcykuICovXG4gIHJlYWRPbmx5Q29udGV4dD86IHVua25vd247XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIg4oCUIHVzZWQgYXMgYnJhbmNoUGF0aCBmb3IgbmFycmF0aXZlIGNvbnRleHQuICovXG4gIHN1YmZsb3dJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFJGQy0wMDMgRDE6IHJ1bnRpbWVTdGFnZUlkIG9mIHRoZSBzdWJmbG93IE1PVU5UIHN0YWdlIGluIHRoZSBwYXJlbnRcbiAgICogdHJhdmVyc2VyLiBCZWNvbWVzIHRoZSBgcGFyZW50UnVudGltZVN0YWdlSWRgIGZhbGxiYWNrIGZvciB0aGUgc3ViZmxvdydzXG4gICAqIHJvb3Qgc3RhZ2Ugc28gcnVudGltZSBhbmNlc3RvciBjaGFpbnMgY3Jvc3Mgc3ViZmxvdyBib3VuZGFyaWVzLlxuICAgKi9cbiAgcGFyZW50TW91bnRSdW50aW1lU3RhZ2VJZD86IHN0cmluZztcbn0pID0+IFN1YmZsb3dUcmF2ZXJzZXJIYW5kbGU8VE91dCwgVFNjb3BlPjtcblxuLyoqXG4gKiBIYW5kbGUgcmV0dXJuZWQgYnkgU3ViZmxvd1RyYXZlcnNlckZhY3RvcnkuXG4gKiBQcm92aWRlcyBleGVjdXRlKCkgKyBhY2Nlc3MgdG8gbmVzdGVkIHN1YmZsb3cgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93VHJhdmVyc2VySGFuZGxlPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4ge1xuICAvKiogRXhlY3V0ZSB0aGUgc3ViZmxvdydzIGdyYXBoIHVzaW5nIHRoZSBmdWxsIDctcGhhc2UgdHJhdmVyc2FsIGFsZ29yaXRobS4gKi9cbiAgZXhlY3V0ZSgpOiBQcm9taXNlPFRyYXZlcnNhbFJlc3VsdD47XG4gIC8qKiBDb2xsZWN0IG5lc3RlZCBzdWJmbG93IHJlc3VsdHMgKGZyb20gc3ViZmxvd3MgbW91bnRlZCBpbnNpZGUgdGhpcyBzdWJmbG93KS4gKi9cbiAgZ2V0U3ViZmxvd1Jlc3VsdHMoKTogTWFwPHN0cmluZywgU3ViZmxvd1Jlc3VsdD47XG4gIC8qKlxuICAgKiBGaW5hbCBicmVhayBzdGF0ZSBvZiB0aGUgc3ViZmxvdyBhZnRlciBgZXhlY3V0ZSgpYCByZXR1cm5zLlxuICAgKlxuICAgKiAgIC0gYHNob3VsZEJyZWFrOiB0cnVlYCAg4oaSIGEgc3RhZ2UgaW5zaWRlIHRoZSBzdWJmbG93IGNhbGxlZFxuICAgKiAgICAgYHNjb3BlLiRicmVhayhyZWFzb24pYCwgc3RvcHBpbmcgdGhlIHN1YmZsb3cncyBvd24gdHJhdmVyc2FsLlxuICAgKiAgIC0gYHJlYXNvbmAgICAgICAgICAgICAg4oaSIHRoZSBvcHRpb25hbCBzdHJpbmcgcGFzc2VkIHRvIGAkYnJlYWtgLlxuICAgKlxuICAgKiBVc2VkIGJ5IGBTdWJmbG93RXhlY3V0b3JgIHRvIGltcGxlbWVudCBgU3ViZmxvd01vdW50T3B0aW9ucy5wcm9wYWdhdGVCcmVha2A6XG4gICAqIGlmIHRoZSBtb3VudCBvcHRzIGluIEFORCB0aGUgc3ViZmxvdyBicm9rZSwgdGhlIHBhcmVudCdzIGJyZWFrIGZsYWcgaXNcbiAgICogZm9yd2FyZGVkLlxuICAgKi9cbiAgZ2V0QnJlYWtTdGF0ZSgpOiB7IHNob3VsZEJyZWFrOiBib29sZWFuOyByZWFzb24/OiBzdHJpbmcgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGVjdXRpb24gUnVudGltZSBJbnRlcmZhY2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIElFeGVjdXRpb25SdW50aW1lIOKAlCBJbnRlcmZhY2UgZm9yIHRoZSBydW50aW1lIGVudmlyb25tZW50LlxuICpcbiAqIERlZmluZXMgdGhlIGNvbnRyYWN0IHRoYXQgZW5naW5lIGhhbmRsZXJzIG5lZWQgZnJvbSB0aGUgcnVubmVyIGxheWVyLFxuICogYXZvaWRpbmcgY2lyY3VsYXIgaW1wb3J0cyBiZXR3ZWVuIGVuZ2luZS8gYW5kIHJ1bm5lci8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4ZWN1dGlvblJ1bnRpbWUge1xuICBnbG9iYWxTdG9yZTogeyBnZXRTdGF0ZSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9O1xuICByb290U3RhZ2VDb250ZXh0OiBTdGFnZUNvbnRleHQ7XG4gIGV4ZWN1dGlvbkhpc3Rvcnk6IHsgbGlzdCgpOiB1bmtub3duW10gfTtcbiAgZ2V0U25hcHNob3Qob3B0aW9ucz86IHsgcmVkYWN0PzogYm9vbGVhbiB9KToge1xuICAgIHNoYXJlZFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBleGVjdXRpb25UcmVlOiB1bmtub3duO1xuICAgIGNvbW1pdExvZzogdW5rbm93bltdO1xuICAgIHN1YmZsb3dSZXN1bHRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgcmVjb3JkZXJzPzogQXJyYXk8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGRhdGE6IHVua25vd24gfT47XG4gIH07XG4gIHNldFJvb3RPYmplY3QocGF0aDogc3RyaW5nW10sIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQ7XG4gIGdldFBpcGVsaW5lcygpOiBzdHJpbmdbXTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGVjdXRpb24gRW52aXJvbm1lbnQg4oCUIHJlYWQtb25seSwgcHJvcGFnYXRlcyB0aHJvdWdoIG5lc3RlZCBleGVjdXRvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEV4ZWN1dGlvbkVudiDigJQgaW5mcmFzdHJ1Y3R1cmUgdmFsdWVzIHRoYXQgcHJvcGFnYXRlIHRocm91Z2ggbmVzdGVkIGV4ZWN1dG9ycy5cbiAqXG4gKiBMaWtlIGBwcm9jZXNzLmVudmAgZm9yIGZsb3djaGFydHM6IHJlYWQtb25seSwgaW5oZXJpdGVkIGJ5IGNoaWxkIGV4ZWN1dG9ycyxcbiAqIGluZnJhc3RydWN0dXJlLW9ubHkgKG5vdCBidXNpbmVzcyBsb2dpYykuXG4gKlxuICogTGl0bXVzIHRlc3Q6IENyZWF0ZWQgZXh0ZXJuYWwgdG8gdGhlIGZsb3djaGFydCArIHBhc3NlZCBpbiBmb3IgZXhlY3V0aW9uID0gZW52LlxuICogQnVzaW5lc3MgY29uZmlnIGZvciBhIHNwZWNpZmljIGZsb3djaGFydCA9IGFyZ3MgKGdldEFyZ3MoKSkuXG4gKlxuICogSW50ZW50aW9uYWxseSBhIGNsb3NlZCB0eXBlIOKAlCBub3QgZXh0ZW5zaWJsZSB0byBwcmV2ZW50IGNvdXBsaW5nIGJldHdlZW5cbiAqIHBhcmVudCBhbmQgY2hpbGQgZmxvd2NoYXJ0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRpb25FbnYge1xuICAvKiogQWJvcnRTaWduYWwgZm9yIGNvb3BlcmF0aXZlIGNhbmNlbGxhdGlvbiBhY3Jvc3MgbmVzdGVkIGV4ZWN1dG9ycy4gKi9cbiAgcmVhZG9ubHkgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIC8qKiBUaW1lb3V0IGJ1ZGdldCBpbiBtaWxsaXNlY29uZHMuICovXG4gIHJlYWRvbmx5IHRpbWVvdXRNcz86IG51bWJlcjtcbiAgLyoqIFRyYWNlIGlkZW50aWZpZXIgZm9yIGRpc3RyaWJ1dGVkIHRyYWNpbmcgLyBvYnNlcnZhYmlsaXR5LiAqL1xuICByZWFkb25seSB0cmFjZUlkPzogc3RyaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhhbmRsZXIgRGVwZW5kZW5jaWVzIChESSBiYWcpIOKAlCB3YXMgUGlwZWxpbmVDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBIYW5kbGVyRGVwcyDigJQgRGVwZW5kZW5jeSBpbmplY3Rpb24gYmFnIHBhc3NlZCB0byBhbGwgaGFuZGxlciBtb2R1bGVzLlxuICpcbiAqIFByb3ZpZGVzIHNoYXJlZCBzdGF0ZSAoc3RhZ2VNYXAsIHJ1bnRpbWUsIHNjb3BlRmFjdG9yeSwgZXRjLikgd2l0aG91dFxuICogaGFuZGxlcnMgbmVlZGluZyB0byBpbXBvcnQgdGhlIHRyYXZlcnNlciBkaXJlY3RseS4gQXZvaWRzIGNpcmN1bGFyIGRlcHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZGxlckRlcHM8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIHN0YWdlTWFwOiBNYXA8c3RyaW5nLCBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT4+O1xuICByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPjtcbiAgZXhlY3V0aW9uUnVudGltZTogSUV4ZWN1dGlvblJ1bnRpbWU7XG4gIHNjb3BlRmFjdG9yeTogU2NvcGVGYWN0b3J5PFRTY29wZT47XG4gIHN1YmZsb3dzPzogUmVjb3JkPHN0cmluZywgeyByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPiB9PjtcbiAgdGhyb3R0bGluZ0Vycm9yQ2hlY2tlcj86IChlcnJvcjogdW5rbm93bikgPT4gYm9vbGVhbjtcbiAgc3RyZWFtSGFuZGxlcnM/OiBTdHJlYW1IYW5kbGVycztcbiAgc2NvcGVQcm90ZWN0aW9uTW9kZTogU2NvcGVQcm90ZWN0aW9uTW9kZTtcbiAgcmVhZE9ubHlDb250ZXh0PzogdW5rbm93bjtcbiAgLyoqIEV4ZWN1dGlvbiBlbnZpcm9ubWVudCDigJQgcHJvcGFnYXRlcyB0byBzdWJmbG93cyBhdXRvbWF0aWNhbGx5LiAqL1xuICBleGVjdXRpb25FbnY/OiBFeGVjdXRpb25FbnY7XG4gIG5hcnJhdGl2ZUdlbmVyYXRvcjogSUNvbnRyb2xGbG93TmFycmF0aXZlO1xuICBsb2dnZXI6IElMb2dnZXI7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICAvKipcbiAgICogT24gcmVzdW1lLCB0aGUgcGVyLXN1YmZsb3cgc2NvcGUgY2FwdHVyZXMgZnJvbSB0aGUgY2hlY2twb2ludC5cbiAgICogS2V5ZWQgYnkgcGF0aC1wcmVmaXhlZCBgc3ViZmxvd0lkYCAobWF0Y2hlcyBgUGF1c2VTaWduYWwuc3ViZmxvd1BhdGhgKS5cbiAgICpcbiAgICogYFN1YmZsb3dFeGVjdXRvcmAgY29uc3VsdHMgdGhpcyBvbiBlbnRyeTogaWYgYSBrZXkgbWF0Y2hlcyB0aGVcbiAgICogY3VycmVudCBzdWJmbG93IGlkLCB0aGUgbmVzdGVkIHJ1bnRpbWUgaXMgc2VlZGVkIGZyb20gdGhpcyBzdGF0ZVxuICAgKiBhbmQgdGhlIGlucHV0TWFwcGVyIGlzIFNLSVBQRUQgKHRoZSBjYXB0dXJlZCBzdGF0ZSBhbHJlYWR5XG4gICAqIHJlZmxlY3RzIHBvc3QtaW5wdXQgcHJlLXBhdXNlIG1lbW9yeSkuIFRoaXMgaXMgd2hhdCBtYWtlc1xuICAgKiBjcm9zcy1leGVjdXRvciByZXN1bWUgd29yayBmb3IgcGF1c2VzIElOU0lERSBhIHN1YmZsb3cuXG4gICAqXG4gICAqIFVuZGVmaW5lZCBvbiBub3JtYWwgYHJ1bigpYCBwYXRocyDigJQgb25seSB0aGUgcmVzdW1lIHBhdGggc2V0cyBpdC5cbiAgICovXG4gIHN1YmZsb3dTdGF0ZXNGb3JSZXN1bWU/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG59XG5cbi8qKiBPcHRpb25zIGZvciBGbG93Q2hhcnRFeGVjdXRvci5ydW4oKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT3B0aW9ucyB7XG4gIC8qKiBBYm9ydFNpZ25hbCBmb3IgY29vcGVyYXRpdmUgY2FuY2VsbGF0aW9uLiAqL1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgLyoqIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiBDcmVhdGVzIGFuIGludGVybmFsIEFib3J0Q29udHJvbGxlci4gKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKipcbiAgICogUnVudGltZSBpbnB1dCBkYXRhIGZvciB0aGUgcGlwZWxpbmUuXG4gICAqIEJlY29tZXMgdGhlIHJlYWRPbmx5Q29udGV4dCBhY2Nlc3NpYmxlIHZpYSBgc2NvcGUuZ2V0QXJncygpYC5cbiAgICogU3RhZ2VzIGNhbm5vdCBvdmVyd3JpdGUgdGhlc2Uga2V5cyB3aXRoIGBzZXRWYWx1ZSgpYC5cbiAgICovXG4gIGlucHV0PzogdW5rbm93bjtcbiAgLyoqXG4gICAqIEV4ZWN1dGlvbiBlbnZpcm9ubWVudCDigJQgcmVhZC1vbmx5IGluZnJhc3RydWN0dXJlIHZhbHVlcyB0aGF0IHByb3BhZ2F0ZVxuICAgKiB0aHJvdWdoIG5lc3RlZCBleGVjdXRvcnMgKGxpa2UgYHByb2Nlc3MuZW52YCBmb3IgZmxvd2NoYXJ0cykuXG4gICAqIEFjY2Vzc2libGUgdmlhIGBzY29wZS5nZXRFbnYoKWAuIEluaGVyaXRlZCBieSBzdWJmbG93cyBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgZW52PzogRXhlY3V0aW9uRW52O1xuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIG1heGltdW0gbmVzdGVkIGBleGVjdXRlTm9kZWAgZGVwdGggZm9yIHRoaXMgcnVuLlxuICAgKiBEZWZhdWx0cyB0byBgRmxvd2NoYXJ0VHJhdmVyc2VyLk1BWF9FWEVDVVRFX0RFUFRIYCAoNTAwKS5cbiAgICpcbiAgICogRGVwdGggY291bnRzIFRSRUUgbmVzdGluZyBvbmx5IOKAlCBmb3JrIGNoaWxkcmVuLCBkZWNpZGVyL3NlbGVjdG9yIGJyYW5jaFxuICAgKiBkaXNwYXRjaCwgcmVjdXJzaXZlIGNvbXBvc2l0aW9uLiBMaW5lYXIgY2hhaW5zIGFuZCBsb29wIGl0ZXJhdGlvbnMgcnVuXG4gICAqIG9uIGEgZmxhdCB0cmFtcG9saW5lIGFuZCBuZXZlciBjb25zdW1lIGRlcHRoLCBzbyB0aGlzIHJhcmVseSBuZWVkc1xuICAgKiByYWlzaW5nLiBNdXN0IGJlID49IDEuXG4gICAqL1xuICBtYXhEZXB0aD86IG51bWJlcjtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBtYXhpbXVtIGxvb3AgaXRlcmF0aW9ucyBwZXIgbm9kZSBmb3IgdGhpcyBydW4gKHRoZVxuICAgKiBgQ29udGludWF0aW9uUmVzb2x2ZXJgIGluZmluaXRlLWxvb3AgZ3VhcmQpLiBEZWZhdWx0cyB0byAxMDAwLlxuICAgKiBUaGlzIGlzIHRoZSBiaW5kaW5nIGNvbnN0cmFpbnQgZm9yIGxvb3AtaGVhdnkgcGlwZWxpbmVzIOKAlCByYWlzZSBpdCBmb3JcbiAgICogbGVnaXRpbWF0ZWx5IGxvbmcgbG9vcHMgKGBsb29wVG9gIGNoYWlucyBydW4gd2l0aCBhIGZsYXQgc3RhY2ssIHNvIGhpZ2hcbiAgICogdmFsdWVzIGFyZSBzYWZlOyBtZW1vcnkgZm9yIHN0YXRlL25hcnJhdGl2ZSBzdGlsbCBncm93cyBwZXIgaXRlcmF0aW9uKS5cbiAgICogQWxzbyBib3VuZHMgdGhlIHJ1bi10b3RhbCBjaGFpbiBvZiBmdW5jdGlvbi1iZWFyaW5nIGR5bmFtaWMgYG5leHRgXG4gICAqIGNvbnRpbnVhdGlvbnMgKGZyZXNoIG5vZGVzIHJldHVybmVkIGZyb20gc3RhZ2VzKSDigJQgYSBydW5hd2F5IGR5bmFtaWNcbiAgICogY2hhaW4gZXJyb3JzIGluc3RlYWQgb2YgcnVubmluZyBmb3JldmVyLlxuICAgKiBQcm9wYWdhdGVzIHRvIHN1YmZsb3dzLiBNdXN0IGJlID49IDEuXG4gICAqL1xuICBtYXhJdGVyYXRpb25zPzogbnVtYmVyO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZsb3cgQ29udHJvbCBOYXJyYXRpdmUg4oCUIGNhbm9uaWNhbCBkZWZpbml0aW9ucyBsaXZlIGluIG1lbW9yeS90eXBlcy50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIHsgRmxvd0NvbnRyb2xUeXBlLCBGbG93TWVzc2FnZSB9O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bnRpbWUgU3RydWN0dXJlIE1ldGFkYXRhICh1c2VkIGJ5IFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhIHtcbiAgdHlwZTogJ3N0YWdlJyB8ICdkZWNpZGVyJyB8ICdzZWxlY3RvcicgfCAnZm9yaycgfCAnc3RyZWFtaW5nJyB8ICdzdWJmbG93JyB8ICdsb29wJztcbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICBpc1N1YmZsb3dSb290PzogYm9vbGVhbjtcbiAgc3ViZmxvd05hbWU/OiBzdHJpbmc7XG4gIGlzUGFyYWxsZWxDaGlsZD86IGJvb2xlYW47XG4gIHBhcmFsbGVsR3JvdXBJZD86IHN0cmluZztcbiAgbG9vcFRhcmdldD86IHN0cmluZztcbiAgaXNEeW5hbWljPzogYm9vbGVhbjtcbiAgaXNMb29wUmVmZXJlbmNlPzogYm9vbGVhbjtcbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTm9kZSBSZXN1bHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBOb2RlUmVzdWx0VHlwZSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgcmVzdWx0OiB1bmtub3duO1xuICBpc0Vycm9yPzogYm9vbGVhbjtcbn07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRXhlY3V0aW9uIFJlc3BvbnNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUgQnJhbmNoUmVzdWx0ID0ge1xuICByZXN1bHQ6IHN0cmluZyB8IEVycm9yO1xuICBpc0Vycm9yOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQnJhbmNoUmVzdWx0cyA9IHsgW2JyYW5jaElkOiBzdHJpbmddOiBCcmFuY2hSZXN1bHQgfTtcbmV4cG9ydCB0eXBlIFRyYXZlcnNhbFJlc3VsdCA9IEJyYW5jaFJlc3VsdHMgfCBzdHJpbmcgfCBFcnJvcjtcblxuLyoqIFJldHVybmVkIGJ5IHJ1bigpL3Jlc3VtZSgpIHdoZW4gZXhlY3V0aW9uIHBhdXNlcy4gKi9cbmV4cG9ydCB0eXBlIFBhdXNlZFJlc3VsdCA9IHtcbiAgcmVhZG9ubHkgcGF1c2VkOiB0cnVlO1xuICByZWFkb25seSBjaGVja3BvaW50OiBpbXBvcnQoJy4uL3BhdXNlL3R5cGVzLmpzJykuRmxvd2NoYXJ0Q2hlY2twb2ludDtcbn07XG5cbi8qKiBGdWxsIHJldHVybiB0eXBlIG9mIEZsb3dDaGFydEV4ZWN1dG9yLnJ1bigpIGFuZCByZXN1bWUoKS4gKi9cbmV4cG9ydCB0eXBlIEV4ZWN1dG9yUmVzdWx0ID0gVHJhdmVyc2FsUmVzdWx0IHwgUGF1c2VkUmVzdWx0O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlcmlhbGl6ZWQgUGlwZWxpbmUgU3RydWN0dXJlIChmb3IgdmlzdWFsaXphdGlvbilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRQaXBlbGluZU5vZGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU/OlxuICAgIHwgJ3N0YWdlJ1xuICAgIHwgJ2RlY2lkZXInXG4gICAgfCAnc2VsZWN0b3InXG4gICAgfCAnZm9yaydcbiAgICB8ICdzdHJlYW1pbmcnXG4gICAgfCAnc3ViZmxvdydcbiAgICB8ICdsb29wJ1xuICAgIHwgJ3VzZXInXG4gICAgfCAndG9vbCdcbiAgICB8ICdmdW5jdGlvbidcbiAgICB8ICdzZXF1ZW5jZSc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IFNlcmlhbGl6ZWRQaXBlbGluZU5vZGVbXTtcbiAgbmV4dD86IFNlcmlhbGl6ZWRQaXBlbGluZU5vZGU7XG4gIGJyYW5jaGVzPzogUmVjb3JkPHN0cmluZywgU2VyaWFsaXplZFBpcGVsaW5lTm9kZT47XG4gIGhhc0RlY2lkZXI/OiBib29sZWFuO1xuICBoYXNTZWxlY3Rvcj86IGJvb2xlYW47XG4gIGhhc1N1YnRyZWU/OiBib29sZWFuO1xuICBpc1N0cmVhbWluZz86IGJvb2xlYW47XG4gIHN0cmVhbUlkPzogc3RyaW5nO1xuICBpc1N1YmZsb3dSb290PzogYm9vbGVhbjtcbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICBzdWJmbG93TmFtZT86IHN0cmluZztcbiAgbG9vcFRhcmdldD86IHN0cmluZztcbiAgaXNMb29wUmVmZXJlbmNlPzogYm9vbGVhbjtcbiAgaXNQYXJhbGxlbENoaWxkPzogYm9vbGVhbjtcbiAgcGFyYWxsZWxHcm91cElkPzogc3RyaW5nO1xuICBpc0R5bmFtaWM/OiBib29sZWFuO1xuICAvKiogV2hlbiB0cnVlLCB0aGlzIHN0YWdlIGNhbiBwYXVzZSBleGVjdXRpb24gKFBhdXNhYmxlSGFuZGxlciBwYXR0ZXJuKS4gKi9cbiAgaXNQYXVzYWJsZT86IGJvb2xlYW47XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRmxvd0NoYXJ0IGlzIGRlZmluZWQgaW4gYC4uL2J1aWxkZXIvdHlwZXMudHNgLiBUaGUgZW5naW5lIGxheWVyIGNvbnN1bWVzIGl0XG4vLyB2aWEgaW1wb3J0IGZyb20gdGhlcmUuIEEgZHVwbGljYXRlIG1pbmltYWwgZGVmaW5pdGlvbiBwcmV2aW91c2x5IGxpdmVkIGhlcmVcbi8vIGFuZCBjYXVzZWQgVFMgY29uZnVzaW9uIGF0IGNvbXBvc2l0aW9uIGJvdW5kYXJpZXMgKENvbXBvc2FibGVSdW5uZXIgdnNcbi8vIGFkZFN1YkZsb3dDaGFydCBwYXJhbWV0ZXIpLiBTaW5nbGUgc291cmNlIG9mIHRydXRoIG5vdyBsaXZlcyBpbiBidWlsZGVyLy5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogQWxpYXMgZm9yIFNlcmlhbGl6ZWRQaXBlbGluZU5vZGUgdXNlZCBhcyBmdWxsIHN0cnVjdHVyZSAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlID0gU2VyaWFsaXplZFBpcGVsaW5lTm9kZSAmIHtcbiAgYnJhbmNoSWRzPzogc3RyaW5nW107XG4gIHN1YmZsb3dTdHJ1Y3R1cmU/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGl0ZXJhdGlvbkNvdW50PzogbnVtYmVyO1xufTtcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2VuZ2luZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQWFILE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBZTlFLG9DQUFvQztBQUNwQyx3REFBd0Q7QUFDeEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFZO0lBQ3BDLElBQUksRUFBRSxDQUFDLE9BQWEsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDdkUsR0FBRyxFQUFFLENBQUMsT0FBYSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztJQUNyRSxLQUFLLEVBQUUsQ0FBQyxPQUFhLEVBQUUsR0FBRyxJQUFXLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0lBQ3pFLEtBQUssRUFBRSxDQUFDLE9BQWEsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFDekUsSUFBSSxFQUFFLENBQUMsT0FBYSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQztDQUN4RSxDQUFDO0FBbURGLDhFQUE4RTtBQUM5RSxVQUFVO0FBQ1YsOEVBQThFO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN4Qix3RkFBd0Y7SUFDeEYsbUNBQWlCLENBQUE7SUFDakIseUVBQXlFO0lBQ3pFLHFDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogdHlwZXMudHMg4oCUIEFsbCB0eXBlIGRlZmluaXRpb25zIGZvciB0aGUgZW5naW5lIGxpYnJhcnkuXG4gKlxuICogQ2VudHJhbGl6ZXMgdHlwZSBkZWZpbml0aW9ucyB0byBhdm9pZCBjaXJjdWxhciBkZXBlbmRlbmNpZXMuXG4gKiBFdmVyeSBoYW5kbGVyIHJlY2VpdmVzIEhhbmRsZXJEZXBzICh0aGUgREkgYmFnKSBpbnN0ZWFkIG9mIGltcG9ydGluZyB0aGUgdHJhdmVyc2VyLlxuICovXG5cbmltcG9ydCB0eXBlIHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7IEZsb3dDb250cm9sVHlwZSwgRmxvd01lc3NhZ2UgfSBmcm9tICcuLi9tZW1vcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTY29wZVByb3RlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vc2NvcGUvcHJvdGVjdGlvbi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IERlY2lkZXIsIFNlbGVjdG9yLCBTdGFnZU5vZGUgfSBmcm9tICcuL2dyYXBoL1N0YWdlTm9kZS5qcyc7XG5pbXBvcnQgdHlwZSB7IElDb250cm9sRmxvd05hcnJhdGl2ZSB9IGZyb20gJy4vbmFycmF0aXZlL3R5cGVzLmpzJztcblxuLy8gUmUtZXhwb3J0IFN0YWdlTm9kZSB0eXBlcyBmb3IgY29udmVuaWVuY2VcbmV4cG9ydCB0eXBlIHsgRGVjaWRlciwgU2VsZWN0b3IsIFN0YWdlTm9kZSB9IGZyb20gJy4vZ3JhcGgvU3RhZ2VOb2RlLmpzJztcblxuLy8gUmUtZXhwb3J0IHBhdXNlIHR5cGVzIGZyb20gcGF1c2UvIGxpYnJhcnlcbmV4cG9ydCB0eXBlIHsgRmxvd2NoYXJ0Q2hlY2twb2ludCwgUGF1c2FibGVIYW5kbGVyLCBQYXVzZVJlc3VsdCB9IGZyb20gJy4uL3BhdXNlL2luZGV4LmpzJztcbmV4cG9ydCB7IGlzUGF1c2VSZXN1bHQsIGlzUGF1c2VTaWduYWwsIFBhdXNlU2lnbmFsIH0gZnJvbSAnLi4vcGF1c2UvaW5kZXguanMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIExvZ2dlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKiBNaW5pbWFsIGxvZ2dpbmcgY29udHJhY3QuIE1pcnJvcnMgQ29uc29sZSBBUEkgc3Vic2V0LiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTG9nZ2VyIHtcbiAgaW5mbyhtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkO1xuICBsb2cobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZDtcbiAgZGVidWcobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZDtcbiAgZXJyb3IobWVzc2FnZT86IGFueSwgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKTogdm9pZDtcbiAgd2FybihtZXNzYWdlPzogYW55LCAuLi5vcHRpb25hbFBhcmFtczogYW55W10pOiB2b2lkO1xufVxuXG4vKiogRGVmYXVsdCBjb25zb2xlLWJhc2VkIGxvZ2dlci4gKi9cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0tIHRyaXZpYWwgY29uc29sZSBkZWxlZ2F0aW9uICovXG5leHBvcnQgY29uc3QgZGVmYXVsdExvZ2dlcjogSUxvZ2dlciA9IHtcbiAgaW5mbzogKG1lc3NhZ2U/OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBjb25zb2xlLmluZm8obWVzc2FnZSwgLi4uYXJncyksXG4gIGxvZzogKG1lc3NhZ2U/OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBjb25zb2xlLmxvZyhtZXNzYWdlLCAuLi5hcmdzKSxcbiAgZGVidWc6IChtZXNzYWdlPzogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gY29uc29sZS5kZWJ1ZyhtZXNzYWdlLCAuLi5hcmdzKSxcbiAgZXJyb3I6IChtZXNzYWdlPzogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gY29uc29sZS5lcnJvcihtZXNzYWdlLCAuLi5hcmdzKSxcbiAgd2FybjogKG1lc3NhZ2U/OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiBjb25zb2xlLndhcm4obWVzc2FnZSwgLi4uYXJncyksXG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFN0YWdlIEZ1bmN0aW9uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqIENhbGxiYWNrIHRoYXQgcmVjZWl2ZXMgdG9rZW5zIGR1cmluZyBzdHJlYW1pbmcuICovXG5leHBvcnQgdHlwZSBTdHJlYW1DYWxsYmFjayA9ICh0b2tlbjogc3RyaW5nKSA9PiB2b2lkO1xuXG4vKipcbiAqIFRoZSBmdW5jdGlvbiBzaWduYXR1cmUgZm9yIHN0YWdlIGhhbmRsZXJzLlxuICogLSBUT3V0OiByZXR1cm4gdHlwZSBwcm9kdWNlZCBieSB0aGUgc3RhZ2VcbiAqIC0gVFNjb3BlOiB0aGUgc2NvcGUgb2JqZWN0IHBhc3NlZCB0byB0aGUgc3RhZ2VcbiAqIC0gT3B0aW9uYWwgM3JkIHBhcmFtZXRlciBgc3RyZWFtQ2FsbGJhY2tgIGluamVjdGVkIGZvciBzdHJlYW1pbmcgc3RhZ2VzLlxuICovXG5leHBvcnQgdHlwZSBTdGFnZUZ1bmN0aW9uPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4gPSAoXG4gIHNjb3BlOiBUU2NvcGUsXG4gIGJyZWFrUGlwZWxpbmU6ICgpID0+IHZvaWQsXG4gIHN0cmVhbUNhbGxiYWNrPzogU3RyZWFtQ2FsbGJhY2ssXG4pID0+IFByb21pc2U8VE91dCB8IHZvaWQ+IHwgVE91dCB8IHZvaWQ7XG5cbi8qKlxuICogU3RhZ2UgZnVuY3Rpb24gZm9yIHBhdXNhYmxlIHN0YWdlcyDigJQgcmV0dXJuIHZhbHVlIGlzIHRoZSBwYXVzZSBkYXRhIChhbnkgdHlwZSkuXG4gKiBSZXR1cm4gbm9uLXZvaWQgdG8gcGF1c2UsIHJldHVybiB2b2lkIHRvIGNvbnRpbnVlIG5vcm1hbGx5LlxuICovXG5leHBvcnQgdHlwZSBQYXVzYWJsZVN0YWdlRnVuY3Rpb248VFNjb3BlID0gYW55PiA9IChcbiAgc2NvcGU6IFRTY29wZSxcbiAgYnJlYWtQaXBlbGluZTogKCkgPT4gdm9pZCxcbikgPT4gUHJvbWlzZTx1bmtub3duPiB8IHVua25vd247XG5cbi8qKiBGYWN0b3J5IHRoYXQgY3JlYXRlcyBhIHNjb3BlIGluc3RhbmNlIGZvciBlYWNoIHN0YWdlLiAqL1xuZXhwb3J0IHR5cGUgU2NvcGVGYWN0b3J5PFRTY29wZSA9IGFueT4gPSAoXG4gIGNvbnRleHQ6IFN0YWdlQ29udGV4dCxcbiAgc3RhZ2VOYW1lOiBzdHJpbmcsXG4gIHJlYWRPbmx5Q29udGV4dD86IHVua25vd24sXG4gIGV4ZWN1dGlvbkVudj86IEV4ZWN1dGlvbkVudixcbikgPT4gVFNjb3BlO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFN0cmVhbWluZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIFN0cmVhbVRva2VuSGFuZGxlciA9IChzdHJlYW1JZDogc3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgU3RyZWFtTGlmZWN5Y2xlSGFuZGxlciA9IChzdHJlYW1JZDogc3RyaW5nLCBmdWxsVGV4dD86IHN0cmluZykgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1IYW5kbGVycyB7XG4gIG9uVG9rZW4/OiBTdHJlYW1Ub2tlbkhhbmRsZXI7XG4gIG9uU3RhcnQ/OiBTdHJlYW1MaWZlY3ljbGVIYW5kbGVyO1xuICBvbkVuZD86IFN0cmVhbUxpZmVjeWNsZUhhbmRsZXI7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3ViZmxvd1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogQ29udHJvbHMgaG93IGFycmF5IHZhbHVlcyBmcm9tIG91dHB1dE1hcHBlciBhcmUgbWVyZ2VkIGludG8gcGFyZW50IHNjb3BlLlxuICovXG5leHBvcnQgZW51bSBBcnJheU1lcmdlTW9kZSB7XG4gIC8qKiBBcHBlbmQgc3ViZmxvdyBvdXRwdXQgdG8gZXhpc3RpbmcgcGFyZW50IGFycmF5OiBbLi4uZXhpc3RpbmcsIC4uLnZhbHVlXS4gRGVmYXVsdC4gKi9cbiAgQ29uY2F0ID0gJ2NvbmNhdCcsXG4gIC8qKiBPdmVyd3JpdGUgcGFyZW50IGFycmF5IHdpdGggc3ViZmxvdyBvdXRwdXQuIFVzZSBmb3IgRHluYW1pYyBsb29wcy4gKi9cbiAgUmVwbGFjZSA9ICdyZXBsYWNlJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93TW91bnRPcHRpb25zPFRQYXJlbnRTY29wZSA9IGFueSwgVFN1YmZsb3dJbnB1dCA9IGFueSwgVFN1YmZsb3dPdXRwdXQgPSBhbnk+IHtcbiAgaW5wdXRNYXBwZXI/OiAocGFyZW50U2NvcGU6IFRQYXJlbnRTY29wZSkgPT4gVFN1YmZsb3dJbnB1dDtcbiAgLyoqXG4gICAqIE1hcHMgc3ViZmxvdyBvdXRwdXQgYmFjayBpbnRvIHBhcmVudCBzY29wZS5cbiAgICpcbiAgICogKipBcnJheSBtZXJnZSBiZWhhdmlvcioqIGlzIGNvbnRyb2xsZWQgYnkgYGFycmF5TWVyZ2VgOlxuICAgKiAtIGAnY29uY2F0J2AgKGRlZmF1bHQpOiBgWy4uLmV4aXN0aW5nLCAuLi52YWx1ZV1gIOKAlCByZXR1cm4gb25seSAqKmRlbHRhKiogaXRlbXNcbiAgICogLSBgJ3JlcGxhY2UnYDogb3ZlcndyaXRlcyB0aGUgcGFyZW50IHZhbHVlIOKAlCByZXR1cm4gdGhlIGZ1bGwgYXJyYXlcbiAgICpcbiAgICogU2NhbGFyIHZhbHVlcyBhcmUgYWx3YXlzIHJlcGxhY2VkIHJlZ2FyZGxlc3Mgb2YgYGFycmF5TWVyZ2VgLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIERlbHRhIG1vZGUgKGRlZmF1bHQpIOKAlCByZXR1cm4gb25seSBuZXcgaXRlbXMsIGNvbmNhdCBhcHBlbmRzXG4gICAqIG91dHB1dE1hcHBlcjogKHNmKSA9PiAoeyBtZXNzYWdlczogc2YubmV3TWVzc2FnZXMgfSlcbiAgICpcbiAgICogLy8gUmVwbGFjZSBtb2RlIOKAlCByZXR1cm4gZnVsbCBhcnJheSwgcGFyZW50IHZhbHVlIGlzIG92ZXJ3cml0dGVuXG4gICAqIC8vIFVzZWZ1bCBpbiBEeW5hbWljIGxvb3BzIHdoZXJlIHRoZSBzdWJmbG93IHJlY29tcHV0ZXMgdGhlIGZ1bGwgdmFsdWUgZWFjaCBpdGVyYXRpb25cbiAgICogb3V0cHV0TWFwcGVyOiAoc2YpID0+ICh7IHRvb2xEZXNjcmlwdGlvbnM6IHNmLnRvb2xEZXNjcmlwdGlvbnMgfSksXG4gICAqIGFycmF5TWVyZ2U6IEFycmF5TWVyZ2VNb2RlLlJlcGxhY2UsXG4gICAqXG4gICAqIC8vIFNjYWxhcnMgYXJlIGZpbmUgaW4gYm90aCBtb2RlcyDigJQgYWx3YXlzIHJlcGxhY2VkXG4gICAqIG91dHB1dE1hcHBlcjogKHNmKSA9PiAoeyBzdGF0dXM6IHNmLnJlc3VsdCwgY291bnQ6IHNmLnRvdGFsIH0pXG4gICAqIGBgYFxuICAgKi9cbiAgb3V0cHV0TWFwcGVyPzogKHN1YmZsb3dPdXRwdXQ6IFRTdWJmbG93T3V0cHV0LCBwYXJlbnRTY29wZTogVFBhcmVudFNjb3BlKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgLyoqXG4gICAqIENvbnRyb2xzIGhvdyBhcnJheSB2YWx1ZXMgZnJvbSBvdXRwdXRNYXBwZXIgYXJlIG1lcmdlZCBpbnRvIHBhcmVudCBzY29wZS5cbiAgICogQXBwbGllcyBvbmx5IHRvIHRvcC1sZXZlbCBhcnJheSBrZXlzLiBOZXN0ZWQgYXJyYXlzIGluc2lkZSBvYmplY3RzXG4gICAqIGFsd2F5cyB1c2UgYXBwZW5kIChhcHBlbmRUb0FycmF5KSByZWdhcmRsZXNzIG9mIHRoaXMgc2V0dGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgQXJyYXlNZXJnZU1vZGUuQ29uY2F0XG4gICAqL1xuICBhcnJheU1lcmdlPzogQXJyYXlNZXJnZU1vZGU7XG5cbiAgLyoqXG4gICAqIFNUUlVDVFVSRS1PTkxZOiB0aGUgZG93bnN0cmVhbSBzdGFnZSBpZCB0aGlzIGJyYW5jaCdzIGNvbnZlcmdlbmNlIGVkZ2VcbiAgICogcG9pbnRzIHRvLCBvdmVycmlkaW5nIHRoZSBkZWZhdWx0IFwiY29udmVyZ2UgYXQgdGhlIG5leHQgbGluZWFyIHN0YWdlLlwiXG4gICAqXG4gICAqIFdoZW4gYSBmb3JrL3NlbGVjdG9yL2RlY2lkZXIgYnJhbmNoIGNhcnJpZXMgYGNvbnZlcmdlQXRgLCBpdHMgdmlzdWFsaXplZFxuICAgKiBgbmV4dGAgZWRnZSBpcyBmaXJlZCB0byB0aGUgbmFtZWQgc3RhZ2UgaW5zdGVhZCBvZiB0byB0aGUgc2hhcmVkXG4gICAqIGNvbnZlcmdlbmNlIG5vZGUgaXRzIHNpYmxpbmdzIHVzZS4gVGhpcyBleHByZXNzZXMgYW4gdW5lcXVhbC1kZXB0aCBtZXJnZVxuICAgKiDigJQgZS5nLiBhIGB0b29sc2Agc2xvdCB0aGF0IGJ5cGFzc2VzIHRoZSBgbWVzc2FnZUFQSWAgYXNzZW1ibHkgbm9kZSBhbmRcbiAgICogcGFpcnMgd2l0aCBpdHMgb3V0cHV0IGF0IGBjYWxsLWxsbWAgKHNvIGBjYWxsLWxsbWAgcmVhZHMgYXMgYSAyLXBhcmVudFxuICAgKiBtZXJnZSksIGZhaXRoZnVsIHRvIHRoZSBBbnRocm9waWMgd2lyZSBwcm90b2NvbCAoc3lzdGVtK21lc3NhZ2VzID0gdGhlXG4gICAqIG1lc3NhZ2UgcGF5bG9hZDsgdG9vbHMgPSBhIHNlcGFyYXRlIHRvcC1sZXZlbCBmaWVsZCkuXG4gICAqXG4gICAqICoqVGhpcyBhZmZlY3RzIHRoZSBTVFJVQ1RVUkUvdG9wb2xvZ3kgZ3JhcGggb25seSoqIOKAlCB0aGUgcnVudGltZSBpc1xuICAgKiB1bmNoYW5nZWQgKHRoZSBicmFuY2gncyBvdXRwdXRzIHJpZGUgc2hhcmVkIHNjb3BlOyB0aGUgbmFtZWQgdGFyZ2V0IHJlYWRzXG4gICAqIHRoZW0gd2hlbiBpdCBydW5zKS4gSXQgZG9lcyBOT1QgaW50cm9kdWNlIGEgam9pbiBiYXJyaWVyLiBUaGUgdGFyZ2V0IGlzIGFcbiAgICogRk9SV0FSRCBzdGFnZSAoYWRkZWQgbGF0ZXIgaW4gdGhlIGNoYWluKSwgc28gaXQgaXMgbm90IHZhbGlkYXRlZCBhdFxuICAgKiBicmFuY2gtZGVjbGFyYXRpb24gdGltZS5cbiAgICovXG4gIGNvbnZlcmdlQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCBhbiBpbm5lciBgc2NvcGUuJGJyZWFrKHJlYXNvbilgIGNhbGwgaW5zaWRlIHRoaXMgc3ViZmxvd1xuICAgKiBwcm9wYWdhdGVzIHVwIHRvIHRoZSBwYXJlbnQg4oCUIGkuZS4sIHRoZSBwYXJlbnQncyBgYnJlYWtGbGFnYCBpcyBzZXRcbiAgICogYWZ0ZXIgdGhlIHN1YmZsb3cgZXhpdHMsIHRlcm1pbmF0aW5nIHRoZSBwYXJlbnQncyBvdXRlciBsb29wIHRvby5cbiAgICpcbiAgICogKipEZWZhdWx0OiBgZmFsc2VgKiogKGN1cnJlbnQgYmVoYXZpb3VyIOKAlCBpbm5lciBicmVhayBzdG9wcyBvbmx5IHRoZVxuICAgKiBzdWJmbG93OyBwYXJlbnQgY29udGludWVzKS5cbiAgICpcbiAgICogIyMgV2hlbiB0byB1c2VcbiAgICpcbiAgICogU2V0IGBwcm9wYWdhdGVCcmVhazogdHJ1ZWAgb24gc3ViZmxvdyBtb3VudHMgdGhhdCByZXByZXNlbnRcbiAgICogKip0ZXJtaW5hbCoqIGJyYW5jaGVzIOKAlCBcImlmIHRoaXMgc3ViZmxvdyBmaXJlcywgdGhlIG91dGVyIGxvb3AgaXNcbiAgICogZG9uZVwiLiBFeGFtcGxlczpcbiAgICpcbiAgICogLSBBIGh1bWFuLXJldmlldyBydW5uZXIgdGhhdCB0YWtlcyBvdmVyIGZyb20gYW4gYWdlbnQncyB0b29sLWNhbGxpbmdcbiAgICogICBsb29wIGFuZCBwcm9kdWNlcyB0aGUgZmluYWwgcmVzcG9uc2UuXG4gICAqIC0gQSBzYWZldHktZ2F0ZSBzdWJmbG93IHRoYXQgaGFsdHMgdGhlIG91dGVyIHdvcmtmbG93IHdoZW4gYSBwb2xpY3lcbiAgICogICB2aW9sYXRpb24gaXMgZGV0ZWN0ZWQuXG4gICAqIC0gQW4gZXJyb3ItcmVjb3Zlcnkgc3ViZmxvdyB0aGF0IHJlc3RvcmVzIHN0YXRlIGFuZCB0aGVuIHRlcm1pbmF0ZXMuXG4gICAqXG4gICAqICMjIFNlbWFudGljc1xuICAgKlxuICAgKiAxLiBJbnNpZGUgdGhlIHN1YmZsb3csIGEgc3RhZ2UgY2FsbHMgYHNjb3BlLiRicmVhayhyZWFzb24pYC5cbiAgICogMi4gVGhlIHN1YmZsb3cncyBvd24gZXhlY3V0aW9uIHN0b3BzIChub3JtYWwgYCRicmVha2AgYmVoYXZpb3VyKS5cbiAgICogMy4gYFN1YmZsb3dFeGVjdXRvcmAgaW5zcGVjdHMgdGhlIHN1YmZsb3cncyBleGl0IHN0YXRlLiBJZlxuICAgKiAgICBgcHJvcGFnYXRlQnJlYWsgPT09IHRydWVgIEFORCB0aGUgaW5uZXIgYnJlYWsgZmlyZWQsIGl0IGZvcndhcmRzXG4gICAqICAgIHRoZSBicmVhayAoYW5kIGl0cyByZWFzb24pIHRvIHRoZSBwYXJlbnQncyBgYnJlYWtGbGFnYC5cbiAgICogNC4gVGhlIHBhcmVudCB0cmF2ZXJzZXIgc2VlcyBgc2hvdWxkQnJlYWtgIG9uIGl0cyBuZXh0IHN0ZXAgYW5kIGV4aXRzLlxuICAgKiA1LiBBIGBGbG93UmVjb3JkZXIub25CcmVha2AgZXZlbnQgZmlyZXMgYXQgdGhlIHBhcmVudC1tb3VudCBsZXZlbCB3aXRoXG4gICAqICAgIGBwcm9wYWdhdGVkRnJvbVN1YmZsb3dgID0gdGhlIHN1YmZsb3cncyBpZCBhbmQgdGhlIGlubmVyIHJlYXNvbi5cbiAgICpcbiAgICogIyMgUGFyYWxsZWwvZmFuLW91dFxuICAgKlxuICAgKiBGb2xsb3dzIHRoZSBleGlzdGluZyBsaWJyYXJ5IHJ1bGUgaW4gYENoaWxkcmVuRXhlY3V0b3JgOiB0aGUgcGFyZW50XG4gICAqIGJyZWFrcyBvbmx5IHdoZW4gKipldmVyeSoqIGNoaWxkIG9mIGEgZm9yayBicm9rZS4gQSBzaW5nbGVcbiAgICogYHByb3BhZ2F0ZUJyZWFrOiB0cnVlYCBzdWJmbG93IGNvbnRyaWJ1dGluZyBpdHMgYnJlYWsgdG8gdGhlIGNvdW50XG4gICAqIGRvZXMgbm90IG9uIGl0cyBvd24gdGVybWluYXRlIHRoZSBwYXJlbnQgZmFuLW91dC5cbiAgICpcbiAgICogIyMgb3V0cHV0TWFwcGVyIHN0aWxsIHJ1bnNcbiAgICpcbiAgICogVGhlIHN1YmZsb3cncyBgb3V0cHV0TWFwcGVyYCAoaWYgc3VwcGxpZWQpIEFMV0FZUyBydW5zIGJlZm9yZSB0aGVcbiAgICogYnJlYWsgcHJvcGFnYXRlcywgc28gdGhlIHN1YmZsb3cncyBwYXJ0aWFsIHN0YXRlIGlzIHN0aWxsIHdyaXR0ZW4gdG9cbiAgICogdGhlIHBhcmVudCBzY29wZS4gVGhpcyBpcyBpbnRlbnRpb25hbCDigJQgdGhlIHR5cGljYWwgdXNlIGNhc2UgaXMgYW5cbiAgICogXCJlc2NhbGF0aW9uXCIgc3ViZmxvdyB3aG9zZSBvdXRwdXQgSVMgdGhlIGZpbmFsIGFuc3dlciB0aGF0IG5lZWRzIHRvXG4gICAqIGxhbmQgaW4gdGhlIHBhcmVudCBzY29wZSBiZWZvcmUgdGhlIG91dGVyIGxvb3AgdGVybWluYXRlcy4gSWYgeW91XG4gICAqIHdhbnQgdG8gc3VwcHJlc3Mgb3V0cHV0IG1hcHBpbmcgb24gYnJlYWssIGNoZWNrIHRoZSBicmVhayBzdGF0ZVxuICAgKiBpbnNpZGUgeW91ciBgb3V0cHV0TWFwcGVyYCBhbmQgcmV0dXJuIGB7fWAgZWFybHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBwcm9wYWdhdGVCcmVhaz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3ViZmxvd1Jlc3VsdCB7XG4gIHN1YmZsb3dJZDogc3RyaW5nO1xuICBzdWJmbG93TmFtZTogc3RyaW5nO1xuICB0cmVlQ29udGV4dDoge1xuICAgIGdsb2JhbENvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIHN0YWdlQ29udGV4dHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIGhpc3Rvcnk6IHVua25vd25bXTtcbiAgfTtcbiAgcGFyZW50U3RhZ2VJZDogc3RyaW5nO1xuICBwaXBlbGluZVN0cnVjdHVyZT86IHVua25vd247XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gU3ViZmxvdyBUcmF2ZXJzZXIgRmFjdG9yeVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8qKlxuICogU3ViZmxvd1RyYXZlcnNlckZhY3Rvcnkg4oCUIENyZWF0ZXMgYSBGbG93Y2hhcnRUcmF2ZXJzZXIgZm9yIHN1YmZsb3cgZXhlY3V0aW9uLlxuICpcbiAqIEluamVjdGVkIGludG8gU3ViZmxvd0V4ZWN1dG9yIHRvIGJyZWFrIHRoZSBjaXJjdWxhciBkZXBlbmRlbmN5OlxuICogRmxvd2NoYXJ0VHJhdmVyc2VyIOKGkiBTdWJmbG93RXhlY3V0b3Ig4oaSIEZsb3djaGFydFRyYXZlcnNlci5cbiAqXG4gKiBUaGUgZmFjdG9yeSBjYXB0dXJlcyBwYXJlbnQgdHJhdmVyc2VyIGNvbmZpZyAoc3RhZ2VNYXAsIHNjb3BlRmFjdG9yeSwgbmFycmF0aXZlLCBldGMuKVxuICogaW4gYSBjbG9zdXJlLiBTdWJmbG93RXhlY3V0b3IgY2FsbHMgaXQgd2l0aCBzdWJmbG93LXNwZWNpZmljIG92ZXJyaWRlcyAocm9vdCwgcnVudGltZSwgaW5wdXQpLlxuICogVGhlIHJldHVybmVkIHRyYXZlcnNlciB1c2VzIHRoZSBTQU1FIDctcGhhc2UgYWxnb3JpdGhtIGFzIHRoZSB0b3AtbGV2ZWwgdHJhdmVyc2VyLFxuICogc28gZGVjaWRlcnMsIHNlbGVjdG9ycywgbG9vcHMsIGxhenkgc3ViZmxvd3MsIGFuZCBhYm9ydCBzaWduYWxzIGFsbCB3b3JrIGluc2lkZSBzdWJmbG93cy5cbiAqL1xuZXhwb3J0IHR5cGUgU3ViZmxvd1RyYXZlcnNlckZhY3Rvcnk8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiA9IChvcHRpb25zOiB7XG4gIC8qKiBSb290IG5vZGUgb2YgdGhlIHN1YmZsb3cgKHdpdGggaXNTdWJmbG93Um9vdCBzdHJpcHBlZCkuICovXG4gIHJvb3Q6IFN0YWdlTm9kZTxUT3V0LCBUU2NvcGU+O1xuICAvKiogSXNvbGF0ZWQgZXhlY3V0aW9uIHJ1bnRpbWUgZm9yIHRoZSBzdWJmbG93LiAqL1xuICBleGVjdXRpb25SdW50aW1lOiBJRXhlY3V0aW9uUnVudGltZTtcbiAgLyoqIE1hcHBlZCBpbnB1dCBmcm9tIHBhcmVudCBzY29wZSAoYmVjb21lcyByZWFkT25seUNvbnRleHQgZm9yIHN0YWdlcykuICovXG4gIHJlYWRPbmx5Q29udGV4dD86IHVua25vd247XG4gIC8qKiBTdWJmbG93IGlkZW50aWZpZXIg4oCUIHVzZWQgYXMgYnJhbmNoUGF0aCBmb3IgbmFycmF0aXZlIGNvbnRleHQuICovXG4gIHN1YmZsb3dJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFJGQy0wMDMgRDE6IHJ1bnRpbWVTdGFnZUlkIG9mIHRoZSBzdWJmbG93IE1PVU5UIHN0YWdlIGluIHRoZSBwYXJlbnRcbiAgICogdHJhdmVyc2VyLiBCZWNvbWVzIHRoZSBgcGFyZW50UnVudGltZVN0YWdlSWRgIGZhbGxiYWNrIGZvciB0aGUgc3ViZmxvdydzXG4gICAqIHJvb3Qgc3RhZ2Ugc28gcnVudGltZSBhbmNlc3RvciBjaGFpbnMgY3Jvc3Mgc3ViZmxvdyBib3VuZGFyaWVzLlxuICAgKi9cbiAgcGFyZW50TW91bnRSdW50aW1lU3RhZ2VJZD86IHN0cmluZztcbn0pID0+IFN1YmZsb3dUcmF2ZXJzZXJIYW5kbGU8VE91dCwgVFNjb3BlPjtcblxuLyoqXG4gKiBIYW5kbGUgcmV0dXJuZWQgYnkgU3ViZmxvd1RyYXZlcnNlckZhY3RvcnkuXG4gKiBQcm92aWRlcyBleGVjdXRlKCkgKyBhY2Nlc3MgdG8gbmVzdGVkIHN1YmZsb3cgcmVzdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdWJmbG93VHJhdmVyc2VySGFuZGxlPFRPdXQgPSBhbnksIFRTY29wZSA9IGFueT4ge1xuICAvKiogRXhlY3V0ZSB0aGUgc3ViZmxvdydzIGdyYXBoIHVzaW5nIHRoZSBmdWxsIDctcGhhc2UgdHJhdmVyc2FsIGFsZ29yaXRobS4gKi9cbiAgZXhlY3V0ZSgpOiBQcm9taXNlPFRyYXZlcnNhbFJlc3VsdD47XG4gIC8qKiBDb2xsZWN0IG5lc3RlZCBzdWJmbG93IHJlc3VsdHMgKGZyb20gc3ViZmxvd3MgbW91bnRlZCBpbnNpZGUgdGhpcyBzdWJmbG93KS4gKi9cbiAgZ2V0U3ViZmxvd1Jlc3VsdHMoKTogTWFwPHN0cmluZywgU3ViZmxvd1Jlc3VsdD47XG4gIC8qKlxuICAgKiBGaW5hbCBicmVhayBzdGF0ZSBvZiB0aGUgc3ViZmxvdyBhZnRlciBgZXhlY3V0ZSgpYCByZXR1cm5zLlxuICAgKlxuICAgKiAgIC0gYHNob3VsZEJyZWFrOiB0cnVlYCAg4oaSIGEgc3RhZ2UgaW5zaWRlIHRoZSBzdWJmbG93IGNhbGxlZFxuICAgKiAgICAgYHNjb3BlLiRicmVhayhyZWFzb24pYCwgc3RvcHBpbmcgdGhlIHN1YmZsb3cncyBvd24gdHJhdmVyc2FsLlxuICAgKiAgIC0gYHJlYXNvbmAgICAgICAgICAgICAg4oaSIHRoZSBvcHRpb25hbCBzdHJpbmcgcGFzc2VkIHRvIGAkYnJlYWtgLlxuICAgKlxuICAgKiBVc2VkIGJ5IGBTdWJmbG93RXhlY3V0b3JgIHRvIGltcGxlbWVudCBgU3ViZmxvd01vdW50T3B0aW9ucy5wcm9wYWdhdGVCcmVha2A6XG4gICAqIGlmIHRoZSBtb3VudCBvcHRzIGluIEFORCB0aGUgc3ViZmxvdyBicm9rZSwgdGhlIHBhcmVudCdzIGJyZWFrIGZsYWcgaXNcbiAgICogZm9yd2FyZGVkLlxuICAgKi9cbiAgZ2V0QnJlYWtTdGF0ZSgpOiB7IHNob3VsZEJyZWFrOiBib29sZWFuOyByZWFzb24/OiBzdHJpbmcgfTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGVjdXRpb24gUnVudGltZSBJbnRlcmZhY2Vcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIElFeGVjdXRpb25SdW50aW1lIOKAlCBJbnRlcmZhY2UgZm9yIHRoZSBydW50aW1lIGVudmlyb25tZW50LlxuICpcbiAqIERlZmluZXMgdGhlIGNvbnRyYWN0IHRoYXQgZW5naW5lIGhhbmRsZXJzIG5lZWQgZnJvbSB0aGUgcnVubmVyIGxheWVyLFxuICogYXZvaWRpbmcgY2lyY3VsYXIgaW1wb3J0cyBiZXR3ZWVuIGVuZ2luZS8gYW5kIHJ1bm5lci8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV4ZWN1dGlvblJ1bnRpbWUge1xuICBnbG9iYWxTdG9yZTogeyBnZXRTdGF0ZSgpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9O1xuICByb290U3RhZ2VDb250ZXh0OiBTdGFnZUNvbnRleHQ7XG4gIGV4ZWN1dGlvbkhpc3Rvcnk6IHsgbGlzdCgpOiB1bmtub3duW10gfTtcbiAgZ2V0U25hcHNob3Qob3B0aW9ucz86IHsgcmVkYWN0PzogYm9vbGVhbiB9KToge1xuICAgIHNoYXJlZFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgICBleGVjdXRpb25UcmVlOiB1bmtub3duO1xuICAgIGNvbW1pdExvZzogdW5rbm93bltdO1xuICAgIC8qKiBEdWFsLWtleWVkIGJ5IHN1YmZsb3cgcGF0aCAobGFzdCBpdGVyYXRpb24pIEFORCBwZXItZXhlY3V0aW9uIG1vdW50IHJ1bnRpbWVTdGFnZUlkXG4gICAgICogIChlYWNoIGl0ZXJhdGlvbikg4oCUIHNlZSBSdW50aW1lU25hcHNob3Quc3ViZmxvd1Jlc3VsdHMgLyBzdWJmbG93LWNvbW1pdC12aXNpYmlsaXR5LiAqL1xuICAgIHN1YmZsb3dSZXN1bHRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgcmVjb3JkZXJzPzogQXJyYXk8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGRhdGE6IHVua25vd24gfT47XG4gIH07XG4gIHNldFJvb3RPYmplY3QocGF0aDogc3RyaW5nW10sIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQ7XG4gIGdldFBpcGVsaW5lcygpOiBzdHJpbmdbXTtcbn1cblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBFeGVjdXRpb24gRW52aXJvbm1lbnQg4oCUIHJlYWQtb25seSwgcHJvcGFnYXRlcyB0aHJvdWdoIG5lc3RlZCBleGVjdXRvcnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKipcbiAqIEV4ZWN1dGlvbkVudiDigJQgaW5mcmFzdHJ1Y3R1cmUgdmFsdWVzIHRoYXQgcHJvcGFnYXRlIHRocm91Z2ggbmVzdGVkIGV4ZWN1dG9ycy5cbiAqXG4gKiBMaWtlIGBwcm9jZXNzLmVudmAgZm9yIGZsb3djaGFydHM6IHJlYWQtb25seSwgaW5oZXJpdGVkIGJ5IGNoaWxkIGV4ZWN1dG9ycyxcbiAqIGluZnJhc3RydWN0dXJlLW9ubHkgKG5vdCBidXNpbmVzcyBsb2dpYykuXG4gKlxuICogTGl0bXVzIHRlc3Q6IENyZWF0ZWQgZXh0ZXJuYWwgdG8gdGhlIGZsb3djaGFydCArIHBhc3NlZCBpbiBmb3IgZXhlY3V0aW9uID0gZW52LlxuICogQnVzaW5lc3MgY29uZmlnIGZvciBhIHNwZWNpZmljIGZsb3djaGFydCA9IGFyZ3MgKGdldEFyZ3MoKSkuXG4gKlxuICogSW50ZW50aW9uYWxseSBhIGNsb3NlZCB0eXBlIOKAlCBub3QgZXh0ZW5zaWJsZSB0byBwcmV2ZW50IGNvdXBsaW5nIGJldHdlZW5cbiAqIHBhcmVudCBhbmQgY2hpbGQgZmxvd2NoYXJ0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRpb25FbnYge1xuICAvKiogQWJvcnRTaWduYWwgZm9yIGNvb3BlcmF0aXZlIGNhbmNlbGxhdGlvbiBhY3Jvc3MgbmVzdGVkIGV4ZWN1dG9ycy4gKi9cbiAgcmVhZG9ubHkgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIC8qKiBUaW1lb3V0IGJ1ZGdldCBpbiBtaWxsaXNlY29uZHMuICovXG4gIHJlYWRvbmx5IHRpbWVvdXRNcz86IG51bWJlcjtcbiAgLyoqIFRyYWNlIGlkZW50aWZpZXIgZm9yIGRpc3RyaWJ1dGVkIHRyYWNpbmcgLyBvYnNlcnZhYmlsaXR5LiAqL1xuICByZWFkb25seSB0cmFjZUlkPzogc3RyaW5nO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEhhbmRsZXIgRGVwZW5kZW5jaWVzIChESSBiYWcpIOKAlCB3YXMgUGlwZWxpbmVDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBIYW5kbGVyRGVwcyDigJQgRGVwZW5kZW5jeSBpbmplY3Rpb24gYmFnIHBhc3NlZCB0byBhbGwgaGFuZGxlciBtb2R1bGVzLlxuICpcbiAqIFByb3ZpZGVzIHNoYXJlZCBzdGF0ZSAoc3RhZ2VNYXAsIHJ1bnRpbWUsIHNjb3BlRmFjdG9yeSwgZXRjLikgd2l0aG91dFxuICogaGFuZGxlcnMgbmVlZGluZyB0byBpbXBvcnQgdGhlIHRyYXZlcnNlciBkaXJlY3RseS4gQXZvaWRzIGNpcmN1bGFyIGRlcHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGFuZGxlckRlcHM8VE91dCA9IGFueSwgVFNjb3BlID0gYW55PiB7XG4gIHN0YWdlTWFwOiBNYXA8c3RyaW5nLCBTdGFnZUZ1bmN0aW9uPFRPdXQsIFRTY29wZT4+O1xuICByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPjtcbiAgZXhlY3V0aW9uUnVudGltZTogSUV4ZWN1dGlvblJ1bnRpbWU7XG4gIHNjb3BlRmFjdG9yeTogU2NvcGVGYWN0b3J5PFRTY29wZT47XG4gIHN1YmZsb3dzPzogUmVjb3JkPHN0cmluZywgeyByb290OiBTdGFnZU5vZGU8VE91dCwgVFNjb3BlPiB9PjtcbiAgdGhyb3R0bGluZ0Vycm9yQ2hlY2tlcj86IChlcnJvcjogdW5rbm93bikgPT4gYm9vbGVhbjtcbiAgc3RyZWFtSGFuZGxlcnM/OiBTdHJlYW1IYW5kbGVycztcbiAgc2NvcGVQcm90ZWN0aW9uTW9kZTogU2NvcGVQcm90ZWN0aW9uTW9kZTtcbiAgcmVhZE9ubHlDb250ZXh0PzogdW5rbm93bjtcbiAgLyoqIEV4ZWN1dGlvbiBlbnZpcm9ubWVudCDigJQgcHJvcGFnYXRlcyB0byBzdWJmbG93cyBhdXRvbWF0aWNhbGx5LiAqL1xuICBleGVjdXRpb25FbnY/OiBFeGVjdXRpb25FbnY7XG4gIG5hcnJhdGl2ZUdlbmVyYXRvcjogSUNvbnRyb2xGbG93TmFycmF0aXZlO1xuICBsb2dnZXI6IElMb2dnZXI7XG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICAvKipcbiAgICogT24gcmVzdW1lLCB0aGUgcGVyLXN1YmZsb3cgc2NvcGUgY2FwdHVyZXMgZnJvbSB0aGUgY2hlY2twb2ludC5cbiAgICogS2V5ZWQgYnkgcGF0aC1wcmVmaXhlZCBgc3ViZmxvd0lkYCAobWF0Y2hlcyBgUGF1c2VTaWduYWwuc3ViZmxvd1BhdGhgKS5cbiAgICpcbiAgICogYFN1YmZsb3dFeGVjdXRvcmAgY29uc3VsdHMgdGhpcyBvbiBlbnRyeTogaWYgYSBrZXkgbWF0Y2hlcyB0aGVcbiAgICogY3VycmVudCBzdWJmbG93IGlkLCB0aGUgbmVzdGVkIHJ1bnRpbWUgaXMgc2VlZGVkIGZyb20gdGhpcyBzdGF0ZVxuICAgKiBhbmQgdGhlIGlucHV0TWFwcGVyIGlzIFNLSVBQRUQgKHRoZSBjYXB0dXJlZCBzdGF0ZSBhbHJlYWR5XG4gICAqIHJlZmxlY3RzIHBvc3QtaW5wdXQgcHJlLXBhdXNlIG1lbW9yeSkuIFRoaXMgaXMgd2hhdCBtYWtlc1xuICAgKiBjcm9zcy1leGVjdXRvciByZXN1bWUgd29yayBmb3IgcGF1c2VzIElOU0lERSBhIHN1YmZsb3cuXG4gICAqXG4gICAqIFVuZGVmaW5lZCBvbiBub3JtYWwgYHJ1bigpYCBwYXRocyDigJQgb25seSB0aGUgcmVzdW1lIHBhdGggc2V0cyBpdC5cbiAgICovXG4gIHN1YmZsb3dTdGF0ZXNGb3JSZXN1bWU/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj47XG59XG5cbi8qKiBPcHRpb25zIGZvciBGbG93Q2hhcnRFeGVjdXRvci5ydW4oKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT3B0aW9ucyB7XG4gIC8qKiBBYm9ydFNpZ25hbCBmb3IgY29vcGVyYXRpdmUgY2FuY2VsbGF0aW9uLiAqL1xuICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgLyoqIFRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzLiBDcmVhdGVzIGFuIGludGVybmFsIEFib3J0Q29udHJvbGxlci4gKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKipcbiAgICogUnVudGltZSBpbnB1dCBkYXRhIGZvciB0aGUgcGlwZWxpbmUuXG4gICAqIEJlY29tZXMgdGhlIHJlYWRPbmx5Q29udGV4dCBhY2Nlc3NpYmxlIHZpYSBgc2NvcGUuZ2V0QXJncygpYC5cbiAgICogU3RhZ2VzIGNhbm5vdCBvdmVyd3JpdGUgdGhlc2Uga2V5cyB3aXRoIGBzZXRWYWx1ZSgpYC5cbiAgICovXG4gIGlucHV0PzogdW5rbm93bjtcbiAgLyoqXG4gICAqIEV4ZWN1dGlvbiBlbnZpcm9ubWVudCDigJQgcmVhZC1vbmx5IGluZnJhc3RydWN0dXJlIHZhbHVlcyB0aGF0IHByb3BhZ2F0ZVxuICAgKiB0aHJvdWdoIG5lc3RlZCBleGVjdXRvcnMgKGxpa2UgYHByb2Nlc3MuZW52YCBmb3IgZmxvd2NoYXJ0cykuXG4gICAqIEFjY2Vzc2libGUgdmlhIGBzY29wZS5nZXRFbnYoKWAuIEluaGVyaXRlZCBieSBzdWJmbG93cyBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgZW52PzogRXhlY3V0aW9uRW52O1xuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIG1heGltdW0gbmVzdGVkIGBleGVjdXRlTm9kZWAgZGVwdGggZm9yIHRoaXMgcnVuLlxuICAgKiBEZWZhdWx0cyB0byBgRmxvd2NoYXJ0VHJhdmVyc2VyLk1BWF9FWEVDVVRFX0RFUFRIYCAoNTAwKS5cbiAgICpcbiAgICogRGVwdGggY291bnRzIFRSRUUgbmVzdGluZyBvbmx5IOKAlCBmb3JrIGNoaWxkcmVuLCBkZWNpZGVyL3NlbGVjdG9yIGJyYW5jaFxuICAgKiBkaXNwYXRjaCwgcmVjdXJzaXZlIGNvbXBvc2l0aW9uLiBMaW5lYXIgY2hhaW5zIGFuZCBsb29wIGl0ZXJhdGlvbnMgcnVuXG4gICAqIG9uIGEgZmxhdCB0cmFtcG9saW5lIGFuZCBuZXZlciBjb25zdW1lIGRlcHRoLCBzbyB0aGlzIHJhcmVseSBuZWVkc1xuICAgKiByYWlzaW5nLiBNdXN0IGJlID49IDEuXG4gICAqL1xuICBtYXhEZXB0aD86IG51bWJlcjtcbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRoZSBtYXhpbXVtIGxvb3AgaXRlcmF0aW9ucyBwZXIgbm9kZSBmb3IgdGhpcyBydW4gKHRoZVxuICAgKiBgQ29udGludWF0aW9uUmVzb2x2ZXJgIGluZmluaXRlLWxvb3AgZ3VhcmQpLiBEZWZhdWx0cyB0byAxMDAwLlxuICAgKiBUaGlzIGlzIHRoZSBiaW5kaW5nIGNvbnN0cmFpbnQgZm9yIGxvb3AtaGVhdnkgcGlwZWxpbmVzIOKAlCByYWlzZSBpdCBmb3JcbiAgICogbGVnaXRpbWF0ZWx5IGxvbmcgbG9vcHMgKGBsb29wVG9gIGNoYWlucyBydW4gd2l0aCBhIGZsYXQgc3RhY2ssIHNvIGhpZ2hcbiAgICogdmFsdWVzIGFyZSBzYWZlOyBtZW1vcnkgZm9yIHN0YXRlL25hcnJhdGl2ZSBzdGlsbCBncm93cyBwZXIgaXRlcmF0aW9uKS5cbiAgICogQWxzbyBib3VuZHMgdGhlIHJ1bi10b3RhbCBjaGFpbiBvZiBmdW5jdGlvbi1iZWFyaW5nIGR5bmFtaWMgYG5leHRgXG4gICAqIGNvbnRpbnVhdGlvbnMgKGZyZXNoIG5vZGVzIHJldHVybmVkIGZyb20gc3RhZ2VzKSDigJQgYSBydW5hd2F5IGR5bmFtaWNcbiAgICogY2hhaW4gZXJyb3JzIGluc3RlYWQgb2YgcnVubmluZyBmb3JldmVyLlxuICAgKiBQcm9wYWdhdGVzIHRvIHN1YmZsb3dzLiBNdXN0IGJlID49IDEuXG4gICAqL1xuICBtYXhJdGVyYXRpb25zPzogbnVtYmVyO1xufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIEZsb3cgQ29udHJvbCBOYXJyYXRpdmUg4oCUIGNhbm9uaWNhbCBkZWZpbml0aW9ucyBsaXZlIGluIG1lbW9yeS90eXBlcy50c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCB0eXBlIHsgRmxvd0NvbnRyb2xUeXBlLCBGbG93TWVzc2FnZSB9O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJ1bnRpbWUgU3RydWN0dXJlIE1ldGFkYXRhICh1c2VkIGJ5IFJ1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyKVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhIHtcbiAgdHlwZTogJ3N0YWdlJyB8ICdkZWNpZGVyJyB8ICdzZWxlY3RvcicgfCAnZm9yaycgfCAnc3RyZWFtaW5nJyB8ICdzdWJmbG93JyB8ICdsb29wJztcbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICBpc1N1YmZsb3dSb290PzogYm9vbGVhbjtcbiAgc3ViZmxvd05hbWU/OiBzdHJpbmc7XG4gIGlzUGFyYWxsZWxDaGlsZD86IGJvb2xlYW47XG4gIHBhcmFsbGVsR3JvdXBJZD86IHN0cmluZztcbiAgbG9vcFRhcmdldD86IHN0cmluZztcbiAgaXNEeW5hbWljPzogYm9vbGVhbjtcbiAgaXNMb29wUmVmZXJlbmNlPzogYm9vbGVhbjtcbiAgc3RyZWFtSWQ/OiBzdHJpbmc7XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTm9kZSBSZXN1bHRcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgdHlwZSBOb2RlUmVzdWx0VHlwZSA9IHtcbiAgaWQ6IHN0cmluZztcbiAgcmVzdWx0OiB1bmtub3duO1xuICBpc0Vycm9yPzogYm9vbGVhbjtcbn07XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRXhlY3V0aW9uIFJlc3BvbnNlXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuZXhwb3J0IHR5cGUgQnJhbmNoUmVzdWx0ID0ge1xuICByZXN1bHQ6IHN0cmluZyB8IEVycm9yO1xuICBpc0Vycm9yOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQnJhbmNoUmVzdWx0cyA9IHsgW2JyYW5jaElkOiBzdHJpbmddOiBCcmFuY2hSZXN1bHQgfTtcbmV4cG9ydCB0eXBlIFRyYXZlcnNhbFJlc3VsdCA9IEJyYW5jaFJlc3VsdHMgfCBzdHJpbmcgfCBFcnJvcjtcblxuLyoqIFJldHVybmVkIGJ5IHJ1bigpL3Jlc3VtZSgpIHdoZW4gZXhlY3V0aW9uIHBhdXNlcy4gKi9cbmV4cG9ydCB0eXBlIFBhdXNlZFJlc3VsdCA9IHtcbiAgcmVhZG9ubHkgcGF1c2VkOiB0cnVlO1xuICByZWFkb25seSBjaGVja3BvaW50OiBpbXBvcnQoJy4uL3BhdXNlL3R5cGVzLmpzJykuRmxvd2NoYXJ0Q2hlY2twb2ludDtcbn07XG5cbi8qKiBGdWxsIHJldHVybiB0eXBlIG9mIEZsb3dDaGFydEV4ZWN1dG9yLnJ1bigpIGFuZCByZXN1bWUoKS4gKi9cbmV4cG9ydCB0eXBlIEV4ZWN1dG9yUmVzdWx0ID0gVHJhdmVyc2FsUmVzdWx0IHwgUGF1c2VkUmVzdWx0O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFNlcmlhbGl6ZWQgUGlwZWxpbmUgU3RydWN0dXJlIChmb3IgdmlzdWFsaXphdGlvbilcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6ZWRQaXBlbGluZU5vZGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIGlkOiBzdHJpbmc7XG4gIHR5cGU/OlxuICAgIHwgJ3N0YWdlJ1xuICAgIHwgJ2RlY2lkZXInXG4gICAgfCAnc2VsZWN0b3InXG4gICAgfCAnZm9yaydcbiAgICB8ICdzdHJlYW1pbmcnXG4gICAgfCAnc3ViZmxvdydcbiAgICB8ICdsb29wJ1xuICAgIHwgJ3VzZXInXG4gICAgfCAndG9vbCdcbiAgICB8ICdmdW5jdGlvbidcbiAgICB8ICdzZXF1ZW5jZSc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IFNlcmlhbGl6ZWRQaXBlbGluZU5vZGVbXTtcbiAgbmV4dD86IFNlcmlhbGl6ZWRQaXBlbGluZU5vZGU7XG4gIGJyYW5jaGVzPzogUmVjb3JkPHN0cmluZywgU2VyaWFsaXplZFBpcGVsaW5lTm9kZT47XG4gIGhhc0RlY2lkZXI/OiBib29sZWFuO1xuICBoYXNTZWxlY3Rvcj86IGJvb2xlYW47XG4gIGhhc1N1YnRyZWU/OiBib29sZWFuO1xuICBpc1N0cmVhbWluZz86IGJvb2xlYW47XG4gIHN0cmVhbUlkPzogc3RyaW5nO1xuICBpc1N1YmZsb3dSb290PzogYm9vbGVhbjtcbiAgc3ViZmxvd0lkPzogc3RyaW5nO1xuICBzdWJmbG93TmFtZT86IHN0cmluZztcbiAgbG9vcFRhcmdldD86IHN0cmluZztcbiAgaXNMb29wUmVmZXJlbmNlPzogYm9vbGVhbjtcbiAgaXNQYXJhbGxlbENoaWxkPzogYm9vbGVhbjtcbiAgcGFyYWxsZWxHcm91cElkPzogc3RyaW5nO1xuICBpc0R5bmFtaWM/OiBib29sZWFuO1xuICAvKiogV2hlbiB0cnVlLCB0aGlzIHN0YWdlIGNhbiBwYXVzZSBleGVjdXRpb24gKFBhdXNhYmxlSGFuZGxlciBwYXR0ZXJuKS4gKi9cbiAgaXNQYXVzYWJsZT86IGJvb2xlYW47XG59XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gRmxvd0NoYXJ0IGlzIGRlZmluZWQgaW4gYC4uL2J1aWxkZXIvdHlwZXMudHNgLiBUaGUgZW5naW5lIGxheWVyIGNvbnN1bWVzIGl0XG4vLyB2aWEgaW1wb3J0IGZyb20gdGhlcmUuIEEgZHVwbGljYXRlIG1pbmltYWwgZGVmaW5pdGlvbiBwcmV2aW91c2x5IGxpdmVkIGhlcmVcbi8vIGFuZCBjYXVzZWQgVFMgY29uZnVzaW9uIGF0IGNvbXBvc2l0aW9uIGJvdW5kYXJpZXMgKENvbXBvc2FibGVSdW5uZXIgdnNcbi8vIGFkZFN1YkZsb3dDaGFydCBwYXJhbWV0ZXIpLiBTaW5nbGUgc291cmNlIG9mIHRydXRoIG5vdyBsaXZlcyBpbiBidWlsZGVyLy5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4vKiogQWxpYXMgZm9yIFNlcmlhbGl6ZWRQaXBlbGluZU5vZGUgdXNlZCBhcyBmdWxsIHN0cnVjdHVyZSAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXplZFBpcGVsaW5lU3RydWN0dXJlID0gU2VyaWFsaXplZFBpcGVsaW5lTm9kZSAmIHtcbiAgYnJhbmNoSWRzPzogc3RyaW5nW107XG4gIHN1YmZsb3dTdHJ1Y3R1cmU/OiBTZXJpYWxpemVkUGlwZWxpbmVTdHJ1Y3R1cmU7XG4gIGl0ZXJhdGlvbkNvdW50PzogbnVtYmVyO1xufTtcbiJdfQ==
@@ -139,4 +139,4 @@ export class ExecutionRuntime {
139
139
  };
140
140
  }
141
141
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY3V0aW9uUnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcnVubmVyL0V4ZWN1dGlvblJ1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBOEN6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLFdBQVcsQ0FBZTtJQUNqQzs7Ozs7Ozs7T0FRRztJQUNJLGFBQWEsQ0FBZ0I7SUFDN0IsZ0JBQWdCLENBQWU7SUFDL0IsZ0JBQWdCLENBQVc7SUFDbEMsb0ZBQW9GO0lBQzVFLGFBQWEsQ0FBZ0I7SUFDN0IsYUFBYSxDQUFVO0lBQ3ZCLGNBQWMsQ0FBVTtJQUNoQzs2REFDeUQ7SUFDakQsWUFBWSxHQUFxQixNQUFNLENBQUM7SUFFaEQsWUFBWSxRQUFnQixFQUFFLE1BQWMsRUFBRSxhQUF1QixFQUFFLFlBQXNCO1FBQzNGLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxvQkFBb0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLENBQ25DLElBQUksQ0FBQyxjQUFjO1FBQ25CLGtFQUFrRTtRQUNsRSxvRUFBb0U7UUFDcEUsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsZUFBZSxDQUFDLElBQXNCO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBdUI7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxlQUFlLENBQUMsSUFBc0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQseUZBQXlGO0lBQ3pGLG9CQUFvQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWMsRUFBRSxHQUFXLEVBQUUsS0FBYztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsV0FBVyxDQUFDLE9BQThCO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDO1FBQ2pGLE9BQU87WUFDTCxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN2RixhQUFhLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUN6QyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhlY3V0aW9uUnVudGltZSDigJQgVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIG9uZSBmbG93Y2hhcnQgZXhlY3V0aW9uLlxuICpcbiAqIFdpcmVzIHVwIHRoZSB0aHJlZSBtZW1vcnkgcHJpbWl0aXZlcyBpbnRvIGEgc2luZ2xlIGNvbnRhaW5lcjpcbiAqICAgLSBTaGFyZWRNZW1vcnkgKHRoZSBoZWFwIOKAlCBzaGFyZWQgc3RhdGUgYWNyb3NzIGFsbCBzdGFnZXMpXG4gKiAgIC0gU3RhZ2VDb250ZXh0ICAodGhlIGNhbGwgc3RhY2sg4oCUIHBlci1zdGFnZSBleGVjdXRpb24gdHJlZSlcbiAqICAgLSBFdmVudExvZyAgICAgICh0aGUgdHJhbnNhY3Rpb24gbG9nIOKAlCBjb21taXQgaGlzdG9yeSBmb3IgcmVwbGF5KVxuICpcbiAqIFRoZSBlbmdpbmUgKEZsb3djaGFydFRyYXZlcnNlcikgcmVjZWl2ZXMgdGhpcyBhcyBpdHMgcnVudGltZSBwYXJhbWV0ZXIuXG4gKiBBZnRlciBleGVjdXRpb24sIGNvbnN1bWVycyBxdWVyeSBpdCBmb3IgdGhlIGZ1bGwgZXhlY3V0aW9uIHN0YXRlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50TG9nIH0gZnJvbSAnLi4vbWVtb3J5L0V2ZW50TG9nLmpzJztcbmltcG9ydCB7IFNoYXJlZE1lbW9yeSB9IGZyb20gJy4uL21lbW9yeS9TaGFyZWRNZW1vcnkuanMnO1xuaW1wb3J0IHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvbW1pdEJ1bmRsZSxcbiAgQ29tbWl0VmFsdWVzTW9kZSxcbiAgUmVhZFRyYWNraW5nTW9kZSxcbiAgU3RhZ2VTbmFwc2hvdCxcbiAgV3JpdGVUcmFja2luZ01vZGUsXG59IGZyb20gJy4uL21lbW9yeS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmVyU3RhdHMgfSBmcm9tICcuL0RlZmVycmVkT2JzZXJ2ZXJUaWVyLmpzJztcblxuLyoqIFNuYXBzaG90IG9mIGEgc2luZ2xlIHJlY29yZGVyJ3MgY29sbGVjdGVkIGRhdGEuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZGVyU25hcHNob3Qge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTY29wZVJlY29yZGVyIHR5cGUgYW5kIHBhdHRlcm4gZGVzY3JpcHRpb24gKGUuZy4sIFwiVHJhbnNsYXRvciAoS2V5ZWRTdG9yZSkg4oCUIHBlci1zdGVwIHRva2VuIHVzYWdlXCIpLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIFByZWZlcnJlZCByZWFkLXRpbWUgb3BlcmF0aW9uIOKAlCBoaW50cyB0aGUgVUkgYWJvdXQgd2hpY2ggdmlldyB0byBzaG93IHByb21pbmVudGx5LiAqL1xuICBwcmVmZXJyZWRPcGVyYXRpb24/OiAndHJhbnNsYXRlJyB8ICdhY2N1bXVsYXRlJyB8ICdhZ2dyZWdhdGUnO1xuICBkYXRhOiB1bmtub3duO1xufVxuXG5leHBvcnQgdHlwZSBSdW50aW1lU25hcHNob3QgPSB7XG4gIHNoYXJlZFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgZXhlY3V0aW9uVHJlZTogU3RhZ2VTbmFwc2hvdDtcbiAgY29tbWl0TG9nOiBDb21taXRCdW5kbGVbXTtcbiAgLyoqXG4gICAqIEVuY29kaW5nIGRpc2NyaW1pbmFudCBmb3IgYGNvbW1pdExvZ2AgKCMxM2MtQik6IGAnZnVsbCdgIOKAlCBldmVyeSBgc2V0YFxuICAgKiBidW5kbGUgc3RvcmVzIHRoZSBmdWxsIGZpbmFsIHZhbHVlIChoaXN0b3JpY2FsKTsgYCdkZWx0YSdgIOKAlCBidW5kbGVzIG1heVxuICAgKiBjYXJyeSBgYXBwZW5kYC9gZGVsZXRlYCB0cmFjZSB2ZXJicyB3aXRoIHZlcmItcXVhbGlmaWVkIGBvdmVyd3JpdGVgXG4gICAqIHBheWxvYWRzICh0YWlscykuIE9mZmxpbmUgdG9vbGluZyBrZXlzIG9uIHRoaXMgZmllbGQ7IGEgYnVuZGxlIHN0cmVhbVxuICAgKiB3aXRob3V0IGNvbnRleHQgcmVtYWlucyBzZWxmLWRlc2NyaWJpbmcgdmlhIHRoZSB2ZXJicyB0aGVtc2VsdmVzLlxuICAgKi9cbiAgY29tbWl0VmFsdWVzOiBDb21taXRWYWx1ZXNNb2RlO1xuICAvKiogUGVyLXN1YmZsb3cgZXhlY3V0aW9uIHJlc3VsdHMgKGtleWVkIGJ5IHN1YmZsb3dJZCkuICovXG4gIHN1YmZsb3dSZXN1bHRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIC8qKiBTbmFwc2hvdCBkYXRhIGZyb20gcmVjb3JkZXJzIHRoYXQgaW1wbGVtZW50IHRvU25hcHNob3QoKS4gKi9cbiAgcmVjb3JkZXJzPzogUmVjb3JkZXJTbmFwc2hvdFtdO1xuICAvKipcbiAgICogRGVmZXJyZWQtb2JzZXJ2ZXIgYWNjb3VudGluZyAoUkZDLTAwMSBCbG9jayA5KSDigJQgcXVldWUgZGVwdGgsIGRyb3BzLFxuICAgKiBmbHVzaC9idWRnZXQgY291bnRlcnMsIHBlci1saXN0ZW5lciB0aW1lIGF0dHJpYnV0aW9uLCBhbmQgdGhlXG4gICAqIHRlcm1pbmFsLWZsdXNoIHN0cmFuZGluZyBjb3VudC4gQUJTRU5UIHVubGVzcyBhIHJlY29yZGVyIHdhcyBhdHRhY2hlZFxuICAgKiB3aXRoIGB7IGRlbGl2ZXJ5OiAnZGVmZXJyZWQnIH1gIG9uIHRoaXMgZXhlY3V0b3IgKHplcm8tY29zdCBkaXNjaXBsaW5lKS5cbiAgICovXG4gIG9ic2VydmVyU3RhdHM/OiBPYnNlcnZlclN0YXRzO1xufTtcblxuZXhwb3J0IGNsYXNzIEV4ZWN1dGlvblJ1bnRpbWUge1xuICBwdWJsaWMgZ2xvYmFsU3RvcmU6IFNoYXJlZE1lbW9yeTtcbiAgLyoqXG4gICAqIFBhcmFsbGVsIHJlZGFjdGVkIG1pcnJvciBvZiBgZ2xvYmFsU3RvcmVgLiBQb3B1bGF0ZWQgZHVyaW5nIHRyYXZlcnNhbCB2aWFcbiAgICogYFN0YWdlQ29udGV4dC5jb21taXQoKWAgdXNpbmcgdGhlIGFscmVhZHktY29tcHV0ZWQgcmVkYWN0ZWQgcGF0Y2hlcy5cbiAgICogT25seSBleGlzdHMgd2hlbiBgZW5hYmxlUmVkYWN0ZWRNaXJyb3IoKWAgaGFzIGJlZW4gY2FsbGVkIOKAlCB0eXBpY2FsbHkgYnlcbiAgICogYEZsb3dDaGFydEV4ZWN1dG9yYCB3aGVuIGEgYFJlZGFjdGlvblBvbGljeWAgaXMgY29uZmlndXJlZC4gT3RoZXJ3aXNlXG4gICAqIHVuZGVmaW5lZCBhbmQgemVybyBjb3N0LlxuICAgKlxuICAgKiBSZWFkIHZpYSBgZ2V0U25hcHNob3QoeyByZWRhY3Q6IHRydWUgfSlgLlxuICAgKi9cbiAgcHVibGljIHJlZGFjdGVkU3RvcmU/OiBTaGFyZWRNZW1vcnk7XG4gIHB1YmxpYyByb290U3RhZ2VDb250ZXh0OiBTdGFnZUNvbnRleHQ7XG4gIHB1YmxpYyBleGVjdXRpb25IaXN0b3J5OiBFdmVudExvZztcbiAgLyoqIE9yaWdpbmFsIHJvb3QgZm9yIGdldFNuYXBzaG90KCkg4oCUIHNldCBiZWZvcmUgcmVzdW1lIGNoYW5nZXMgcm9vdFN0YWdlQ29udGV4dC4gKi9cbiAgcHJpdmF0ZSBfc25hcHNob3RSb290PzogU3RhZ2VDb250ZXh0O1xuICBwcml2YXRlIF9pbml0aWFsU3RhdGU6IHVua25vd247XG4gIHByaXZhdGUgX2RlZmF1bHRWYWx1ZXM6IHVua25vd247XG4gIC8qKiBBY3RpdmUgY29tbWl0LXZhbHVlcyBlbmNvZGluZyAoIzEzYy1CKSDigJQgc3VyZmFjZWQgYXMgdGhlIHNuYXBzaG90XG4gICAqICBkaXNjcmltaW5hbnQge0BsaW5rIFJ1bnRpbWVTbmFwc2hvdC5jb21taXRWYWx1ZXN9LiAqL1xuICBwcml2YXRlIGNvbW1pdFZhbHVlczogQ29tbWl0VmFsdWVzTW9kZSA9ICdmdWxsJztcblxuICBjb25zdHJ1Y3Rvcihyb290TmFtZTogc3RyaW5nLCByb290SWQ6IHN0cmluZywgZGVmYXVsdFZhbHVlcz86IHVua25vd24sIGluaXRpYWxTdGF0ZT86IHVua25vd24pIHtcbiAgICB0aGlzLl9pbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGU7XG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7XG4gICAgdGhpcy5leGVjdXRpb25IaXN0b3J5ID0gbmV3IEV2ZW50TG9nKGluaXRpYWxTdGF0ZSk7XG4gICAgdGhpcy5nbG9iYWxTdG9yZSA9IG5ldyBTaGFyZWRNZW1vcnkoZGVmYXVsdFZhbHVlcywgaW5pdGlhbFN0YXRlKTtcbiAgICB0aGlzLnJvb3RTdGFnZUNvbnRleHQgPSBuZXcgU3RhZ2VDb250ZXh0KCcnLCByb290TmFtZSwgcm9vdElkLCB0aGlzLmdsb2JhbFN0b3JlLCAnJywgdGhpcy5leGVjdXRpb25IaXN0b3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcHQgaW4gdG8gbWFpbnRhaW5pbmcgYSBwYXJhbGxlbCByZWRhY3RlZCBtaXJyb3Igb2YgYGdsb2JhbFN0b3JlYC4gQWZ0ZXJcbiAgICogdGhpcyBjYWxsLCBldmVyeSBgU3RhZ2VDb250ZXh0LmNvbW1pdCgpYCBpbiB0aGUgcnVuIHdyaXRlcyB0aGUgcmVkYWN0ZWRcbiAgICogcGF0Y2hlcyAodGhlIHNhbWUgb25lcyBmZWQgdG8gdGhlIGV2ZW50IGxvZykgaW50byBgcmVkYWN0ZWRTdG9yZWAgaW5cbiAgICogYWRkaXRpb24gdG8gdGhlIHJhdyBvbmVzIHdyaXR0ZW4gdG8gYGdsb2JhbFN0b3JlYC5cbiAgICpcbiAgICogVGhlIG1pcnJvciBpcyBjcmVhdGVkIGxhemlseSBhbmQgcHJvcGFnYXRlZCBpbnRvIGFsbCBjaGlsZCAvIG5leHRcbiAgICogY29udGV4dHMsIHNvIGl0IGNvcnJlY3RseSByZWZsZWN0cyBzdWJmbG93LXNjb3BlIHdyaXRlcy4gV2hlbiBub1xuICAgKiBgUmVkYWN0aW9uUG9saWN5YCBpcyBjb25maWd1cmVkLCBjYWxsZXJzIHNob3VsZCBza2lwIHRoaXMg4oCUIHVudXNlZFxuICAgKiBhbGxvY2F0aW9uLCBubyBmdW5jdGlvbmFsIGRpZmZlcmVuY2UgaW4gdGhlIHNuYXBzaG90LlxuICAgKi9cbiAgZW5hYmxlUmVkYWN0ZWRNaXJyb3IoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVkYWN0ZWRTdG9yZSkgcmV0dXJuOyAvLyBpZGVtcG90ZW50XG4gICAgdGhpcy5yZWRhY3RlZFN0b3JlID0gbmV3IFNoYXJlZE1lbW9yeShcbiAgICAgIHRoaXMuX2RlZmF1bHRWYWx1ZXMsXG4gICAgICAvLyBTZWVkIHdpdGggdGhlIHNhbWUgaW5pdGlhbCBzdGF0ZSBhcyB0aGUgcmF3IHN0b3JlIHNvIHRoZSBtaXJyb3JcbiAgICAgIC8vIHN0YXJ0cyBmcm9tIGEgc2NydWJiZWQtbm90aGluZyBiYXNlbGluZTsgc3Vic2VxdWVudCBjb21taXRzIGFwcGx5XG4gICAgICAvLyB0aGUgcmVkYWN0ZWQgcGF0Y2hlcyBvbiB0b3AuXG4gICAgICB0aGlzLl9pbml0aWFsU3RhdGUsXG4gICAgKTtcbiAgICB0aGlzLnJvb3RTdGFnZUNvbnRleHQudXNlUmVkYWN0ZWRNaXJyb3IodGhpcy5yZWRhY3RlZFN0b3JlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHJlYWQtdHJhY2tpbmcgcG9saWN5ICgjMTQpIG9uIHRoZSByb290IHN0YWdlIGNvbnRleHQuIERlc2NlbmRhbnRcbiAgICogY29udGV4dHMgaW5oZXJpdCB2aWEgYGNyZWF0ZU5leHRgL2BjcmVhdGVDaGlsZGA7IHN1YmZsb3cgcm9vdCBjb250ZXh0c1xuICAgKiBpbmhlcml0IGZyb20gdGhlaXIgcGFyZW50LW1vdW50IGNvbnRleHQgdmlhIGBTdWJmbG93RXhlY3V0b3JgLiBDYWxsZWQgYnlcbiAgICogYEZsb3dDaGFydEV4ZWN1dG9yLmNyZWF0ZVRyYXZlcnNlcigpYCB3aGVuIHRoZSBleGVjdXRvcidzIHBvbGljeSBpcyBub3RcbiAgICogdGhlIGRlZmF1bHQgYCdmdWxsJ2Ag4oCUIGluY2x1ZGluZyB0aGUgcmVzdW1lIHBhdGgsIHdoZXJlIGl0IGlzIGFwcGxpZWQgdG9cbiAgICogdGhlIGZyZXNobHktY3JlYXRlZCBjb250aW51YXRpb24gcm9vdC5cbiAgICovXG4gIHVzZVJlYWRUcmFja2luZyhtb2RlOiBSZWFkVHJhY2tpbmdNb2RlKTogdm9pZCB7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0LnVzZVJlYWRUcmFja2luZyhtb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHdyaXRlLXRyYWNraW5nIHBvbGljeSAoIzEzYy1BKSBvbiB0aGUgcm9vdCBzdGFnZSBjb250ZXh0IOKAlCB0aGVcbiAgICogc2libGluZyBvZiB7QGxpbmsgdXNlUmVhZFRyYWNraW5nfSwgd2l0aCBpZGVudGljYWwgcGx1bWJpbmc6IGRlc2NlbmRhbnRcbiAgICogY29udGV4dHMgaW5oZXJpdCB2aWEgYGNyZWF0ZU5leHRgL2BjcmVhdGVDaGlsZGA7IHN1YmZsb3cgcm9vdCBjb250ZXh0c1xuICAgKiBpbmhlcml0IGZyb20gdGhlaXIgcGFyZW50LW1vdW50IGNvbnRleHQgdmlhIGBTdWJmbG93RXhlY3V0b3JgLiBDYWxsZWQgYnlcbiAgICogYEZsb3dDaGFydEV4ZWN1dG9yLmNyZWF0ZVRyYXZlcnNlcigpYCB3aGVuIHRoZSBleGVjdXRvcidzIHBvbGljeSBpcyBub3RcbiAgICogdGhlIGRlZmF1bHQgYCdmdWxsJ2Ag4oCUIGluY2x1ZGluZyB0aGUgcmVzdW1lIHBhdGgsIHdoZXJlIGl0IGlzIGFwcGxpZWQgdG9cbiAgICogdGhlIGZyZXNobHktY3JlYXRlZCBjb250aW51YXRpb24gcm9vdC5cbiAgICovXG4gIHVzZVdyaXRlVHJhY2tpbmcobW9kZTogV3JpdGVUcmFja2luZ01vZGUpOiB2b2lkIHtcbiAgICB0aGlzLnJvb3RTdGFnZUNvbnRleHQudXNlV3JpdGVUcmFja2luZyhtb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGNvbW1pdC12YWx1ZXMgZW5jb2RpbmcgcG9saWN5ICgjMTNjLUIpIG9uIHRoZSByb290IHN0YWdlIGNvbnRleHRcbiAgICog4oCUIHRoZSB0aGlyZCBkaWFsIG9mIHRoZSB7QGxpbmsgdXNlUmVhZFRyYWNraW5nfS97QGxpbmsgdXNlV3JpdGVUcmFja2luZ31cbiAgICogZmFtaWx5LCB3aXRoIGlkZW50aWNhbCBwbHVtYmluZzogZGVzY2VuZGFudCBjb250ZXh0cyBpbmhlcml0IHZpYVxuICAgKiBgY3JlYXRlTmV4dGAvYGNyZWF0ZUNoaWxkYDsgc3ViZmxvdyByb290IGNvbnRleHRzIGluaGVyaXQgZnJvbSB0aGVpclxuICAgKiBwYXJlbnQtbW91bnQgY29udGV4dCB2aWEgYFN1YmZsb3dFeGVjdXRvcmAuIENhbGxlZCBieVxuICAgKiBgRmxvd0NoYXJ0RXhlY3V0b3IuY3JlYXRlVHJhdmVyc2VyKClgIHdoZW4gdGhlIGV4ZWN1dG9yJ3MgcG9saWN5IGlzIG5vdFxuICAgKiB0aGUgZGVmYXVsdCBgJ2Z1bGwnYCDigJQgaW5jbHVkaW5nIHRoZSByZXN1bWUgcGF0aCwgd2hlcmUgaXQgaXMgYXBwbGllZCB0b1xuICAgKiB0aGUgZnJlc2hseS1jcmVhdGVkIGNvbnRpbnVhdGlvbiByb290LlxuICAgKi9cbiAgdXNlQ29tbWl0VmFsdWVzKG1vZGU6IENvbW1pdFZhbHVlc01vZGUpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1pdFZhbHVlcyA9IG1vZGU7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0LnVzZUNvbW1pdFZhbHVlcyhtb2RlKTtcbiAgfVxuXG4gIC8qKiBQcmVzZXJ2ZSB0aGUgY3VycmVudCByb290U3RhZ2VDb250ZXh0IGZvciBzbmFwc2hvdHMgYmVmb3JlIGNoYW5naW5nIGl0IGZvciByZXN1bWUuICovXG4gIHByZXNlcnZlU25hcHNob3RSb290KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc25hcHNob3RSb290KSB7XG4gICAgICB0aGlzLl9zbmFwc2hvdFJvb3QgPSB0aGlzLnJvb3RTdGFnZUNvbnRleHQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0UGlwZWxpbmVzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuZ2xvYmFsU3RvcmUuZ2V0U3RhdGUoKTtcbiAgICByZXR1cm4gc3RhdGUucGlwZWxpbmVzID8gT2JqZWN0LmtleXMoc3RhdGUucGlwZWxpbmVzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA6IFtdO1xuICB9XG5cbiAgc2V0Um9vdE9iamVjdChwYXRoOiBzdHJpbmdbXSwga2V5OiBzdHJpbmcsIHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0LnNldE9iamVjdChwYXRoLCBrZXksIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHJ1bnRpbWUgc25hcHNob3QuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zLnJlZGFjdCAgV2hlbiBgdHJ1ZWAsIHJldHVybnMgYHNoYXJlZFN0YXRlYCBmcm9tIHRoZVxuICAgKiAgIHBhcmFsbGVsIHJlZGFjdGVkIG1pcnJvciAoaWYgb25lIHdhcyBlbmFibGVkKS4gVGhpcyBpcyB0aGUgc2FmZSB2aWV3XG4gICAqICAgZm9yIHNoYXJpbmcgdHJhY2VzIGV4dGVybmFsbHkg4oCUIHBhc3RlIGludG8gYSB2aWV3ZXIsIHNoaXAgdG8gc3VwcG9ydCxcbiAgICogICBldGMuIFdoZW4gdGhlIG1pcnJvciB3YXMgbmV2ZXIgZW5hYmxlZCwgZmFsbHMgYmFjayB0byByYXcgYGdsb2JhbFN0b3JlYFxuICAgKiAgIGFuZCBhIGRldi1tb2RlIHdhcm5pbmcgaXMgZW1pdHRlZCAoc2lsZW50IGluIHByb2R1Y3Rpb24pLlxuICAgKlxuICAgKiAgIERlZmF1bHQgYGZhbHNlYCBwcmVzZXJ2ZXMgdGhlIHJ1bnRpbWUgdmlldyDigJQgbmVjZXNzYXJ5IGZvciBwYXVzZSAvXG4gICAqICAgcmVzdW1lIChyZXN1bXB0aW9uIG11c3QgcmVwbGF5IGFnYWluc3QgdGhlIHJlYWwgdmFsdWVzLCBub3RcbiAgICogICAnW1JFREFDVEVEXScpLlxuICAgKlxuICAgKiBPdGhlciBmaWVsZHMgKGBleGVjdXRpb25UcmVlYCwgYGNvbW1pdExvZ2ApIGFyZSB0aGUgc2FtZSBlaXRoZXIgd2F5IOKAlFxuICAgKiB0aGUgY29tbWl0IGxvZyBpcyBhbHJlYWR5IHJlZGFjdGVkIGF0IHdyaXRlLXRpbWUsIGFuZCB0aGUgZXhlY3V0aW9uXG4gICAqIHRyZWUgb25seSBjYXJyaWVzIHN0cnVjdHVyYWwgbWV0YWRhdGEuXG4gICAqL1xuICBnZXRTbmFwc2hvdChvcHRpb25zPzogeyByZWRhY3Q/OiBib29sZWFuIH0pOiBSdW50aW1lU25hcHNob3Qge1xuICAgIGNvbnN0IHNuYXBzaG90Um9vdCA9IHRoaXMuX3NuYXBzaG90Um9vdCA/PyB0aGlzLnJvb3RTdGFnZUNvbnRleHQ7XG4gICAgY29uc3QgdXNlUmVkYWN0ZWQgPSBvcHRpb25zPy5yZWRhY3QgPT09IHRydWUgJiYgdGhpcy5yZWRhY3RlZFN0b3JlICE9PSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNoYXJlZFN0YXRlOiB1c2VSZWRhY3RlZCA/IHRoaXMucmVkYWN0ZWRTdG9yZSEuZ2V0U3RhdGUoKSA6IHRoaXMuZ2xvYmFsU3RvcmUuZ2V0U3RhdGUoKSxcbiAgICAgIGV4ZWN1dGlvblRyZWU6IHNuYXBzaG90Um9vdC5nZXRTbmFwc2hvdCgpLFxuICAgICAgY29tbWl0TG9nOiB0aGlzLmV4ZWN1dGlvbkhpc3RvcnkubGlzdCgpLFxuICAgICAgY29tbWl0VmFsdWVzOiB0aGlzLmNvbW1pdFZhbHVlcyxcbiAgICB9O1xuICB9XG59XG4iXX0=
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhlY3V0aW9uUnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcnVubmVyL0V4ZWN1dGlvblJ1bnRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7R0FVRztBQUVILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBdUR6RCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLFdBQVcsQ0FBZTtJQUNqQzs7Ozs7Ozs7T0FRRztJQUNJLGFBQWEsQ0FBZ0I7SUFDN0IsZ0JBQWdCLENBQWU7SUFDL0IsZ0JBQWdCLENBQVc7SUFDbEMsb0ZBQW9GO0lBQzVFLGFBQWEsQ0FBZ0I7SUFDN0IsYUFBYSxDQUFVO0lBQ3ZCLGNBQWMsQ0FBVTtJQUNoQzs2REFDeUQ7SUFDakQsWUFBWSxHQUFxQixNQUFNLENBQUM7SUFFaEQsWUFBWSxRQUFnQixFQUFFLE1BQWMsRUFBRSxhQUF1QixFQUFFLFlBQXNCO1FBQzNGLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksWUFBWSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCxvQkFBb0I7UUFDbEIsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU8sQ0FBQyxhQUFhO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxZQUFZLENBQ25DLElBQUksQ0FBQyxjQUFjO1FBQ25CLGtFQUFrRTtRQUNsRSxvRUFBb0U7UUFDcEUsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsZUFBZSxDQUFDLElBQXNCO1FBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsZ0JBQWdCLENBQUMsSUFBdUI7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxlQUFlLENBQUMsSUFBc0I7UUFDcEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQseUZBQXlGO0lBQ3pGLG9CQUFvQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUMsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFvQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWMsRUFBRSxHQUFXLEVBQUUsS0FBYztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0gsV0FBVyxDQUFDLE9BQThCO1FBQ3hDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sV0FBVyxHQUFHLE9BQU8sRUFBRSxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDO1FBQ2pGLE9BQU87WUFDTCxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN2RixhQUFhLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUN6QyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXhlY3V0aW9uUnVudGltZSDigJQgVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIG9uZSBmbG93Y2hhcnQgZXhlY3V0aW9uLlxuICpcbiAqIFdpcmVzIHVwIHRoZSB0aHJlZSBtZW1vcnkgcHJpbWl0aXZlcyBpbnRvIGEgc2luZ2xlIGNvbnRhaW5lcjpcbiAqICAgLSBTaGFyZWRNZW1vcnkgKHRoZSBoZWFwIOKAlCBzaGFyZWQgc3RhdGUgYWNyb3NzIGFsbCBzdGFnZXMpXG4gKiAgIC0gU3RhZ2VDb250ZXh0ICAodGhlIGNhbGwgc3RhY2sg4oCUIHBlci1zdGFnZSBleGVjdXRpb24gdHJlZSlcbiAqICAgLSBFdmVudExvZyAgICAgICh0aGUgdHJhbnNhY3Rpb24gbG9nIOKAlCBjb21taXQgaGlzdG9yeSBmb3IgcmVwbGF5KVxuICpcbiAqIFRoZSBlbmdpbmUgKEZsb3djaGFydFRyYXZlcnNlcikgcmVjZWl2ZXMgdGhpcyBhcyBpdHMgcnVudGltZSBwYXJhbWV0ZXIuXG4gKiBBZnRlciBleGVjdXRpb24sIGNvbnN1bWVycyBxdWVyeSBpdCBmb3IgdGhlIGZ1bGwgZXhlY3V0aW9uIHN0YXRlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50TG9nIH0gZnJvbSAnLi4vbWVtb3J5L0V2ZW50TG9nLmpzJztcbmltcG9ydCB7IFNoYXJlZE1lbW9yeSB9IGZyb20gJy4uL21lbW9yeS9TaGFyZWRNZW1vcnkuanMnO1xuaW1wb3J0IHsgU3RhZ2VDb250ZXh0IH0gZnJvbSAnLi4vbWVtb3J5L1N0YWdlQ29udGV4dC5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIENvbW1pdEJ1bmRsZSxcbiAgQ29tbWl0VmFsdWVzTW9kZSxcbiAgUmVhZFRyYWNraW5nTW9kZSxcbiAgU3RhZ2VTbmFwc2hvdCxcbiAgV3JpdGVUcmFja2luZ01vZGUsXG59IGZyb20gJy4uL21lbW9yeS90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmVyU3RhdHMgfSBmcm9tICcuL0RlZmVycmVkT2JzZXJ2ZXJUaWVyLmpzJztcblxuLyoqIFNuYXBzaG90IG9mIGEgc2luZ2xlIHJlY29yZGVyJ3MgY29sbGVjdGVkIGRhdGEuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZGVyU25hcHNob3Qge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBTY29wZVJlY29yZGVyIHR5cGUgYW5kIHBhdHRlcm4gZGVzY3JpcHRpb24gKGUuZy4sIFwiVHJhbnNsYXRvciAoS2V5ZWRTdG9yZSkg4oCUIHBlci1zdGVwIHRva2VuIHVzYWdlXCIpLiAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIFByZWZlcnJlZCByZWFkLXRpbWUgb3BlcmF0aW9uIOKAlCBoaW50cyB0aGUgVUkgYWJvdXQgd2hpY2ggdmlldyB0byBzaG93IHByb21pbmVudGx5LiAqL1xuICBwcmVmZXJyZWRPcGVyYXRpb24/OiAndHJhbnNsYXRlJyB8ICdhY2N1bXVsYXRlJyB8ICdhZ2dyZWdhdGUnO1xuICBkYXRhOiB1bmtub3duO1xufVxuXG5leHBvcnQgdHlwZSBSdW50aW1lU25hcHNob3QgPSB7XG4gIHNoYXJlZFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgZXhlY3V0aW9uVHJlZTogU3RhZ2VTbmFwc2hvdDtcbiAgY29tbWl0TG9nOiBDb21taXRCdW5kbGVbXTtcbiAgLyoqXG4gICAqIEVuY29kaW5nIGRpc2NyaW1pbmFudCBmb3IgYGNvbW1pdExvZ2AgKCMxM2MtQik6IGAnZnVsbCdgIOKAlCBldmVyeSBgc2V0YFxuICAgKiBidW5kbGUgc3RvcmVzIHRoZSBmdWxsIGZpbmFsIHZhbHVlIChoaXN0b3JpY2FsKTsgYCdkZWx0YSdgIOKAlCBidW5kbGVzIG1heVxuICAgKiBjYXJyeSBgYXBwZW5kYC9gZGVsZXRlYCB0cmFjZSB2ZXJicyB3aXRoIHZlcmItcXVhbGlmaWVkIGBvdmVyd3JpdGVgXG4gICAqIHBheWxvYWRzICh0YWlscykuIE9mZmxpbmUgdG9vbGluZyBrZXlzIG9uIHRoaXMgZmllbGQ7IGEgYnVuZGxlIHN0cmVhbVxuICAgKiB3aXRob3V0IGNvbnRleHQgcmVtYWlucyBzZWxmLWRlc2NyaWJpbmcgdmlhIHRoZSB2ZXJicyB0aGVtc2VsdmVzLlxuICAgKi9cbiAgY29tbWl0VmFsdWVzOiBDb21taXRWYWx1ZXNNb2RlO1xuICAvKipcbiAgICogUGVyLXN1YmZsb3cgZXhlY3V0aW9uIHJlc3VsdHMsIERVQUwtS0VZRUQgKGRlc2lnbjogZG9jcy9kZXNpZ24vc3ViZmxvdy1jb21taXQtdmlzaWJpbGl0eS5tZCk6XG4gICAqICAgLSBieSBzdWJmbG93IFBBVEggKGBzdWJmbG93SWRgLCBlLmcuIGAnc2YtcGF5J2ApIOKGkiB0aGUgTEFTVCBpdGVyYXRpb24gKGJhY2stY29tcGF0KTsgdGhpc1xuICAgKiAgICAgaXMgd2hhdCBgZ2V0U3VidHJlZVNuYXBzaG90KHBhdGgpYCBhbmQgYGxpc3RTdWJmbG93UGF0aHMoKWAgcmVzb2x2ZS5cbiAgICogICAtIGJ5IHBlci1leGVjdXRpb24gbW91bnQgYHJ1bnRpbWVTdGFnZUlkYCAoZS5nLiBgJ3NmLXBheSM1J2ApIOKGkiBUSEFUIGl0ZXJhdGlvbidzIHJlc3VsdCwgc29cbiAgICogICAgIGEgTE9PUElORyBzdWJmbG93IHJldGFpbnMgRVZFUlkgaXRlcmF0aW9uIChub3QganVzdCB0aGUgbGFzdCkuIExvb2sgdXAgYSBzcGVjaWZpY1xuICAgKiAgICAgaXRlcmF0aW9uIGFzIGBzdWJmbG93UmVzdWx0c1tub2RlLnJ1bnRpbWVTdGFnZUlkXSA/PyBzdWJmbG93UmVzdWx0c1tub2RlLnN1YmZsb3dJZF1gLlxuICAgKiBCb3RoIGtleXMgcG9pbnQgYXQgdGhlIHNhbWUgb2JqZWN0IGZvciBhIHNpbmdsZSBtb3VudDsgaXRlcmF0ZSB3aXRoIGNhcmUgKGNvdW50IHZpYSB0aGVcbiAgICogcGF0aCBrZXlzIOKAlCB0aG9zZSB3aXRob3V0IGAnIydgKS4gVGhlIHBhdXNlIGNoZWNrcG9pbnQgY2FycmllcyBvbmx5IHRoZSBwYXRoIGtleXMsIGxlYW4uXG4gICAqL1xuICBzdWJmbG93UmVzdWx0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogU25hcHNob3QgZGF0YSBmcm9tIHJlY29yZGVycyB0aGF0IGltcGxlbWVudCB0b1NuYXBzaG90KCkuICovXG4gIHJlY29yZGVycz86IFJlY29yZGVyU25hcHNob3RbXTtcbiAgLyoqXG4gICAqIERlZmVycmVkLW9ic2VydmVyIGFjY291bnRpbmcgKFJGQy0wMDEgQmxvY2sgOSkg4oCUIHF1ZXVlIGRlcHRoLCBkcm9wcyxcbiAgICogZmx1c2gvYnVkZ2V0IGNvdW50ZXJzLCBwZXItbGlzdGVuZXIgdGltZSBhdHRyaWJ1dGlvbiwgYW5kIHRoZVxuICAgKiB0ZXJtaW5hbC1mbHVzaCBzdHJhbmRpbmcgY291bnQuIEFCU0VOVCB1bmxlc3MgYSByZWNvcmRlciB3YXMgYXR0YWNoZWRcbiAgICogd2l0aCBgeyBkZWxpdmVyeTogJ2RlZmVycmVkJyB9YCBvbiB0aGlzIGV4ZWN1dG9yICh6ZXJvLWNvc3QgZGlzY2lwbGluZSkuXG4gICAqL1xuICBvYnNlcnZlclN0YXRzPzogT2JzZXJ2ZXJTdGF0cztcbn07XG5cbmV4cG9ydCBjbGFzcyBFeGVjdXRpb25SdW50aW1lIHtcbiAgcHVibGljIGdsb2JhbFN0b3JlOiBTaGFyZWRNZW1vcnk7XG4gIC8qKlxuICAgKiBQYXJhbGxlbCByZWRhY3RlZCBtaXJyb3Igb2YgYGdsb2JhbFN0b3JlYC4gUG9wdWxhdGVkIGR1cmluZyB0cmF2ZXJzYWwgdmlhXG4gICAqIGBTdGFnZUNvbnRleHQuY29tbWl0KClgIHVzaW5nIHRoZSBhbHJlYWR5LWNvbXB1dGVkIHJlZGFjdGVkIHBhdGNoZXMuXG4gICAqIE9ubHkgZXhpc3RzIHdoZW4gYGVuYWJsZVJlZGFjdGVkTWlycm9yKClgIGhhcyBiZWVuIGNhbGxlZCDigJQgdHlwaWNhbGx5IGJ5XG4gICAqIGBGbG93Q2hhcnRFeGVjdXRvcmAgd2hlbiBhIGBSZWRhY3Rpb25Qb2xpY3lgIGlzIGNvbmZpZ3VyZWQuIE90aGVyd2lzZVxuICAgKiB1bmRlZmluZWQgYW5kIHplcm8gY29zdC5cbiAgICpcbiAgICogUmVhZCB2aWEgYGdldFNuYXBzaG90KHsgcmVkYWN0OiB0cnVlIH0pYC5cbiAgICovXG4gIHB1YmxpYyByZWRhY3RlZFN0b3JlPzogU2hhcmVkTWVtb3J5O1xuICBwdWJsaWMgcm9vdFN0YWdlQ29udGV4dDogU3RhZ2VDb250ZXh0O1xuICBwdWJsaWMgZXhlY3V0aW9uSGlzdG9yeTogRXZlbnRMb2c7XG4gIC8qKiBPcmlnaW5hbCByb290IGZvciBnZXRTbmFwc2hvdCgpIOKAlCBzZXQgYmVmb3JlIHJlc3VtZSBjaGFuZ2VzIHJvb3RTdGFnZUNvbnRleHQuICovXG4gIHByaXZhdGUgX3NuYXBzaG90Um9vdD86IFN0YWdlQ29udGV4dDtcbiAgcHJpdmF0ZSBfaW5pdGlhbFN0YXRlOiB1bmtub3duO1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWVzOiB1bmtub3duO1xuICAvKiogQWN0aXZlIGNvbW1pdC12YWx1ZXMgZW5jb2RpbmcgKCMxM2MtQikg4oCUIHN1cmZhY2VkIGFzIHRoZSBzbmFwc2hvdFxuICAgKiAgZGlzY3JpbWluYW50IHtAbGluayBSdW50aW1lU25hcHNob3QuY29tbWl0VmFsdWVzfS4gKi9cbiAgcHJpdmF0ZSBjb21taXRWYWx1ZXM6IENvbW1pdFZhbHVlc01vZGUgPSAnZnVsbCc7XG5cbiAgY29uc3RydWN0b3Iocm9vdE5hbWU6IHN0cmluZywgcm9vdElkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZXM/OiB1bmtub3duLCBpbml0aWFsU3RhdGU/OiB1bmtub3duKSB7XG4gICAgdGhpcy5faW5pdGlhbFN0YXRlID0gaW5pdGlhbFN0YXRlO1xuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VmFsdWVzO1xuICAgIHRoaXMuZXhlY3V0aW9uSGlzdG9yeSA9IG5ldyBFdmVudExvZyhpbml0aWFsU3RhdGUpO1xuICAgIHRoaXMuZ2xvYmFsU3RvcmUgPSBuZXcgU2hhcmVkTWVtb3J5KGRlZmF1bHRWYWx1ZXMsIGluaXRpYWxTdGF0ZSk7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0ID0gbmV3IFN0YWdlQ29udGV4dCgnJywgcm9vdE5hbWUsIHJvb3RJZCwgdGhpcy5nbG9iYWxTdG9yZSwgJycsIHRoaXMuZXhlY3V0aW9uSGlzdG9yeSk7XG4gIH1cblxuICAvKipcbiAgICogT3B0IGluIHRvIG1haW50YWluaW5nIGEgcGFyYWxsZWwgcmVkYWN0ZWQgbWlycm9yIG9mIGBnbG9iYWxTdG9yZWAuIEFmdGVyXG4gICAqIHRoaXMgY2FsbCwgZXZlcnkgYFN0YWdlQ29udGV4dC5jb21taXQoKWAgaW4gdGhlIHJ1biB3cml0ZXMgdGhlIHJlZGFjdGVkXG4gICAqIHBhdGNoZXMgKHRoZSBzYW1lIG9uZXMgZmVkIHRvIHRoZSBldmVudCBsb2cpIGludG8gYHJlZGFjdGVkU3RvcmVgIGluXG4gICAqIGFkZGl0aW9uIHRvIHRoZSByYXcgb25lcyB3cml0dGVuIHRvIGBnbG9iYWxTdG9yZWAuXG4gICAqXG4gICAqIFRoZSBtaXJyb3IgaXMgY3JlYXRlZCBsYXppbHkgYW5kIHByb3BhZ2F0ZWQgaW50byBhbGwgY2hpbGQgLyBuZXh0XG4gICAqIGNvbnRleHRzLCBzbyBpdCBjb3JyZWN0bHkgcmVmbGVjdHMgc3ViZmxvdy1zY29wZSB3cml0ZXMuIFdoZW4gbm9cbiAgICogYFJlZGFjdGlvblBvbGljeWAgaXMgY29uZmlndXJlZCwgY2FsbGVycyBzaG91bGQgc2tpcCB0aGlzIOKAlCB1bnVzZWRcbiAgICogYWxsb2NhdGlvbiwgbm8gZnVuY3Rpb25hbCBkaWZmZXJlbmNlIGluIHRoZSBzbmFwc2hvdC5cbiAgICovXG4gIGVuYWJsZVJlZGFjdGVkTWlycm9yKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlZGFjdGVkU3RvcmUpIHJldHVybjsgLy8gaWRlbXBvdGVudFxuICAgIHRoaXMucmVkYWN0ZWRTdG9yZSA9IG5ldyBTaGFyZWRNZW1vcnkoXG4gICAgICB0aGlzLl9kZWZhdWx0VmFsdWVzLFxuICAgICAgLy8gU2VlZCB3aXRoIHRoZSBzYW1lIGluaXRpYWwgc3RhdGUgYXMgdGhlIHJhdyBzdG9yZSBzbyB0aGUgbWlycm9yXG4gICAgICAvLyBzdGFydHMgZnJvbSBhIHNjcnViYmVkLW5vdGhpbmcgYmFzZWxpbmU7IHN1YnNlcXVlbnQgY29tbWl0cyBhcHBseVxuICAgICAgLy8gdGhlIHJlZGFjdGVkIHBhdGNoZXMgb24gdG9wLlxuICAgICAgdGhpcy5faW5pdGlhbFN0YXRlLFxuICAgICk7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0LnVzZVJlZGFjdGVkTWlycm9yKHRoaXMucmVkYWN0ZWRTdG9yZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSByZWFkLXRyYWNraW5nIHBvbGljeSAoIzE0KSBvbiB0aGUgcm9vdCBzdGFnZSBjb250ZXh0LiBEZXNjZW5kYW50XG4gICAqIGNvbnRleHRzIGluaGVyaXQgdmlhIGBjcmVhdGVOZXh0YC9gY3JlYXRlQ2hpbGRgOyBzdWJmbG93IHJvb3QgY29udGV4dHNcbiAgICogaW5oZXJpdCBmcm9tIHRoZWlyIHBhcmVudC1tb3VudCBjb250ZXh0IHZpYSBgU3ViZmxvd0V4ZWN1dG9yYC4gQ2FsbGVkIGJ5XG4gICAqIGBGbG93Q2hhcnRFeGVjdXRvci5jcmVhdGVUcmF2ZXJzZXIoKWAgd2hlbiB0aGUgZXhlY3V0b3IncyBwb2xpY3kgaXMgbm90XG4gICAqIHRoZSBkZWZhdWx0IGAnZnVsbCdgIOKAlCBpbmNsdWRpbmcgdGhlIHJlc3VtZSBwYXRoLCB3aGVyZSBpdCBpcyBhcHBsaWVkIHRvXG4gICAqIHRoZSBmcmVzaGx5LWNyZWF0ZWQgY29udGludWF0aW9uIHJvb3QuXG4gICAqL1xuICB1c2VSZWFkVHJhY2tpbmcobW9kZTogUmVhZFRyYWNraW5nTW9kZSk6IHZvaWQge1xuICAgIHRoaXMucm9vdFN0YWdlQ29udGV4dC51c2VSZWFkVHJhY2tpbmcobW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB3cml0ZS10cmFja2luZyBwb2xpY3kgKCMxM2MtQSkgb24gdGhlIHJvb3Qgc3RhZ2UgY29udGV4dCDigJQgdGhlXG4gICAqIHNpYmxpbmcgb2Yge0BsaW5rIHVzZVJlYWRUcmFja2luZ30sIHdpdGggaWRlbnRpY2FsIHBsdW1iaW5nOiBkZXNjZW5kYW50XG4gICAqIGNvbnRleHRzIGluaGVyaXQgdmlhIGBjcmVhdGVOZXh0YC9gY3JlYXRlQ2hpbGRgOyBzdWJmbG93IHJvb3QgY29udGV4dHNcbiAgICogaW5oZXJpdCBmcm9tIHRoZWlyIHBhcmVudC1tb3VudCBjb250ZXh0IHZpYSBgU3ViZmxvd0V4ZWN1dG9yYC4gQ2FsbGVkIGJ5XG4gICAqIGBGbG93Q2hhcnRFeGVjdXRvci5jcmVhdGVUcmF2ZXJzZXIoKWAgd2hlbiB0aGUgZXhlY3V0b3IncyBwb2xpY3kgaXMgbm90XG4gICAqIHRoZSBkZWZhdWx0IGAnZnVsbCdgIOKAlCBpbmNsdWRpbmcgdGhlIHJlc3VtZSBwYXRoLCB3aGVyZSBpdCBpcyBhcHBsaWVkIHRvXG4gICAqIHRoZSBmcmVzaGx5LWNyZWF0ZWQgY29udGludWF0aW9uIHJvb3QuXG4gICAqL1xuICB1c2VXcml0ZVRyYWNraW5nKG1vZGU6IFdyaXRlVHJhY2tpbmdNb2RlKTogdm9pZCB7XG4gICAgdGhpcy5yb290U3RhZ2VDb250ZXh0LnVzZVdyaXRlVHJhY2tpbmcobW9kZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBjb21taXQtdmFsdWVzIGVuY29kaW5nIHBvbGljeSAoIzEzYy1CKSBvbiB0aGUgcm9vdCBzdGFnZSBjb250ZXh0XG4gICAqIOKAlCB0aGUgdGhpcmQgZGlhbCBvZiB0aGUge0BsaW5rIHVzZVJlYWRUcmFja2luZ30ve0BsaW5rIHVzZVdyaXRlVHJhY2tpbmd9XG4gICAqIGZhbWlseSwgd2l0aCBpZGVudGljYWwgcGx1bWJpbmc6IGRlc2NlbmRhbnQgY29udGV4dHMgaW5oZXJpdCB2aWFcbiAgICogYGNyZWF0ZU5leHRgL2BjcmVhdGVDaGlsZGA7IHN1YmZsb3cgcm9vdCBjb250ZXh0cyBpbmhlcml0IGZyb20gdGhlaXJcbiAgICogcGFyZW50LW1vdW50IGNvbnRleHQgdmlhIGBTdWJmbG93RXhlY3V0b3JgLiBDYWxsZWQgYnlcbiAgICogYEZsb3dDaGFydEV4ZWN1dG9yLmNyZWF0ZVRyYXZlcnNlcigpYCB3aGVuIHRoZSBleGVjdXRvcidzIHBvbGljeSBpcyBub3RcbiAgICogdGhlIGRlZmF1bHQgYCdmdWxsJ2Ag4oCUIGluY2x1ZGluZyB0aGUgcmVzdW1lIHBhdGgsIHdoZXJlIGl0IGlzIGFwcGxpZWQgdG9cbiAgICogdGhlIGZyZXNobHktY3JlYXRlZCBjb250aW51YXRpb24gcm9vdC5cbiAgICovXG4gIHVzZUNvbW1pdFZhbHVlcyhtb2RlOiBDb21taXRWYWx1ZXNNb2RlKTogdm9pZCB7XG4gICAgdGhpcy5jb21taXRWYWx1ZXMgPSBtb2RlO1xuICAgIHRoaXMucm9vdFN0YWdlQ29udGV4dC51c2VDb21taXRWYWx1ZXMobW9kZSk7XG4gIH1cblxuICAvKiogUHJlc2VydmUgdGhlIGN1cnJlbnQgcm9vdFN0YWdlQ29udGV4dCBmb3Igc25hcHNob3RzIGJlZm9yZSBjaGFuZ2luZyBpdCBmb3IgcmVzdW1lLiAqL1xuICBwcmVzZXJ2ZVNuYXBzaG90Um9vdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3NuYXBzaG90Um9vdCkge1xuICAgICAgdGhpcy5fc25hcHNob3RSb290ID0gdGhpcy5yb290U3RhZ2VDb250ZXh0O1xuICAgIH1cbiAgfVxuXG4gIGdldFBpcGVsaW5lcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLmdsb2JhbFN0b3JlLmdldFN0YXRlKCk7XG4gICAgcmV0dXJuIHN0YXRlLnBpcGVsaW5lcyA/IE9iamVjdC5rZXlzKHN0YXRlLnBpcGVsaW5lcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgOiBbXTtcbiAgfVxuXG4gIHNldFJvb3RPYmplY3QocGF0aDogc3RyaW5nW10sIGtleTogc3RyaW5nLCB2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMucm9vdFN0YWdlQ29udGV4dC5zZXRPYmplY3QocGF0aCwga2V5LCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBydW50aW1lIHNuYXBzaG90LlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucy5yZWRhY3QgIFdoZW4gYHRydWVgLCByZXR1cm5zIGBzaGFyZWRTdGF0ZWAgZnJvbSB0aGVcbiAgICogICBwYXJhbGxlbCByZWRhY3RlZCBtaXJyb3IgKGlmIG9uZSB3YXMgZW5hYmxlZCkuIFRoaXMgaXMgdGhlIHNhZmUgdmlld1xuICAgKiAgIGZvciBzaGFyaW5nIHRyYWNlcyBleHRlcm5hbGx5IOKAlCBwYXN0ZSBpbnRvIGEgdmlld2VyLCBzaGlwIHRvIHN1cHBvcnQsXG4gICAqICAgZXRjLiBXaGVuIHRoZSBtaXJyb3Igd2FzIG5ldmVyIGVuYWJsZWQsIGZhbGxzIGJhY2sgdG8gcmF3IGBnbG9iYWxTdG9yZWBcbiAgICogICBhbmQgYSBkZXYtbW9kZSB3YXJuaW5nIGlzIGVtaXR0ZWQgKHNpbGVudCBpbiBwcm9kdWN0aW9uKS5cbiAgICpcbiAgICogICBEZWZhdWx0IGBmYWxzZWAgcHJlc2VydmVzIHRoZSBydW50aW1lIHZpZXcg4oCUIG5lY2Vzc2FyeSBmb3IgcGF1c2UgL1xuICAgKiAgIHJlc3VtZSAocmVzdW1wdGlvbiBtdXN0IHJlcGxheSBhZ2FpbnN0IHRoZSByZWFsIHZhbHVlcywgbm90XG4gICAqICAgJ1tSRURBQ1RFRF0nKS5cbiAgICpcbiAgICogT3RoZXIgZmllbGRzIChgZXhlY3V0aW9uVHJlZWAsIGBjb21taXRMb2dgKSBhcmUgdGhlIHNhbWUgZWl0aGVyIHdheSDigJRcbiAgICogdGhlIGNvbW1pdCBsb2cgaXMgYWxyZWFkeSByZWRhY3RlZCBhdCB3cml0ZS10aW1lLCBhbmQgdGhlIGV4ZWN1dGlvblxuICAgKiB0cmVlIG9ubHkgY2FycmllcyBzdHJ1Y3R1cmFsIG1ldGFkYXRhLlxuICAgKi9cbiAgZ2V0U25hcHNob3Qob3B0aW9ucz86IHsgcmVkYWN0PzogYm9vbGVhbiB9KTogUnVudGltZVNuYXBzaG90IHtcbiAgICBjb25zdCBzbmFwc2hvdFJvb3QgPSB0aGlzLl9zbmFwc2hvdFJvb3QgPz8gdGhpcy5yb290U3RhZ2VDb250ZXh0O1xuICAgIGNvbnN0IHVzZVJlZGFjdGVkID0gb3B0aW9ucz8ucmVkYWN0ID09PSB0cnVlICYmIHRoaXMucmVkYWN0ZWRTdG9yZSAhPT0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICBzaGFyZWRTdGF0ZTogdXNlUmVkYWN0ZWQgPyB0aGlzLnJlZGFjdGVkU3RvcmUhLmdldFN0YXRlKCkgOiB0aGlzLmdsb2JhbFN0b3JlLmdldFN0YXRlKCksXG4gICAgICBleGVjdXRpb25UcmVlOiBzbmFwc2hvdFJvb3QuZ2V0U25hcHNob3QoKSxcbiAgICAgIGNvbW1pdExvZzogdGhpcy5leGVjdXRpb25IaXN0b3J5Lmxpc3QoKSxcbiAgICAgIGNvbW1pdFZhbHVlczogdGhpcy5jb21taXRWYWx1ZXMsXG4gICAgfTtcbiAgfVxufVxuIl19