@plumile/router 0.1.194 → 0.1.196

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.
@@ -1,7 +1,9 @@
1
1
  import { parse as parseFilters } from '@plumile/filter-query/parse.js';
2
+ import { FILTER_OPERATORS } from '@plumile/filter-query/values.js';
2
3
  import { buildRoutes } from '../builder.js';
3
4
  import { prepareMatch } from '../tools.js';
4
5
  import { parseRawQuery } from '../tools/query.js';
6
+ import buildCombinedSearch from '../tools/buildCombinedSearch.js';
5
7
  function buildResolvedLoadState(preparedMatch) {
6
8
  const activeLoadState = {
7
9
  status: 'resolved',
@@ -73,8 +75,50 @@ function parseSearchState(search, querySchema) {
73
75
  filterDiagnostics: parsed.diagnostics,
74
76
  };
75
77
  }
76
- function createStaticRoutingContext(entry) {
78
+ function createStaticRoutingContext(entry, flatRoutes) {
79
+ const filterOperators = new Set(FILTER_OPERATORS);
80
+ const looksLikeFilters = (value) => {
81
+ if (value == null || typeof value !== 'object' || Array.isArray(value)) {
82
+ return false;
83
+ }
84
+ return Object.values(value).some((fieldValue) => {
85
+ if (fieldValue != null &&
86
+ typeof fieldValue === 'object' &&
87
+ !Array.isArray(fieldValue)) {
88
+ return Object.keys(fieldValue).some((key) => {
89
+ return filterOperators.has(key);
90
+ });
91
+ }
92
+ return false;
93
+ });
94
+ };
77
95
  return {
96
+ buildSearch({ pathname, query, filters }) {
97
+ const targetPathname = pathname ?? entry.location.pathname;
98
+ const destination = findStaticMatchedRoute(flatRoutes, {
99
+ ...entry.location,
100
+ pathname: targetPathname,
101
+ });
102
+ let querySchema = entry.activeQuerySchema;
103
+ if (destination != null) {
104
+ querySchema = destination.route.routes.at(-1)?.querySchema;
105
+ }
106
+ const useQueryAsFilters = filters == null &&
107
+ querySchema != null &&
108
+ query != null &&
109
+ looksLikeFilters(query);
110
+ let filtersInput = filters;
111
+ let queryInput = query;
112
+ if (useQueryAsFilters) {
113
+ filtersInput = query;
114
+ queryInput = undefined;
115
+ }
116
+ return buildCombinedSearch({
117
+ filters: filtersInput,
118
+ query: queryInput,
119
+ querySchema,
120
+ });
121
+ },
78
122
  get: () => {
79
123
  return entry;
80
124
  },
@@ -131,7 +175,7 @@ export async function createStaticRouter(routes, options) {
131
175
  route,
132
176
  loadState,
133
177
  };
134
- const routerContext = createStaticRoutingContext(entry);
178
+ const routerContext = createStaticRoutingContext(entry, flatRoutes);
135
179
  return {
136
180
  context: routerContext,
137
181
  entry,
@@ -139,4 +183,4 @@ export async function createStaticRouter(routes, options) {
139
183
  };
140
184
  }
141
185
  export default createStaticRouter;
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhdGljUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvY3JlYXRlU3RhdGljUm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQTZDbEQsU0FBUyxzQkFBc0IsQ0FDN0IsYUFJa0I7SUFLbEIsTUFBTSxlQUFlLEdBQTBCO1FBQzdDLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLFlBQVksRUFBRSxDQUFDO1FBQ2YsYUFBYSxFQUFFLENBQUM7UUFDaEIsT0FBTyxFQUFFLENBQUM7S0FDWCxDQUFDO0lBQ0YsT0FBTztRQUNMLGVBQWU7UUFDZixTQUFTLEVBQUU7WUFDVCxHQUFHLGVBQWU7WUFDbEIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQy9DLE9BQU87b0JBQ0wsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO29CQUNsQixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7b0JBQzFCLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWTtvQkFDbEMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsSUFBSSxNQUFNO29CQUM5RCxVQUFVLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxNQUFNO29CQUN2RCxNQUFNLEVBQUUsVUFBVTtpQkFDbkIsQ0FBQztZQUNKLENBQUMsQ0FBQztTQUNIO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFLRCxTQUFTLGVBQWUsQ0FBQyxNQUEw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T0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQzVCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLFFBQVE7UUFDUixhQUFhO1FBQ2IsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO1FBQ3hCLFNBQVMsRUFBRSxRQUFRLENBQUMsTUFBTTtRQUMxQixLQUFLO1FBQ0wsU0FBUztLQUNWLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLGFBQWE7UUFDdEIsS0FBSztRQUNMLE1BQU0sRUFBRSxNQUFXO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsZUFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZUZpbHRlcnMgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvcGFyc2UuanMnO1xuaW1wb3J0IHsgdHlwZSBTY2hlbWEgYXMgRmlsdGVyU2NoZW1hIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgeyBidWlsZFJvdXRlcyB9IGZyb20gJy4uL2J1aWxkZXIuanMnO1xuaW1wb3J0IHsgcHJlcGFyZU1hdGNoIH0gZnJvbSAnLi4vdG9vbHMuanMnO1xuaW1wb3J0IHsgcGFyc2VSYXdRdWVyeSB9IGZyb20gJy4uL3Rvb2xzL3F1ZXJ5LmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQW55Um91dGUsXG4gIFJvdXRlRW50cnksXG4gIFJvdXRpbmdDb250ZXh0VHlwZSxcbiAgVW5rbm93bkZpbHRlcnMsXG4gIFVua25vd25RdWVyeVNoYXBlLFxuICBSYXdRdWVyeSxcbiAgUm91dGVyQWN0aXZlTG9hZFN0YXRlLFxuICBSb3V0ZXJMb2FkU3RhdGUsXG59IGZyb20gJy4uL3R5cGVzLmpzJztcblxudHlwZSBSb3V0ZXJRdWVyeVNjaGVtYSA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgU3RhdGljUm91dGVyTG9jYXRpb24gPSB7XG4gIGhhc2g/OiBzdHJpbmc7XG4gIHBhdGhuYW1lOiBzdHJpbmc7XG4gIHNlYXJjaD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVN0YXRpY1JvdXRlck9wdGlvbnM8VENvbnRleHQ+ID0ge1xuICBjb250ZXh0PzogVENvbnRleHQ7XG4gIGxvY2F0aW9uOiBTdGF0aWNSb3V0ZXJMb2NhdGlvbjtcbn07XG5cbmV4cG9ydCB0eXBlIENyZWF0ZVN0YXRpY1JvdXRlclJldHVybjxUQ29udGV4dCwgUiBleHRlbmRzIEFueVJvdXRlW10+ID0ge1xuICBjb250ZXh0OiBSb3V0aW5nQ29udGV4dFR5cGU8XG4gICAgUGFyYW1EYXRhLFxuICAgIFJvdXRlclF1ZXJ5U2NoZW1hLFxuICAgIFVua25vd25RdWVyeVNoYXBlLFxuICAgIFRDb250ZXh0XG4gID47XG4gIGVudHJ5OiBSb3V0ZUVudHJ5PFBhcmFtRGF0YSwgUm91dGVyUXVlcnlTY2hlbWEsIFRDb250ZXh0PjtcbiAgcm91dGVzOiBSO1xufTtcblxudHlwZSBQYXJzZWRTZWFyY2hTdGF0ZSA9IHtcbiAgcXVlcnk6IFJhd1F1ZXJ5O1xuICBmaWx0ZXJzPzogVW5rbm93bkZpbHRlcnM7XG4gIGZpbHRlckRpYWdub3N0aWNzPzogRmlsdGVyRGlhZ25vc3RpY1tdO1xufTtcblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBidWlsZFJlc29sdmVkTG9hZFN0YXRlPFRDb250ZXh0PihcbiAgcHJlcGFyZWRNYXRjaDogUm91dGVFbnRyeTxcbiAgICBQYXJhbURhdGEsXG4gICAgUm91dGVyUXVlcnlTY2hlbWEsXG4gICAgVENvbnRleHRcbiAgPlsncHJlcGFyZWRNYXRjaCddLFxuKToge1xuICBhY3RpdmVMb2FkU3RhdGU6IFJvdXRlckFjdGl2ZUxvYWRTdGF0ZTtcbiAgbG9hZFN0YXRlOiBSb3V0ZXJMb2FkU3RhdGU7XG59IHtcbiAgY29uc3QgYWN0aXZlTG9hZFN0YXRlOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdGUgPSB7XG4gICAgc3RhdHVzOiAncmVzb2x2ZWQnLFxuICAgIHBlbmRpbmdDb3VudDogMCxcbiAgICByZWplY3RlZENvdW50OiAwLFxuICAgIHZlcnNpb246IDAsXG4gIH07XG4gIHJldHVybiB7XG4gICAgYWN0aXZlTG9hZFN0YXRlLFxuICAgIGxvYWRTdGF0ZToge1xuICAgICAgLi4uYWN0aXZlTG9hZFN0YXRlLFxuICAgICAgc2VnbWVudHM6IHByZXBhcmVkTWF0Y2guc2VnbWVudHMubWFwKChzZWdtZW50KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcGF0aDogc2VnbWVudC5wYXRoLFxuICAgICAgICAgIGZ1bGxQYXRoOiBzZWdtZW50LmZ1bGxQYXRoLFxuICAgICAgICAgIHNlZ21lbnRJbmRleDogc2VnbWVudC5zZWdtZW50SW5kZXgsXG4gICAgICAgICAgcHJlcGFyZVN0YXR1czogc2VnbWVudC5wcmVwYXJlZFJlc291cmNlPy5nZXRTdGF0dXMoKSA/PyAnaWRsZScsXG4gICAgICAgICAgY29kZVN0YXR1czogc2VnbWVudC5yZXNvdXJjZVBhZ2U/LmdldFN0YXR1cygpID8/ICdpZGxlJyxcbiAgICAgICAgICBzdGF0dXM6ICdyZXNvbHZlZCcsXG4gICAgICAgIH07XG4gICAgICB9KSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVNlYXJjaChzZWFyY2g6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gIGlmIChzZWFyY2ggPT0gbnVsbCB8fCBzZWFyY2ggPT09ICcnKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGlmIChzZWFyY2guc3RhcnRzV2l0aCgnPycpKSB7XG4gICAgcmV0dXJuIHNlYXJjaDtcbiAgfVxuICByZXR1cm4gYD8ke3NlYXJjaH1gO1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVN0YXRpY0xvY2F0aW9uKGxvY2F0aW9uOiBTdGF0aWNSb3V0ZXJMb2NhdGlvbik6IExvY2F0aW9uIHtcbiAgbGV0IHsgcGF0aG5hbWUgfSA9IGxvY2F0aW9uO1xuICBpZiAoIXBhdGhuYW1lLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHBhdGhuYW1lID0gYC8ke3BhdGhuYW1lfWA7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBoYXNoOiBsb2NhdGlvbi5oYXNoID8/ICcnLFxuICAgIHBhdGhuYW1lLFxuICAgIHNlYXJjaDogbm9ybWFsaXplU2VhcmNoKGxvY2F0aW9uLnNlYXJjaCksXG4gIH0gYXMgTG9jYXRpb247XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShcbiAgcm91dGVzOiBSZXR1cm5UeXBlPHR5cGVvZiBidWlsZFJvdXRlcz4sXG4gIGxvY2F0aW9uOiBMb2NhdGlvbixcbikge1xuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlcykge1xuICAgIGNvbnN0IG1hdGNoID0gcm91dGUubWF0Y2hGdW5jdGlvbihsb2NhdGlvbi5wYXRobmFtZSk7XG4gICAgaWYgKG1hdGNoICE9PSBmYWxzZSkge1xuICAgICAgY29uc3QgeyBwYXRoLCBwYXJhbXMgfSA9IG1hdGNoO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF0Y2gsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICBwYXRoLFxuICAgICAgICBwYXJhbXMsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBwYXJzZVNlYXJjaFN0YXRlKFxuICBzZWFyY2g6IHN0cmluZyxcbiAgcXVlcnlTY2hlbWE6IFJvdXRlclF1ZXJ5U2NoZW1hLFxuKTogUGFyc2VkU2VhcmNoU3RhdGUge1xuICBjb25zdCBxdWVyeSA9IHBhcnNlUmF3UXVlcnkoc2VhcmNoKTtcbiAgaWYgKHF1ZXJ5U2NoZW1hID09IG51bGwpIHtcbiAgICByZXR1cm4geyBxdWVyeSB9O1xuICB9XG4gIGNvbnN0IHBhcnNlZCA9IHBhcnNlRmlsdGVycyhzZWFyY2gsIHF1ZXJ5U2NoZW1hKTtcbiAgcmV0dXJuIHtcbiAgICBxdWVyeSxcbiAgICBmaWx0ZXJzOiBwYXJzZWQuZmlsdGVycyxcbiAgICBmaWx0ZXJEaWFnbm9zdGljczogcGFyc2VkLmRpYWdub3N0aWNzLFxuICB9O1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRpY1JvdXRpbmdDb250ZXh0PFRDb250ZXh0PihcbiAgZW50cnk6IFJvdXRlRW50cnk8UGFyYW1EYXRhLCBSb3V0ZXJRdWVyeVNjaGVtYSwgVENvbnRleHQ+LFxuKTogUm91dGluZ0NvbnRleHRUeXBlPFxuICBQYXJhbURhdGEsXG4gIFJvdXRlclF1ZXJ5U2NoZW1hLFxuICBVbmtub3duUXVlcnlTaGFwZSxcbiAgVENvbnRleHRcbj4ge1xuICByZXR1cm4ge1xuICAgIGdldDogKCkgPT4ge1xuICAgICAgcmV0dXJuIGVudHJ5O1xuICAgIH0sXG4gICAgaGlzdG9yeToge1xuICAgICAgaW5pdCgpIHt9LFxuICAgICAgcHVzaCgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGF0aWMgcm91dGVyIGNhbm5vdCBwdXNoIGhpc3RvcnknKTtcbiAgICAgIH0sXG4gICAgICBzZXQoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhdGljIHJvdXRlciBjYW5ub3QgcmVwbGFjZSBoaXN0b3J5Jyk7XG4gICAgICB9LFxuICAgICAgc3Vic2NyaWJlKCkge1xuICAgICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgICB9LFxuICAgIH0gYXMgdW5rbm93biBhcyBSb3V0aW5nQ29udGV4dFR5cGU8XG4gICAgICBQYXJhbURhdGEsXG4gICAgICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgICAgIFVua25vd25RdWVyeVNoYXBlLFxuICAgICAgVENvbnRleHRcbiAgICA+WydoaXN0b3J5J10sXG4gICAgbmF2aWdhdGUoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXRpYyByb3V0ZXIgY2Fubm90IG5hdmlnYXRlJyk7XG4gICAgfSxcbiAgICBwcmVsb2FkKCkge30sXG4gICAgcHJlbG9hZENvZGUoKSB7fSxcbiAgICBzdWJzY3JpYmUoKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfSxcbiAgfTtcbn1cblxuLyoqXG4gKlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGVyPFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFIgZXh0ZW5kcyBBbnlSb3V0ZVtdID0gQW55Um91dGVbXSxcbj4oXG4gIHJvdXRlczogWy4uLlJdIHwgQW55Um91dGVbXSxcbiAgb3B0aW9uczogQ3JlYXRlU3RhdGljUm91dGVyT3B0aW9uczxUQ29udGV4dD4sXG4pOiBQcm9taXNlPENyZWF0ZVN0YXRpY1JvdXRlclJldHVybjxUQ29udGV4dCwgUj4+IHtcbiAgY29uc3QgbG9jYXRpb24gPSBub3JtYWxpemVTdGF0aWNMb2NhdGlvbihvcHRpb25zLmxvY2F0aW9uKTtcbiAgY29uc3QgZmxhdFJvdXRlcyA9IGJ1aWxkUm91dGVzKHJvdXRlcyk7XG4gIGNvbnN0IHJvdXRlID0gZmluZFN0YXRpY01hdGNoZWRSb3V0ZShmbGF0Um91dGVzLCBsb2NhdGlvbik7XG4gIGNvbnN0IGFjdGl2ZVF1ZXJ5U2NoZW1hID0gcm91dGU/LnJvdXRlLnJvdXRlcy5hdCgtMSk/LnF1ZXJ5U2NoZW1hO1xuICBjb25zdCBzZWFyY2hTdGF0ZSA9IHBhcnNlU2VhcmNoU3RhdGUobG9jYXRpb24uc2VhcmNoLCBhY3RpdmVRdWVyeVNjaGVtYSk7XG4gIGNvbnN0IHJvdXRlQ29udGV4dCA9IG9wdGlvbnMuY29udGV4dCBhcyBUQ29udGV4dDtcbiAgbGV0IHJvdXRlSW5wdXQ6IFJhd1F1ZXJ5IHwgVW5rbm93bkZpbHRlcnMgPSBzZWFyY2hTdGF0ZS5xdWVyeTtcbiAgaWYgKGFjdGl2ZVF1ZXJ5U2NoZW1hICE9IG51bGwpIHtcbiAgICByb3V0ZUlucHV0ID0gc2VhcmNoU3RhdGUuZmlsdGVycyA/PyB7fTtcbiAgfVxuICBjb25zdCBwcmVwYXJlZE1hdGNoID0gcHJlcGFyZU1hdGNoKFxuICAgIHJvdXRlLFxuICAgIHJvdXRlSW5wdXQsXG4gICAgdW5kZWZpbmVkLFxuICAgIHJvdXRlQ29udGV4dCxcbiAgKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBwcmVwYXJlZE1hdGNoLnNlZ21lbnRzLm1hcChhc3luYyAoc2VnbWVudCkgPT4ge1xuICAgICAgYXdhaXQgc2VnbWVudC5wcmVwYXJlZFJlc291cmNlPy5sb2FkKCk7XG4gICAgICBhd2FpdCBzZWdtZW50LnJlc291cmNlUGFnZT8ubG9hZCgpO1xuICAgIH0pLFxuICApO1xuICBjb25zdCB7IGFjdGl2ZUxvYWRTdGF0ZSwgbG9hZFN0YXRlIH0gPSBidWlsZFJlc29sdmVkTG9hZFN0YXRlKHByZXBhcmVkTWF0Y2gpO1xuXG4gIGNvbnN0IGVudHJ5OiBSb3V0ZUVudHJ5PFBhcmFtRGF0YSwgUm91dGVyUXVlcnlTY2hlbWEsIFRDb250ZXh0PiA9IHtcbiAgICBhY3RpdmVRdWVyeVNjaGVtYSxcbiAgICBhY3RpdmVMb2FkU3RhdGUsXG4gICAgY29udGV4dDogcm91dGVDb250ZXh0LFxuICAgIGZpbHRlckRpYWdub3N0aWNzOiBzZWFyY2hTdGF0ZS5maWx0ZXJEaWFnbm9zdGljcyxcbiAgICBmaWx0ZXJzOiBzZWFyY2hTdGF0ZS5maWx0ZXJzLFxuICAgIGZvcmNlUmVyZW5kZXI6IGZhbHNlLFxuICAgIGxvY2F0aW9uLFxuICAgIHByZXBhcmVkTWF0Y2gsXG4gICAgcXVlcnk6IHNlYXJjaFN0YXRlLnF1ZXJ5LFxuICAgIHJhd1NlYXJjaDogbG9jYXRpb24uc2VhcmNoLFxuICAgIHJvdXRlLFxuICAgIGxvYWRTdGF0ZSxcbiAgfTtcblxuICBjb25zdCByb3V0ZXJDb250ZXh0ID0gY3JlYXRlU3RhdGljUm91dGluZ0NvbnRleHQoZW50cnkpO1xuXG4gIHJldHVybiB7XG4gICAgY29udGV4dDogcm91dGVyQ29udGV4dCxcbiAgICBlbnRyeSxcbiAgICByb3V0ZXM6IHJvdXRlcyBhcyBSLFxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcmVhdGVTdGF0aWNSb3V0ZXI7XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU3RhdGljUm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvY3JlYXRlU3RhdGljUm91dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLElBQUksWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLG1CQUFtQixNQUFNLGlDQUFpQyxDQUFDO0FBNkNsRSxTQUFTLHNCQUFzQixDQUM3QixhQUlrQjtJQUtsQixNQUFNLGVBQWUsR0FBMEI7UUFDN0MsTUFBTSxFQUFFLFVBQVU7UUFDbEIsWUFBWSxFQUFFLENBQUM7UUFDZixhQUFhLEVBQUUsQ0FBQztRQUNoQixPQUFPLEVBQUUsQ0FBQztLQUNYLENBQUM7SUFDRixPQUFPO1FBQ0wsZUFBZTtRQUNmLFNBQVMsRUFBRTtZQUNULEdBQUcsZUFBZTtZQUNsQixRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDL0MsT0FBTztvQkFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7b0JBQ2xCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtvQkFDMUIsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO29CQUNsQyxhQUFhLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxJQUFJLE1BQU07b0JBQzlELFVBQVUsRUFBRSxPQUFPLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLE1BQU07b0JBQ3ZELE1BQU0sRUFBRSxV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ZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgeyBwYXJzZSBhcyBwYXJzZUZpbHRlcnMgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvcGFyc2UuanMnO1xuaW1wb3J0IHsgdHlwZSBTY2hlbWEgYXMgRmlsdGVyU2NoZW1hIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L3R5cGVzLmpzJztcbmltcG9ydCB7IEZJTFRFUl9PUEVSQVRPUlMgfSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdmFsdWVzLmpzJztcbmltcG9ydCB0eXBlIHsgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgeyBidWlsZFJvdXRlcyB9IGZyb20gJy4uL2J1aWxkZXIuanMnO1xuaW1wb3J0IHsgcHJlcGFyZU1hdGNoIH0gZnJvbSAnLi4vdG9vbHMuanMnO1xuaW1wb3J0IHsgcGFyc2VSYXdRdWVyeSB9IGZyb20gJy4uL3Rvb2xzL3F1ZXJ5LmpzJztcbmltcG9ydCBidWlsZENvbWJpbmVkU2VhcmNoIGZyb20gJy4uL3Rvb2xzL2J1aWxkQ29tYmluZWRTZWFyY2guanMnO1xuaW1wb3J0IHR5cGUge1xuICBBbnlSb3V0ZSxcbiAgUm91dGVFbnRyeSxcbiAgUm91dGluZ0NvbnRleHRUeXBlLFxuICBVbmtub3duRmlsdGVycyxcbiAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFJhd1F1ZXJ5LFxuICBSb3V0ZXJBY3RpdmVMb2FkU3RhdGUsXG4gIFJvdXRlckxvYWRTdGF0ZSxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuXG50eXBlIFJvdXRlclF1ZXJ5U2NoZW1hID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBTdGF0aWNSb3V0ZXJMb2NhdGlvbiA9IHtcbiAgaGFzaD86IHN0cmluZztcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlU3RhdGljUm91dGVyT3B0aW9uczxUQ29udGV4dD4gPSB7XG4gIGNvbnRleHQ/OiBUQ29udGV4dDtcbiAgbG9jYXRpb246IFN0YXRpY1JvdXRlckxvY2F0aW9uO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlU3RhdGljUm91dGVyUmV0dXJuPFRDb250ZXh0LCBSIGV4dGVuZHMgQW55Um91dGVbXT4gPSB7XG4gIGNvbnRleHQ6IFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgICBQYXJhbURhdGEsXG4gICAgUm91dGVyUXVlcnlTY2hlbWEsXG4gICAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gICAgVENvbnRleHRcbiAgPjtcbiAgZW50cnk6IFJvdXRlRW50cnk8UGFyYW1EYXRhLCBSb3V0ZXJRdWVyeVNjaGVtYSwgVENvbnRleHQ+O1xuICByb3V0ZXM6IFI7XG59O1xuXG50eXBlIFBhcnNlZFNlYXJjaFN0YXRlID0ge1xuICBxdWVyeTogUmF3UXVlcnk7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgZmlsdGVyRGlhZ25vc3RpY3M/OiBGaWx0ZXJEaWFnbm9zdGljW107XG59O1xuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkUmVzb2x2ZWRMb2FkU3RhdGU8VENvbnRleHQ+KFxuICBwcmVwYXJlZE1hdGNoOiBSb3V0ZUVudHJ5PFxuICAgIFBhcmFtRGF0YSxcbiAgICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgICBUQ29udGV4dFxuICA+WydwcmVwYXJlZE1hdGNoJ10sXG4pOiB7XG4gIGFjdGl2ZUxvYWRTdGF0ZTogUm91dGVyQWN0aXZlTG9hZFN0YXRlO1xuICBsb2FkU3RhdGU6IFJvdXRlckxvYWRTdGF0ZTtcbn0ge1xuICBjb25zdCBhY3RpdmVMb2FkU3RhdGU6IFJvdXRlckFjdGl2ZUxvYWRTdGF0ZSA9IHtcbiAgICBzdGF0dXM6ICdyZXNvbHZlZCcsXG4gICAgcGVuZGluZ0NvdW50OiAwLFxuICAgIHJlamVjdGVkQ291bnQ6IDAsXG4gICAgdmVyc2lvbjogMCxcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBhY3RpdmVMb2FkU3RhdGUsXG4gICAgbG9hZFN0YXRlOiB7XG4gICAgICAuLi5hY3RpdmVMb2FkU3RhdGUsXG4gICAgICBzZWdtZW50czogcHJlcGFyZWRNYXRjaC5zZWdtZW50cy5tYXAoKHNlZ21lbnQpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwYXRoOiBzZWdtZW50LnBhdGgsXG4gICAgICAgICAgZnVsbFBhdGg6IHNlZ21lbnQuZnVsbFBhdGgsXG4gICAgICAgICAgc2VnbWVudEluZGV4OiBzZWdtZW50LnNlZ21lbnRJbmRleCxcbiAgICAgICAgICBwcmVwYXJlU3RhdHVzOiBzZWdtZW50LnByZXBhcmVkUmVzb3VyY2U/LmdldFN0YXR1cygpID8/ICdpZGxlJyxcbiAgICAgICAgICBjb2RlU3RhdHVzOiBzZWdtZW50LnJlc291cmNlUGFnZT8uZ2V0U3RhdHVzKCkgPz8gJ2lkbGUnLFxuICAgICAgICAgIHN0YXR1czogJ3Jlc29sdmVkJyxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU2VhcmNoKHNlYXJjaDogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgaWYgKHNlYXJjaCA9PSBudWxsIHx8IHNlYXJjaCA9PT0gJycpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgaWYgKHNlYXJjaC5zdGFydHNXaXRoKCc/JykpIHtcbiAgICByZXR1cm4gc2VhcmNoO1xuICB9XG4gIHJldHVybiBgPyR7c2VhcmNofWA7XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gbm9ybWFsaXplU3RhdGljTG9jYXRpb24obG9jYXRpb246IFN0YXRpY1JvdXRlckxvY2F0aW9uKTogTG9jYXRpb24ge1xuICBsZXQgeyBwYXRobmFtZSB9ID0gbG9jYXRpb247XG4gIGlmICghcGF0aG5hbWUuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcGF0aG5hbWUgPSBgLyR7cGF0aG5hbWV9YDtcbiAgfVxuICByZXR1cm4ge1xuICAgIGhhc2g6IGxvY2F0aW9uLmhhc2ggPz8gJycsXG4gICAgcGF0aG5hbWUsXG4gICAgc2VhcmNoOiBub3JtYWxpemVTZWFyY2gobG9jYXRpb24uc2VhcmNoKSxcbiAgfSBhcyBMb2NhdGlvbjtcbn1cblxuLyoqXG4gKlxuICovXG5mdW5jdGlvbiBmaW5kU3RhdGljTWF0Y2hlZFJvdXRlKFxuICByb3V0ZXM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkUm91dGVzPixcbiAgbG9jYXRpb246IExvY2F0aW9uLFxuKSB7XG4gIGZvciAoY29uc3Qgcm91dGUgb2Ygcm91dGVzKSB7XG4gICAgY29uc3QgbWF0Y2ggPSByb3V0ZS5tYXRjaEZ1bmN0aW9uKGxvY2F0aW9uLnBhdGhuYW1lKTtcbiAgICBpZiAobWF0Y2ggIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCB7IHBhdGgsIHBhcmFtcyB9ID0gbWF0Y2g7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtYXRjaCxcbiAgICAgICAgcm91dGUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIHBhcmFtcyxcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqXG4gKi9cbmZ1bmN0aW9uIHBhcnNlU2VhcmNoU3RhdGUoXG4gIHNlYXJjaDogc3RyaW5nLFxuICBxdWVyeVNjaGVtYTogUm91dGVyUXVlcnlTY2hlbWEsXG4pOiBQYXJzZWRTZWFyY2hTdGF0ZSB7XG4gIGNvbnN0IHF1ZXJ5ID0gcGFyc2VSYXdRdWVyeShzZWFyY2gpO1xuICBpZiAocXVlcnlTY2hlbWEgPT0gbnVsbCkge1xuICAgIHJldHVybiB7IHF1ZXJ5IH07XG4gIH1cbiAgY29uc3QgcGFyc2VkID0gcGFyc2VGaWx0ZXJzKHNlYXJjaCwgcXVlcnlTY2hlbWEpO1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5LFxuICAgIGZpbHRlcnM6IHBhcnNlZC5maWx0ZXJzLFxuICAgIGZpbHRlckRpYWdub3N0aWNzOiBwYXJzZWQuZGlhZ25vc3RpY3MsXG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZnVuY3Rpb24gY3JlYXRlU3RhdGljUm91dGluZ0NvbnRleHQ8VENvbnRleHQ+KFxuICBlbnRyeTogUm91dGVFbnRyeTxQYXJhbURhdGEsIFJvdXRlclF1ZXJ5U2NoZW1hLCBUQ29udGV4dD4sXG4gIGZsYXRSb3V0ZXM6IFJldHVyblR5cGU8dHlwZW9mIGJ1aWxkUm91dGVzPixcbik6IFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgUGFyYW1EYXRhLFxuICBSb3V0ZXJRdWVyeVNjaGVtYSxcbiAgVW5rbm93blF1ZXJ5U2hhcGUsXG4gIFRDb250ZXh0XG4+IHtcbiAgY29uc3QgZmlsdGVyT3BlcmF0b3JzID0gbmV3IFNldDxzdHJpbmc+KEZJTFRFUl9PUEVSQVRPUlMpO1xuICBjb25zdCBsb29rc0xpa2VGaWx0ZXJzID0gKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKHZhbHVlID09IG51bGwgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh2YWx1ZSkuc29tZSgoZmllbGRWYWx1ZSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBmaWVsZFZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgdHlwZW9mIGZpZWxkVmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAgICFBcnJheS5pc0FycmF5KGZpZWxkVmFsdWUpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGZpZWxkVmFsdWUpLnNvbWUoKGtleSkgPT4ge1xuICAgICAgICAgIHJldHVybiBmaWx0ZXJPcGVyYXRvcnMuaGFzKGtleSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICB9O1xuICByZXR1cm4ge1xuICAgIGJ1aWxkU2VhcmNoKHsgcGF0aG5hbWUsIHF1ZXJ5LCBmaWx0ZXJzIH0pIHtcbiAgICAgIGNvbnN0IHRhcmdldFBhdGhuYW1lID0gcGF0aG5hbWUgPz8gZW50cnkubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgICBjb25zdCBkZXN0aW5hdGlvbiA9IGZpbmRTdGF0aWNNYXRjaGVkUm91dGUoZmxhdFJvdXRlcywge1xuICAgICAgICAuLi5lbnRyeS5sb2NhdGlvbixcbiAgICAgICAgcGF0aG5hbWU6IHRhcmdldFBhdGhuYW1lLFxuICAgICAgfSk7XG4gICAgICBsZXQgcXVlcnlTY2hlbWEgPSBlbnRyeS5hY3RpdmVRdWVyeVNjaGVtYTtcbiAgICAgIGlmIChkZXN0aW5hdGlvbiAhPSBudWxsKSB7XG4gICAgICAgIHF1ZXJ5U2NoZW1hID0gZGVzdGluYXRpb24ucm91dGUucm91dGVzLmF0KC0xKT8ucXVlcnlTY2hlbWE7XG4gICAgICB9XG4gICAgICBjb25zdCB1c2VRdWVyeUFzRmlsdGVycyA9XG4gICAgICAgIGZpbHRlcnMgPT0gbnVsbCAmJlxuICAgICAgICBxdWVyeVNjaGVtYSAhPSBudWxsICYmXG4gICAgICAgIHF1ZXJ5ICE9IG51bGwgJiZcbiAgICAgICAgbG9va3NMaWtlRmlsdGVycyhxdWVyeSk7XG4gICAgICBsZXQgZmlsdGVyc0lucHV0ID0gZmlsdGVycztcbiAgICAgIGxldCBxdWVyeUlucHV0ID0gcXVlcnk7XG4gICAgICBpZiAodXNlUXVlcnlBc0ZpbHRlcnMpIHtcbiAgICAgICAgZmlsdGVyc0lucHV0ID0gcXVlcnk7XG4gICAgICAgIHF1ZXJ5SW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gYnVpbGRDb21iaW5lZFNlYXJjaCh7XG4gICAgICAgIGZpbHRlcnM6IGZpbHRlcnNJbnB1dCxcbiAgICAgICAgcXVlcnk6IHF1ZXJ5SW5wdXQsXG4gICAgICAgIHF1ZXJ5U2NoZW1hLFxuICAgICAgfSk7XG4gICAgfSxcbiAgICBnZXQ6ICgpID0+IHtcbiAgICAgIHJldHVybiBlbnRyeTtcbiAgICB9LFxuICAgIGhpc3Rvcnk6IHtcbiAgICAgIGluaXQoKSB7fSxcbiAgICAgIHB1c2goKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignU3RhdGljIHJvdXRlciBjYW5ub3QgcHVzaCBoaXN0b3J5Jyk7XG4gICAgICB9LFxuICAgICAgc2V0KCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0YXRpYyByb3V0ZXIgY2Fubm90IHJlcGxhY2UgaGlzdG9yeScpO1xuICAgICAgfSxcbiAgICAgIHN1YnNjcmliZSgpIHtcbiAgICAgICAgcmV0dXJuICgpID0+IHt9O1xuICAgICAgfSxcbiAgICB9IGFzIHVua25vd24gYXMgUm91dGluZ0NvbnRleHRUeXBlPFxuICAgICAgUGFyYW1EYXRhLFxuICAgICAgUm91dGVyUXVlcnlTY2hlbWEsXG4gICAgICBVbmtub3duUXVlcnlTaGFwZSxcbiAgICAgIFRDb250ZXh0XG4gICAgPlsnaGlzdG9yeSddLFxuICAgIG5hdmlnYXRlKCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdGF0aWMgcm91dGVyIGNhbm5vdCBuYXZpZ2F0ZScpO1xuICAgIH0sXG4gICAgcHJlbG9hZCgpIHt9LFxuICAgIHByZWxvYWRDb2RlKCkge30sXG4gICAgc3Vic2NyaWJlKCkge1xuICAgICAgcmV0dXJuICgpID0+IHt9O1xuICAgIH0sXG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVN0YXRpY1JvdXRlcjxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuICBSIGV4dGVuZHMgQW55Um91dGVbXSA9IEFueVJvdXRlW10sXG4+KFxuICByb3V0ZXM6IFsuLi5SXSB8IEFueVJvdXRlW10sXG4gIG9wdGlvbnM6IENyZWF0ZVN0YXRpY1JvdXRlck9wdGlvbnM8VENvbnRleHQ+LFxuKTogUHJvbWlzZTxDcmVhdGVTdGF0aWNSb3V0ZXJSZXR1cm48VENvbnRleHQsIFI+PiB7XG4gIGNvbnN0IGxvY2F0aW9uID0gbm9ybWFsaXplU3RhdGljTG9jYXRpb24ob3B0aW9ucy5sb2NhdGlvbik7XG4gIGNvbnN0IGZsYXRSb3V0ZXMgPSBidWlsZFJvdXRlcyhyb3V0ZXMpO1xuICBjb25zdCByb3V0ZSA9IGZpbmRTdGF0aWNNYXRjaGVkUm91dGUoZmxhdFJvdXRlcywgbG9jYXRpb24pO1xuICBjb25zdCBhY3RpdmVRdWVyeVNjaGVtYSA9IHJvdXRlPy5yb3V0ZS5yb3V0ZXMuYXQoLTEpPy5xdWVyeVNjaGVtYTtcbiAgY29uc3Qgc2VhcmNoU3RhdGUgPSBwYXJzZVNlYXJjaFN0YXRlKGxvY2F0aW9uLnNlYXJjaCwgYWN0aXZlUXVlcnlTY2hlbWEpO1xuICBjb25zdCByb3V0ZUNvbnRleHQgPSBvcHRpb25zLmNvbnRleHQgYXMgVENvbnRleHQ7XG4gIGxldCByb3V0ZUlucHV0OiBSYXdRdWVyeSB8IFVua25vd25GaWx0ZXJzID0gc2VhcmNoU3RhdGUucXVlcnk7XG4gIGlmIChhY3RpdmVRdWVyeVNjaGVtYSAhPSBudWxsKSB7XG4gICAgcm91dGVJbnB1dCA9IHNlYXJjaFN0YXRlLmZpbHRlcnMgPz8ge307XG4gIH1cbiAgY29uc3QgcHJlcGFyZWRNYXRjaCA9IHByZXBhcmVNYXRjaChcbiAgICByb3V0ZSxcbiAgICByb3V0ZUlucHV0LFxuICAgIHVuZGVmaW5lZCxcbiAgICByb3V0ZUNvbnRleHQsXG4gICk7XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgcHJlcGFyZWRNYXRjaC5zZWdtZW50cy5tYXAoYXN5bmMgKHNlZ21lbnQpID0+IHtcbiAgICAgIGF3YWl0IHNlZ21lbnQucHJlcGFyZWRSZXNvdXJjZT8ubG9hZCgpO1xuICAgICAgYXdhaXQgc2VnbWVudC5yZXNvdXJjZVBhZ2U/LmxvYWQoKTtcbiAgICB9KSxcbiAgKTtcbiAgY29uc3QgeyBhY3RpdmVMb2FkU3RhdGUsIGxvYWRTdGF0ZSB9ID0gYnVpbGRSZXNvbHZlZExvYWRTdGF0ZShwcmVwYXJlZE1hdGNoKTtcblxuICBjb25zdCBlbnRyeTogUm91dGVFbnRyeTxQYXJhbURhdGEsIFJvdXRlclF1ZXJ5U2NoZW1hLCBUQ29udGV4dD4gPSB7XG4gICAgYWN0aXZlUXVlcnlTY2hlbWEsXG4gICAgYWN0aXZlTG9hZFN0YXRlLFxuICAgIGNvbnRleHQ6IHJvdXRlQ29udGV4dCxcbiAgICBmaWx0ZXJEaWFnbm9zdGljczogc2VhcmNoU3RhdGUuZmlsdGVyRGlhZ25vc3RpY3MsXG4gICAgZmlsdGVyczogc2VhcmNoU3RhdGUuZmlsdGVycyxcbiAgICBmb3JjZVJlcmVuZGVyOiBmYWxzZSxcbiAgICBsb2NhdGlvbixcbiAgICBwcmVwYXJlZE1hdGNoLFxuICAgIHF1ZXJ5OiBzZWFyY2hTdGF0ZS5xdWVyeSxcbiAgICByYXdTZWFyY2g6IGxvY2F0aW9uLnNlYXJjaCxcbiAgICByb3V0ZSxcbiAgICBsb2FkU3RhdGUsXG4gIH07XG5cbiAgY29uc3Qgcm91dGVyQ29udGV4dCA9IGNyZWF0ZVN0YXRpY1JvdXRpbmdDb250ZXh0KGVudHJ5LCBmbGF0Um91dGVzKTtcblxuICByZXR1cm4ge1xuICAgIGNvbnRleHQ6IHJvdXRlckNvbnRleHQsXG4gICAgZW50cnksXG4gICAgcm91dGVzOiByb3V0ZXMgYXMgUixcbiAgfTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3JlYXRlU3RhdGljUm91dGVyO1xuIl19
@@ -218,6 +218,11 @@ export type PreloadTarget = {
218
218
  source?: string;
219
219
  };
220
220
  export type RoutingContextType<TVariables extends ParamData, S extends FilterSchema | undefined = FilterSchema | undefined, TQueryShape extends UnknownQueryShape = UnknownQueryShape, TContext = unknown> = {
221
+ buildSearch: (opts: {
222
+ pathname?: string;
223
+ query?: UnknownQueryShape;
224
+ filters?: UnknownFilters;
225
+ }) => string;
221
226
  history: BrowserHistory;
222
227
  get: () => RouteEntry<TVariables, S, TContext>;
223
228
  preloadCode: (target: PreloadTarget) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/lib/esm/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFNjaGVtYSBhcyBGaWx0ZXJTY2hlbWEsXG4gIEluZmVyRmlsdGVycyBhcyBJbmZlckZpbHRlclJlc3VsdCxcbiAgSW5mZXJGaWVsZCBhcyBJbmZlckZpbHRlckZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBNYXRjaCwgTWF0Y2hGdW5jdGlvbiwgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZSB9IGZyb20gJy4vUmVzb3VyY2VQYWdlLmpzJztcbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBUIHwgUHJvbWlzZTxUPjtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5VmFsdWUgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5ID0gUmVjb3JkPHN0cmluZywgUmF3UXVlcnlWYWx1ZT47XG5leHBvcnQgdHlwZSBVbmtub3duUXVlcnlTaGFwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgVW5rbm93bkZpbHRlcnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgQXN5bmNSZXNvdXJjZVN0YXR1cyA9ICdpZGxlJyB8ICdwZW5kaW5nJyB8ICdyZXNvbHZlZCcgfCAncmVqZWN0ZWQnO1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzID0gQXN5bmNSZXNvdXJjZVN0YXR1cztcblxuZXhwb3J0IHR5cGUgUm91dGVyQWN0aXZlTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclNlZ21lbnRMb2FkU3RhdGUgPSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgY29kZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgc3RhdHVzOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc2VnbWVudHM6IFJvdXRlclNlZ21lbnRMb2FkU3RhdGVbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yID0gJ2Fsd2F5cycgfCAncGF0aCc7XG5cbmV4cG9ydCB0eXBlIFJvdXRlU3VzcGVuc2VCb3VuZGFyeSA9ICdpbmhlcml0JyB8ICdzZWdtZW50JyB8ICdub25lJztcblxuZXhwb3J0IHR5cGUgUm91dGVGYWxsYmFja0FyZ3M8VENvbnRleHQgPSB1bmtub3duPiA9IHtcbiAgc2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+O1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFBhcmFtRGF0YT4gfCBudWxsO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlRmFsbGJhY2s8VENvbnRleHQgPSB1bmtub3duPiA9XG4gIFJlYWN0Tm9kZSB8ICgoYXJnczogUm91dGVGYWxsYmFja0FyZ3M8VENvbnRleHQ+KSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBSZWFkYWJsZVJlc291cmNlPFQ+ID0ge1xuICBnZXQ6ICgpID0+IFQgfCB1bmRlZmluZWQ7XG4gIGdldEVycm9yOiAoKSA9PiB1bmtub3duO1xuICBnZXRTdGF0dXM6ICgpID0+IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG4gIGxvYWQ6ICgpID0+IFByb21pc2U8VD47XG4gIHJlYWQ6ICgpID0+IFQ7XG59O1xuXG4vKipcbiAqIElucHV0IHR5cGUgZm9yIGNyZWF0aW5nIGEgRmxhdFJvdXRlIGluc3RhbmNlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIEZsYXRSb3V0ZUlucHV0PFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIFVSTCBwYXRoIHBhdHRlcm4gZm9yIHRoaXMgcm91dGUgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogUGVyLXJlbmRlcmVkLXJvdXRlIG1ldGFkYXRhIGFsaWduZWQgd2l0aCBgcm91dGVzYC4gKi9cbiAgcm91dGVTZWdtZW50cz86IEZsYXRSb3V0ZVNlZ21lbnRbXTtcbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUVmFyaWFibGVzPjtcbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcm91dGVzOiBBbnlSb3V0ZVtdO1xufTtcblxuZXhwb3J0IHR5cGUgRmxhdFJvdXRlU2VnbWVudCA9IHtcbiAgLyoqIFN0YWJsZSBrZXkgZm9yIHRoZSByZW5kZXJlZCBzZWdtZW50IHdpdGhpbiBhIGZsYXQgcm91dGUgY2hhaW4uICovXG4gIGtleTogc3RyaW5nO1xuICAvKiogTG9jYWwgcm91dGUgcGF0aCBjb25maWd1cmVkIG9uIHRoZSByb3V0ZSBub2RlLiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogQWJzb2x1dGUgcGF0aCByZXByZXNlbnRlZCBieSB0aGlzIHNlZ21lbnQuICovXG4gIGZ1bGxQYXRoOiBzdHJpbmc7XG4gIC8qKiBQYXJhbXMgdGhhdCBtYXkgYmUgcmVhZCBieSB0aGlzIHNlZ21lbnQsIGluY2x1ZGluZyBhbmNlc3RvciBwYXJhbXMuICovXG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIGFuZCBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgbWF0Y2ggcmVzdWx0IGZyb20gcGF0aC10by1yZWdleHAgKi9cbiAgbWF0Y2g6IE1hdGNoPFRWYXJpYWJsZXM+O1xuICAvKiogRXh0cmFjdGVkIHBhcmFtZXRlcnMgZnJvbSB0aGUgVVJMIHBhdGggKi9cbiAgcGFyYW1zOiBUVmFyaWFibGVzO1xuICAvKiogVGhlIG1hdGNoZWQgcGF0aCBzdHJpbmcgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBBIFJlYWN0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgcm91dGUgY29tcG9uZW50LlxuICogQHRlbXBsYXRlIFRQcm9wcyAtIFRoZSBwcm9wcyB0eXBlIGZvciB0aGUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVhY3RDb21wb25lbnQ8VFByb3BzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBwcm9wczogVFByb3BzLFxuKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG5cbnR5cGUgQml2YXJpYW50Q2FsbGJhY2s8Rm4gZXh0ZW5kcyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gdW5rbm93bj4gPSB7XG4gIGJpdmFyaWFuY2VIYWNrOiBGbjtcbn1bJ2JpdmFyaWFuY2VIYWNrJ107XG5cbi8qKlxuICogT3B0aW9ucyBwYXNzZWQgdG8gYSByb3V0ZSByZW5kZXIgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXJPcHRzPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBPcHRpb25hbCBjb21wb25lbnQgdG8gcmVuZGVyIChmcm9tIFJlc291cmNlUGFnZSkgKi9cbiAgQ29tcG9uZW50PzogUm91dGVSZWFjdENvbXBvbmVudDtcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogVFByZXBhcmVkIHwgdW5kZWZpbmVkO1xuICAvKiogVGhlIHByZXBhcmVkIHNlZ21lbnQgdGhhdCBpcyBiZWluZyByZW5kZXJlZCAqL1xuICBwcmVwYXJlZFNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeVNoYXBlXG4gID47XG4gIC8qKiBBbGlhcyBrZXB0IGZvciBtaWdyYXRpb24gY29tcGF0aWJpbGl0eSAqL1xuICBwcmVwYXJlZFJvdXRlOiBQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgICBUQ29udGV4dCxcbiAgICBUUHJlcGFyZWQsXG4gICAgVFZhcmlhYmxlcyxcbiAgICBUUXVlcnlTaGFwZVxuICA+O1xuICAvKiogVGhlIGZ1bGwgcHJlcGFyZWQgY2hhaW4gZm9yIHRoZSBjdXJyZW50IG1hdGNoICovXG4gIHByZXBhcmVkU2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBJbmRleCBvZiB0aGUgY3VycmVudCBzZWdtZW50IGluIHRoZSBwcmVwYXJlZCBjaGFpbiAqL1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBsZWFmIHNlZ21lbnQgb2YgdGhlIHByZXBhcmVkIGNoYWluICovXG4gIGxlYWZTZWdtZW50OiBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD47XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSBvciBudWxsIGlmIG5vIG1hdGNoICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSYXcgcXVlcnkgb2JqZWN0IChQaGFzZSAyIGdlbmVyaWMgcGFyc2luZykgKi9cbiAgcmF3UXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0IChQaGFzZSAzKS4gRmFsbHMgYmFjayB0byByYXdRdWVyeSBpZiBubyBzY2hlbWEgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byByZW5kZXIgYSByb3V0ZSB3aXRoIGN1c3RvbSBsb2dpYy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlcjxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBCaXZhcmlhbnRDYWxsYmFjazxcbiAgKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT5cbiAgICBSZWFjdEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxSZWFjdEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkPlxuPjtcblxuLyoqIEFsaWFzIGZvciByZW5kZXIgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyQXJnczxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBSb3V0ZVJlbmRlck9wdHM8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEEgc2luZ2xlIGFjdGl2ZSBwcmVwYXJlZCByb3V0ZSBzZWdtZW50IHdpdGhpbiB0aGUgY3VycmVudCByb3V0ZSBjaGFpbi5cbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8XG4gIFRDb250ZXh0ID0gdW5rbm93bixcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCA9IFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSB7XG4gIC8qKiBUaGUgcm91dGUgZGVmaW5pdGlvbiB0aGF0IHByb2R1Y2VkIHRoaXMgcHJlcGFyZWQgc2VnbWVudCAqL1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIC8qKiBUaGUgcGF0aCB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBBYnNvbHV0ZSByb3V0ZSBwYXRoIGZvciB0aGUgY3VycmVudCBzZWdtZW50IHdoZW4ga25vd24gKi9cbiAgZnVsbFBhdGg/OiBzdHJpbmc7XG4gIC8qKiBTdGFibGUga2V5IHVzZWQgZm9yIHJvdXRlIHNlZ21lbnQgcmVjb25jaWxpYXRpb24uICovXG4gIHNlZ21lbnRLZXk6IHN0cmluZztcbiAgLyoqIFBhcmFtcyB0aGF0IG1heSBhZmZlY3QgdGhpcyBzZWdtZW50LiAqL1xuICBwYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqIE9yZGVyIG9mIHRoZSBzZWdtZW50IGluIHRoZSBhY3RpdmUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIC8qKiBBc3luYyByZXNvdXJjZSBleHBvc2luZyB0aGUgcm91dGUncyBwcmVwYXJlZCB2YWx1ZSAqL1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlPFRQcmVwYXJlZD47XG4gIC8qKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGlzIHJvdXRlICovXG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBDb250cm9scyB3aGV0aGVyIHRoaXMgc2VnbWVudCBvd25zIGEgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkuICovXG4gIHN1c3BlbnNlQm91bmRhcnk6IFJvdXRlU3VzcGVuc2VCb3VuZGFyeTtcbiAgLyoqIEZhbGxiYWNrIHVzZWQgd2hlbiB0aGlzIHNlZ21lbnQncyBsb2NhbCBTdXNwZW5zZSBib3VuZGFyeSBpcyBhY3RpdmUuICovXG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxUQ29udGV4dD47XG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYnkgZGV2ZWxvcGVyIHRvb2xpbmcgdG8gbWFwIHJlbmRlcmVkIERPTSByZWdpb25zICovXG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgc2NoZW1hIGRlY2xhcmVkIGJ5IHRoZSByb3V0ZSBzZWdtZW50ICovXG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXRjaFJvdXRlID0gUHJlcGFyZWRSb3V0ZVNlZ21lbnQ7XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dCA9IHVua25vd24+ID1cbiAgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50U25hcHNob3QgPSB7XG4gIHJvdXRlTm9kZT86IFJvdXRlTm9kZTtcbiAgcGF0aD86IHN0cmluZztcbiAgZnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNlZ21lbnRLZXk6IHN0cmluZztcbiAgcGFyYW1OYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlO1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjaztcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqXG4gKiBSZXN1bHQgb2YgcHJlcGFyaW5nIGEgbWF0Y2hlZCByb3V0ZSwgaW5jbHVkaW5nIHRoZSBvcmRlcmVkIGNoYWluIG9mIG5lc3RlZCBhY3RpdmUgc2VnbWVudHMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZUNoYWluPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIE9yZGVyZWQgYWN0aXZlIHByZXBhcmVkIHNlZ21lbnRzIGZyb20gb3V0ZXJtb3N0IHRvIGlubmVybW9zdCAqL1xuICBzZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0PjtcbiAgLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uICovXG4gIHJvdXRlczogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0Pjtcbn07XG5cbi8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2g8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSBQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50S2V5OiBzdHJpbmc7XG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWQ6IFRQcmVwYXJlZCB8IHVuZGVmaW5lZDtcbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxUQ29udGV4dD47XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRNYXRjaFJvdXRlID0gUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlQ2hhaW48XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICBzZWdtZW50czogUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcbiAgcm91dGVzOiBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZE1hdGNoPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gUmVzb2x2ZWRQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuXG4vKipcbiAqIENvbXBsZXRlIHJvdXRlIGVudHJ5IHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByb3V0ZXIgc3RhdGUuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVFbnRyeTxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIFRoZSBwcmVwYXJlZCBtYXRjaCB3aXRoIGxvYWRlZCBkYXRhIGFuZCBjb21wb25lbnRzICovXG4gIHByZXBhcmVkTWF0Y2g6IFByZXBhcmVkUm91dGVDaGFpbjxUVmFyaWFibGVzLCBUQ29udGV4dD47XG4gIC8qKiBHbG9iYWwgbG9hZCBzdGF0ZSBmb3IgdGhlIGFjdGl2ZSByb3V0ZS4gKi9cbiAgYWN0aXZlTG9hZFN0YXRlOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdGU7XG4gIC8qKiBQZXItc2VnbWVudCBsb2FkIHN0YXRlIGRldGFpbHMgZm9yIHRoZSBhY3RpdmUgcm91dGUuICovXG4gIGxvYWRTdGF0ZTogUm91dGVyTG9hZFN0YXRlO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgcmVzb2x2ZWQgZm9yIHRoaXMgZW50cnkgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBDdXJyZW50IGJyb3dzZXIgbG9jYXRpb24gKi9cbiAgbG9jYXRpb246IExvY2F0aW9uO1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICByb3V0ZTogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIFdoZXRoZXIgdG8gZm9yY2UgYSByZS1yZW5kZXIgZXZlbiBpZiB0aGUgcGF0aCBoYXNuJ3QgY2hhbmdlZCAqL1xuICBmb3JjZVJlcmVuZGVyOiBib29sZWFuO1xuICAvKiogUmF3IHNlYXJjaCBzdHJpbmcgKHF1ZXJ5IHBhcnQpIG9mIHRoZSBsb2NhdGlvbiBmb3IgY2hhbmdlIGRldGVjdGlvbiAqL1xuICByYXdTZWFyY2g/OiBzdHJpbmc7XG4gIC8qKiBQYXJzZWQgcmF3IHF1ZXJ5IHBhcmFtZXRlcnMgKHZhbHVlcyBhZ2dyZWdhdGVkOyBkdXBsaWNhdGVzID0+IGFycmF5KSAqL1xuICBxdWVyeTogUmF3UXVlcnk7XG4gIC8qKiBMZWdhY3kgdHlwZWRRdWVyeSByZW1vdmVkIOKAkyB1bmlmaWVkIGZpbHRlcnMgaGFuZGxlIHR5cGVkIGFjY2VzcyAqL1xuICAvLyB0eXBlZFF1ZXJ5PzogbmV2ZXI7XG4gIC8qKiBQYXJzZWQgZmlsdGVycyBvYmplY3QgZGVyaXZlZCBmcm9tIHRoZSBkZWVwZXN0IGFjdGl2ZSBxdWVyeVNjaGVtYSAoaWYgYW55KSAqL1xuICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogVW5rbm93bkZpbHRlcnM7XG4gIC8qKiBEaWFnbm9zdGljcyBmcm9tIGZpbHRlciBwYXJzaW5nIChpZiBhbnkpICovXG4gIGZpbHRlckRpYWdub3N0aWNzPzogRmlsdGVyRGlhZ25vc3RpY1tdO1xuICAvKiogRGVlcGVzdCBhY3RpdmUgcXVlcnkgc2NoZW1hIChGaWx0ZXJTY2hlbWEgZnJvbSBAcGx1bWlsZS9maWx0ZXItcXVlcnkpIGZvciBjdXJyZW50IG1hdGNoZWQgcm91dGUgKi9cbiAgYWN0aXZlUXVlcnlTY2hlbWE/OiBTO1xufTtcblxuLy8gUXVlcnlTY2hlbWEgJiBkZXNjcmlwdG9ycyByZW1vdmVkIChQaGFzZSAyIHVuaWZpZWQgbW9kZWwpIOKAkyBoaXN0b3JpY2FsIHR5cGVzIGludGVudGlvbmFsbHkgb21pdHRlZC5cblxuLyoqXG4gKiBIVFRQIHN0YXR1cyBjb2RlcyBmb3IgcmVkaXJlY3RzLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJSZWRpcmVjdFN0YXR1cyA9IDMwMSB8IDMwMjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIHJlZ2V4IG1hdGNoIHJlc3VsdC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgcmVnZXggbWF0Y2ggcmVzdWx0ICovXG4gIG1hdGNoOiBSZWdFeHBFeGVjQXJyYXk7XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgcm91dGUgcmVkaXJlY3QuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZGlyZWN0ID0ge1xuICAvKiogT3B0aW9uYWwgc291cmNlIHBhdGggcGF0dGVybiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRGVzdGluYXRpb24gcGF0aCBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHRvOiBzdHJpbmc7XG4gIC8qKiBIVFRQIHN0YXR1cyBjb2RlIGZvciB0aGUgcmVkaXJlY3QgKi9cbiAgc3RhdHVzPzogUm91dGVyUmVkaXJlY3RTdGF0dXM7XG59O1xuXG4vKiogTWluaW1hbCBlcmFzZWQgcm91dGUgbm9kZSBzaGFwZSB1c2VkIGJ5IHJ1bnRpbWUgaGVscGVycyBhbmQgcmVjdXJzaXZlIHJvdXRlIHRyZWVzLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVOb2RlID0ge1xuICBjaGlsZHJlbj86IHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXTtcbiAgcGF0aD86IHN0cmluZztcbiAgcHJlcGFyZT86IChwYXJhbXM6IFByZXBhcmVQYXJhbXM8YW55LCBhbnksIGFueT4pID0+IHVua25vd247XG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbiAgcmVuZGVyPzogKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxhbnksIGFueSwgYW55LCBhbnk+LFxuICApID0+XG4gICAgUmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD47XG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIHN1c3BlbnNlQm91bmRhcnk/OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxhbnk+O1xufTtcblxuLyoqXG4gKiBCYXNlIHR5cGUgZm9yIGRhdGEgcHJlcGFyZWQgYnkgcm91dGUgcHJlcGFyZSBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVSZXN1bHQgPSB1bmtub3duO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgcGFzc2VkIHRvIGEgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVQYXJhbXM8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICBtYXRjaGVkUm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPjtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogRXh0cmFjdGVkIFVSTCBwYXJhbWV0ZXJzICovXG4gIHZhcmlhYmxlczogVFZhcmlhYmxlcztcbiAgLyoqIFR5cGVkIHF1ZXJ5IG9iamVjdCAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG59O1xuXG4vKiogQWxpYXMgZm9yIHByZXBhcmUgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZUFyZ3M8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gUHJlcGFyZVBhcmFtczxUQ29udGV4dCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIHByZXBhcmUgZGF0YSBmb3IgYSByb3V0ZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBmdW5jdGlvbiByZXR1cm5zXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVQcmVwYXJlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IEJpdmFyaWFudENhbGxiYWNrPFxuICAoXG4gICAgcGFyYW1zOiBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT4gTWF5YmVQcm9taXNlPFRQcmVwYXJlZD5cbj47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgcm91dGUgaW4gdGhlIHJvdXRlci5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZTxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENoaWxkcmVuIGV4dGVuZHMgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdIHwgdW5kZWZpbmVkID1cbiAgICByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW10gfCB1bmRlZmluZWQsXG4+ID0ge1xuICAvKipcbiAgICogTmVzdGVkIGNoaWxkIHJvdXRlcyBvciByZWRpcmVjdHMuXG4gICAqXG4gICAqIElNUE9SVEFOVDogVGhpcyB1c2VkIHRvIGJlIHR5cGVkIGFzIGAoUm91dGU8YW55LCBQcmVwYXJlUmVzdWx0PiB8IFJlZGlyZWN0KVtdYCB3aGljaFxuICAgKiB3aWRlbmVkIChlcmFzZWQpIHRoZSBnZW5lcmljIHBhcmFtZXRlciB0eXBlcyAobm90YWJseSB0aGUgYFRWYXJpYWJsZXNgIG9mIGVhY2hcbiAgICogY2hpbGQpLiBUaGF0IGNhdXNlZCBUeXBlU2NyaXB0IHRvIHRyZWF0IGV2ZXJ5IGNoaWxkIHJvdXRlJ3MgYHByZXBhcmVgIGNhbGxiYWNrXG4gICAqIGFzIGFjY2VwdGluZyB0aGUgZGVmYXVsdCBgUGFyYW1EYXRhYCBzaGFwZSAoZWZmZWN0aXZlbHkgYFBhcnRpYWw8UmVjb3JkPHN0cmluZyxzdHJpbmd8c3RyaW5nW10+PmApLlxuICAgKiBXaGVuIHVzZXIgY29kZSBzcGVjaWZpZWQgYSBtb3JlIHNwZWNpZmljIHBhcmFtZXRlciBvYmplY3QgKGUuZy4gYHsgc2x1Zzogc3RyaW5nIH1gKVxuICAgKiBmb3IgYSBwYXRoIGxpa2UgYDpzbHVnYCwgdGhlIGZ1bmN0aW9uIHR5cGUgYmVjYW1lIG5vbuKAkWFzc2lnbmFibGUgYmVjYXVzZSBpdHNcbiAgICogcGFyYW1ldGVyIHdhcyBzdHJpY3RlciB0aGFuIHRoZSB3aWRlbmVkIHZlcnNpb24uIEJ5IHN3aXRjaGluZyB0byBgQW55Um91dGVgIHdlXG4gICAqIHJldGFpbiBgYW55YCBpbiB0aGUgZXJhc2VkIHBvc2l0aW9uIGluc3RlYWQgb2YgYSBjb25jcmV0ZSBgUGFyYW1EYXRhYCwgd2hpY2hcbiAgICogYWxsb3dzIHN0cmljdGVyIGNoaWxkIGB2YXJpYWJsZXNgIHNoYXBlcyB3aXRob3V0IGNvbmZsaWN0LlxuICAgKlxuICAgKiBVc2luZyBgQW55Um91dGVgIHB1cnBvc2VseSBwcmVzZXJ2ZXMgaW5kZXBlbmRlbmNlIG9mIGVhY2ggcm91dGUncyBnZW5lcmljXG4gICAqIHBhcmFtZXRlcnMgd2hpbGUgc3RpbGwga2VlcGluZyBydW50aW1lIHJlcHJlc2VudGF0aW9uIGlkZW50aWNhbC5cbiAgICovXG4gIGNoaWxkcmVuPzogVENoaWxkcmVuO1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogQ29udHJvbHMgd2hldGhlciB0aGlzIHJvdXRlIHNlZ21lbnQgb3ducyBhIGxvY2FsIFN1c3BlbnNlIGJvdW5kYXJ5LiAqL1xuICBzdXNwZW5zZUJvdW5kYXJ5PzogUm91dGVTdXNwZW5zZUJvdW5kYXJ5O1xuICAvKiogRmFsbGJhY2sgdXNlZCBieSB0aGlzIHJvdXRlIHNlZ21lbnQgd2hlbiBpdHMgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkgaXMgYWN0aXZlLiAqL1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s8VENvbnRleHQ+O1xuICAvKiogVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGJlZm9yZSByZW5kZXJpbmcgKi9cbiAgcHJlcGFyZT86IFJvdXRlUHJlcGFyZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoaXMgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uIHNob3VsZCBydW4gYWdhaW4gd2hlbiBvbmx5XG4gICAqIHRoZSBVUkwgc2VhcmNoIGNoYW5nZXMuIERlZmF1bHRzIHRvIGBhbHdheXNgIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhpcyByb3V0ZSAqL1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBVbmlmaWVkIHNjaGVtYSAoZmlsdGVyIC8gcXVlcnkpICovXG4gIHF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8qKlxuICogUHJvcHMgcGFzc2VkIHRvIFJvdXRlQ29tcG9uZW50IGluc3RhbmNlcy5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZUNvbXBvbmVudFByb3BzPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgKi9cbiAgY2hpbGRyZW46IFJlYWN0RWxlbWVudDtcbiAgLyoqIFJvdXRlciBjb250ZXh0IGNvbnRhaW5pbmcgbmF2aWdhdGlvbiBhbmQgc3RhdGUgKi9cbiAgcm91dGVyQ29udGV4dDogUm91dGluZ0NvbnRleHRUeXBlPFRWYXJpYWJsZXMsIFMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFRoZSByb3V0ZSBjb25maWd1cmF0aW9uICovXG4gIHJvdXRlOiBSb3V0ZTx1bmtub3duLCB1bmtub3duLCBQYXJhbURhdGEsIFVua25vd25RdWVyeVNoYXBlLCBTPjtcbn07XG5cbi8qKlxuICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJvdXRlIGNoYW5nZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgU3Vic2NyaWJlQ2FsbGJhY2s8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSAobmV4dEVudHJ5OiBSb3V0ZUVudHJ5PFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgUHJlbG9hZFRhcmdldCA9IHtcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJvdXRlciBjb250ZXh0IHR5cGUgdGhhdCBwcm92aWRlcyBuYXZpZ2F0aW9uIGFuZCBzdGF0ZSBtYW5hZ2VtZW50LlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogQnJvd3NlciBoaXN0b3J5IGluc3RhbmNlIGZvciBuYXZpZ2F0aW9uICovXG4gIGhpc3Rvcnk6IEJyb3dzZXJIaXN0b3J5O1xuICAvKiogR2V0IHRoZSBjdXJyZW50IHJvdXRlIGVudHJ5ICovXG4gIGdldDogKCkgPT4gUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD47XG4gIC8qKiBQcmVsb2FkIGNvZGUgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZENvZGU6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBQcmVsb2FkIGNvZGUgYW5kIGRhdGEgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZDogKHRhcmdldDogUHJlbG9hZFRhcmdldCkgPT4gdm9pZDtcbiAgLyoqIFN1YnNjcmliZSB0byByb3V0ZSBjaGFuZ2VzIChzY2hlbWEgZGVyaXZhYmxlLCBub3QgbmVlZGVkIGluIHNpZ25hdHVyZSkgKi9cbiAgc3Vic2NyaWJlOiAoXG4gICAgY2FsbGJhY2s6IFN1YnNjcmliZUNhbGxiYWNrPFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PixcbiAgKSA9PiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgd2l0aCBvcHRpb25hbCBwYXRobmFtZSBhbmQgdHlwZWQvcmF3IHF1ZXJ5IG9iamVjdCAqL1xuICBuYXZpZ2F0ZTogKG9wdHM6IHtcbiAgICBwYXRobmFtZT86IHN0cmluZztcbiAgICBxdWVyeT86IFRRdWVyeVNoYXBlO1xuICAgIC8qKiBPcHRpb25hbCBmaWx0ZXJzIG9iamVjdCB0byBzZXJpYWxpemUgdXNpbmcgdGhlIGFjdGl2ZSBxdWVyeVNjaGVtYSAqL1xuICAgIGZpbHRlcnM/OiBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBVbmtub3duRmlsdGVycztcbiAgICByZXBsYWNlPzogYm9vbGVhbjtcbiAgfSkgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZm9yIHJlc291cmNlIHBhZ2UgbG9hZGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYWdlUmV0dXJuID1cbiAgeyBkZWZhdWx0OiBDb21wb25lbnRUeXBlPGFueT4gfSB8IENvbXBvbmVudFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IGxvYWRzIGEgcmVzb3VyY2UgcGFnZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZUxvYWRlciA9ICgpID0+IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPjtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRWYWx1ZVJlc291cmNlPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbj4gPSBSZWFkYWJsZVJlc291cmNlPFRQcmVwYXJlZD47XG5cbi8qKiBVdGlsaXR5OiBpbmZlciBmaWx0ZXJzIHR5cGUgZm9yIGEgZ2l2ZW4gcXVlcnkgc2NoZW1hICovXG5leHBvcnQgdHlwZSBJbmZlckZpbHRlcnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZD4gPVxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIHsgRmlsdGVyU2NoZW1hIH07XG5cbi8qKiBSZS1leHBvcnQgaGVscGVyIGZpbHRlci1xdWVyeSB0eXBlIGZvciB1c2VyIGNvbnZlbmllbmNlICovXG5leHBvcnQgdHlwZSB7IEluZmVyRmlsdGVyRmllbGQgYXMgSW5mZXJGaWVsZCB9O1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIGZpbHRlciBhY3Rpb25zIChQaGFzZSAxIGJhc2UgdHlwZXMpLiBJbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHdpcmVkXG4gKiBpbiBhIGxhdGVyIHBoYXNlIHdoZW4gYHVzZUZpbHRlcnNgIGJlY29tZXMgZ2VuZXJpYy5cbiAqXG4gKiBTOiBTY2hlbWEgdHlwZSBwYXNzZWQgdG8gdGhlIGhvb2svcm91dGUuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVkRmlsdGVyQWN0aW9uczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hPiA9IHtcbiAgLyoqIFNldCBvciB1bnNldCAodmFsdWUgPSB1bmRlZmluZWQpIGEgc3BlY2lmaWMgb3BlcmF0b3IgdmFsdWUgZm9yIGEgZmllbGQgKi9cbiAgc2V0OiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcjogTyxcbiAgICB2YWx1ZTogTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+W09dIHwgdW5kZWZpbmVkLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIFJlbW92ZSBhIHdob2xlIGZpZWxkIG9yIGEgc3BlY2lmaWMgb3BlcmF0b3IgKi9cbiAgcmVtb3ZlOiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcj86IE8sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogTWVyZ2UgYSBwYXJ0aWFsIGZpbHRlcnMgb2JqZWN0ICovXG4gIG1lcmdlOiAoXG4gICAgcGF0Y2g6IFBhcnRpYWw8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz4+LFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIENsZWFyIGFsbCBmaWx0ZXJzICovXG4gIGNsZWFyOiAob3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4gdm9pZDtcbn07XG5cbi8qKiBNaW5pbWFsIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSByZWN1cnNpdmUgdHJlZSB1dGlsaXRpZXMuICovXG5leHBvcnQgdHlwZSBSb3V0ZVRyZWVOb2RlID0gUm91dGVOb2RlO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIHVtYnJlbGxhIHJvdXRlIHR5cGUuXG4gKiBVc2VkIHdoZXJlIHdlIGp1c3Qgd2FudCB0byBjYXJyeSBhcmJpdHJhcnkgcm91dGUgZ2VuZXJpY3MgZm9yd2FyZCB3aXRob3V0IGVyYXN1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVua25vd25Sb3V0ZTxUQ29udGV4dCA9IHVua25vd24+ID0gUm91dGU8VENvbnRleHQsIHVua25vd24+O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSB1bWJyZWxsYSByb3V0ZSB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQW55Um91dGUgPSBSb3V0ZU5vZGU7XG5cbi8qKiBFeHRyYWN0IG5lc3RlZCBjaGlsZCByb3V0ZSB1bmlvbiBmcm9tIGEgcm91dGUgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCB0eXBlIENoaWxkUm91dGVPZjxSPiA9IFIgZXh0ZW5kcyB7IGNoaWxkcmVuPzogcmVhZG9ubHkgKGluZmVyIEMpW10gfVxuICA/IEV4dHJhY3Q8QywgUm91dGVUcmVlTm9kZT5cbiAgOiBuZXZlcjtcblxuLyoqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYSByb3V0ZSB0cmVlIGludG8gYSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVHJlZVJvdXRlVW5pb248Uj4gPSBSIGV4dGVuZHMgUm91dGVUcmVlTm9kZVxuICA/IFIgfCBSb3V0ZVRyZWVSb3V0ZVVuaW9uPENoaWxkUm91dGVPZjxSPj5cbiAgOiBuZXZlcjtcblxuLyoqIEZsYXR0ZW4gYSB0dXBsZSBvZiByb3V0ZXMgaW50byBhIHJlY3Vyc2l2ZSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVW5pb248Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJvdXRlVHJlZVJvdXRlVW5pb248XG4gIFJvdXRlc1tudW1iZXJdXG4+O1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbnR5cGUgUm91dGVUeXBlUGFydHM8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8XG4gICAgaW5mZXIgVENvbnRleHQsXG4gICAgaW5mZXIgVFByZXBhcmVkLFxuICAgIGluZmVyIFRWYXJzLFxuICAgIGluZmVyIFRRdWVyeSxcbiAgICBpbmZlciBUU2NoZW1hLFxuICAgIGluZmVyIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZFxuICA+XG4gICAgPyB7XG4gICAgICAgIGNvbnRleHQ6IFRDb250ZXh0O1xuICAgICAgICBwcmVwYXJlZDogVFByZXBhcmVkO1xuICAgICAgICB2YXJpYWJsZXM6IFRWYXJzO1xuICAgICAgICBxdWVyeTogVFF1ZXJ5O1xuICAgICAgICBzY2hlbWE6IFRTY2hlbWE7XG4gICAgICAgIGNoaWxkcmVuOiBUQ2hpbGRyZW47XG4gICAgICB9XG4gICAgOiBuZXZlcjtcblxuLyoqIEV4dHJhY3QgdGhlIHByZXBhcmVkIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3ByZXBhcmVkJ107XG4vKiogRXh0cmFjdCB0aGUgdmFyaWFibGVzIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBWYXJpYWJsZXNPZjxSPiA9IFJvdXRlVHlwZVBhcnRzPFI+Wyd2YXJpYWJsZXMnXTtcbi8qKiBFeHRyYWN0IHRoZSBxdWVyeSBzaGFwZSB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3F1ZXJ5J107XG5cbi8qKiBQYXRoIGxpdGVyYWwgdHlwZSBpZiBwcmVzZW50ICovXG5leHBvcnQgdHlwZSBQYXRoT2Y8Uj4gPSBSIGV4dGVuZHMgeyBwYXRoPzogaW5mZXIgUCB9XG4gID8gUCBleHRlbmRzIHN0cmluZ1xuICAgID8gUFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlcjtcblxuLyoqIFVuaW9uIG9mIGFsbCBjb25jcmV0ZSBwYXRoIHN0cmluZ3MgZnJvbSBhIHR1cGxlL2FycmF5IG9mIHJvdXRlcyAocmVjdXJzaXZlKS4gKi9cbmV4cG9ydCB0eXBlIFBhdGhzT2Y8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFBhdGhPZjxcbiAgUm91dGVVbmlvbjxSb3V0ZXM+XG4+O1xuXG4vKiogTWFwIHBhdGggLT4gcHJlcGFyZWQgdHlwZSB1bmlvbiAocGVyLXJvdXRlIHByZWNpc2lvbiBpcyBpbnRlbnRpb25hbGx5IGVyYXNlZCBoZXJlKS4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUHJlcGFyZWRPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+IHwgdW5kZWZpbmVkXG4+O1xuXG4vKiogTWFwIHBhdGggLT4gb3JkZXJlZCBwcmVwYXJlZCBzZWdtZW50IHR1cGxlIG9yIGFycmF5IHNoYXBlLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRTZWdtZW50c01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFByZXBhcmVkUm91dGVTZWdtZW50W11cbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBxdWVyeSBzaGFwZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFF1ZXJ5U2hhcGVPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogRXh0cmFjdCBzY2hlbWEgZnJvbSBhIHJvdXRlICh1bmRlZmluZWQgaWYgYWJzZW50KSAqL1xuZXhwb3J0IHR5cGUgU2NoZW1hT2Y8Uj4gPSBSIGV4dGVuZHMgeyBxdWVyeVNjaGVtYT86IGluZmVyIFMgfVxuICA/IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IFNcbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcblxuLyoqIEZpbHRlcnMgaW5mZXJyZWQgZnJvbSB0aGUgcm91dGUncyBzY2hlbWEgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNPZjxSPiA9XG4gIFNjaGVtYU9mPFI+IGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBJbmZlckZpbHRlclJlc3VsdDxTY2hlbWFPZjxSPj5cbiAgICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqIE1hcCBwYXRoIC0+IGluZmVycmVkIGZpbHRlcnMgdHlwZSAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyc01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogUnVudGltZSBoZWxwZXIgaW50ZXJmYWNlIGF1Z21lbnRhdGlvbiBmb3Igcm91dGVyIGNvbnRleHQgKGFkZGVkIGluIGNyZWF0ZVJvdXRlcikgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkQWNjZXNzPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIG5ldmVyLFxuICBuZXZlclxuPiAmIHtcbiAgLyoqIFJldHJpZXZlIHRoZSBwcmVwYXJlZCBvYmplY3QgZm9yIGEgY29uY3JldGUgcGF0aCAoaWYgY3VycmVudCBtYXRjaCBpbmNsdWRlcyBpdCkgKi9cbiAgZ2V0UHJlcGFyZWQ6IChwYXRoOiBzdHJpbmcpID0+IFByZXBhcmVkT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PiB8IHVuZGVmaW5lZDtcbiAgLyoqIFJldHJpZXZlIHRoZSBmdWxsIHByZXBhcmVkIHNlZ21lbnQgY2hhaW4gZm9yIGEgY29uY3JldGUgcGF0aC4gKi9cbiAgZ2V0UHJlcGFyZWRTZWdtZW50czogKHBhdGg6IHN0cmluZykgPT4gUHJlcGFyZWRSb3V0ZVNlZ21lbnRTbmFwc2hvdFtdO1xuICAvLyBnZXRUeXBlZFF1ZXJ5IHJlbW92ZWQg4oCTIHVzZSBmaWx0ZXJzL3F1ZXJ5IGRpcmVjdGx5XG59O1xuXG4vKiogSW5wdXQgc2hhcGUgZm9yIGEgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIHBhdGggKHR5cGVkIHF1ZXJ5KSAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGVJbnB1dEZvclBhdGg8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IHtcbiAgcGF0aG5hbWU6IFBhdGhzT2Y8Um91dGVzPjtcbiAgcXVlcnk/OiBRdWVyeVNoYXBlT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PjtcbiAgZmlsdGVycz86IEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+O1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGYWxsYmFjayB1bnR5cGVkIG5hdmlnYXRlIGlucHV0ICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0VW50eXBlZCA9IHtcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gIHF1ZXJ5PzogVW5rbm93blF1ZXJ5U2hhcGU7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogT3ZlcmxvYWRlZCBuYXZpZ2F0ZSBmdW5jdGlvbiB0eXBlIChjb21waWxlLXRpbWUgb25seTsgcnVudGltZSBzaW5nbGUgaW1wbCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPdmVybG9hZHM8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiB7XG4gIChvcHRzOiBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxSb3V0ZXM+KTogdm9pZDtcbiAgKG9wdHM6IE5hdmlnYXRlSW5wdXRVbnR5cGVkKTogdm9pZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHsgRGlhZ25vc3RpYyBhcyBGaWx0ZXJEaWFnbm9zdGljIH0gZnJvbSAnQHBsdW1pbGUvZmlsdGVyLXF1ZXJ5L2Vycm9ycy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIFNjaGVtYSBhcyBGaWx0ZXJTY2hlbWEsXG4gIEluZmVyRmlsdGVycyBhcyBJbmZlckZpbHRlclJlc3VsdCxcbiAgSW5mZXJGaWVsZCBhcyBJbmZlckZpbHRlckZpZWxkLFxufSBmcm9tICdAcGx1bWlsZS9maWx0ZXItcXVlcnkvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBNYXRjaCwgTWF0Y2hGdW5jdGlvbiwgUGFyYW1EYXRhIH0gZnJvbSAncGF0aC10by1yZWdleHAnO1xuXG5pbXBvcnQgdHlwZSB7IEZsYXRSb3V0ZSB9IGZyb20gJy4vYnVpbGRlci5qcyc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlUGFnZSB9IGZyb20gJy4vUmVzb3VyY2VQYWdlLmpzJztcbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnkgfSBmcm9tICcuL2hpc3RvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgdHlwZSBNYXliZVByb21pc2U8VD4gPSBUIHwgUHJvbWlzZTxUPjtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5VmFsdWUgPSBzdHJpbmcgfCBzdHJpbmdbXTtcbmV4cG9ydCB0eXBlIFJhd1F1ZXJ5ID0gUmVjb3JkPHN0cmluZywgUmF3UXVlcnlWYWx1ZT47XG5leHBvcnQgdHlwZSBVbmtub3duUXVlcnlTaGFwZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuZXhwb3J0IHR5cGUgVW5rbm93bkZpbHRlcnMgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgQXN5bmNSZXNvdXJjZVN0YXR1cyA9ICdpZGxlJyB8ICdwZW5kaW5nJyB8ICdyZXNvbHZlZCcgfCAncmVqZWN0ZWQnO1xuXG5leHBvcnQgdHlwZSBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzID0gQXN5bmNSZXNvdXJjZVN0YXR1cztcblxuZXhwb3J0IHR5cGUgUm91dGVyQWN0aXZlTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlclNlZ21lbnRMb2FkU3RhdGUgPSB7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgY29kZVN0YXR1czogQXN5bmNSZXNvdXJjZVN0YXR1cztcbiAgc3RhdHVzOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdHVzO1xufTtcblxuZXhwb3J0IHR5cGUgUm91dGVyTG9hZFN0YXRlID0ge1xuICBzdGF0dXM6IFJvdXRlckFjdGl2ZUxvYWRTdGF0dXM7XG4gIHBlbmRpbmdDb3VudDogbnVtYmVyO1xuICByZWplY3RlZENvdW50OiBudW1iZXI7XG4gIHZlcnNpb246IG51bWJlcjtcbiAgc2VnbWVudHM6IFJvdXRlclNlZ21lbnRMb2FkU3RhdGVbXTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yID0gJ2Fsd2F5cycgfCAncGF0aCc7XG5cbmV4cG9ydCB0eXBlIFJvdXRlU3VzcGVuc2VCb3VuZGFyeSA9ICdpbmhlcml0JyB8ICdzZWdtZW50JyB8ICdub25lJztcblxuZXhwb3J0IHR5cGUgUm91dGVGYWxsYmFja0FyZ3M8VENvbnRleHQgPSB1bmtub3duPiA9IHtcbiAgc2VnbWVudDogUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+O1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFBhcmFtRGF0YT4gfCBudWxsO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCB0eXBlIFJvdXRlRmFsbGJhY2s8VENvbnRleHQgPSB1bmtub3duPiA9XG4gIFJlYWN0Tm9kZSB8ICgoYXJnczogUm91dGVGYWxsYmFja0FyZ3M8VENvbnRleHQ+KSA9PiBSZWFjdE5vZGUpO1xuXG5leHBvcnQgdHlwZSBSZWFkYWJsZVJlc291cmNlPFQ+ID0ge1xuICBnZXQ6ICgpID0+IFQgfCB1bmRlZmluZWQ7XG4gIGdldEVycm9yOiAoKSA9PiB1bmtub3duO1xuICBnZXRTdGF0dXM6ICgpID0+IEFzeW5jUmVzb3VyY2VTdGF0dXM7XG4gIGxvYWQ6ICgpID0+IFByb21pc2U8VD47XG4gIHJlYWQ6ICgpID0+IFQ7XG59O1xuXG4vKipcbiAqIElucHV0IHR5cGUgZm9yIGNyZWF0aW5nIGEgRmxhdFJvdXRlIGluc3RhbmNlLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIEZsYXRSb3V0ZUlucHV0PFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGE+ID0ge1xuICAvKiogVGhlIFVSTCBwYXRoIHBhdHRlcm4gZm9yIHRoaXMgcm91dGUgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogUGVyLXJlbmRlcmVkLXJvdXRlIG1ldGFkYXRhIGFsaWduZWQgd2l0aCBgcm91dGVzYC4gKi9cbiAgcm91dGVTZWdtZW50cz86IEZsYXRSb3V0ZVNlZ21lbnRbXTtcbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XG4gIC8qKiBGdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgbWF0Y2hGdW5jdGlvbjogTWF0Y2hGdW5jdGlvbjxUVmFyaWFibGVzPjtcbiAgLyoqIE5lc3RlZCByb3V0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgd2l0aGluIHRoaXMgcm91dGUgKi9cbiAgcm91dGVzOiBBbnlSb3V0ZVtdO1xufTtcblxuZXhwb3J0IHR5cGUgRmxhdFJvdXRlU2VnbWVudCA9IHtcbiAgLyoqIFN0YWJsZSBrZXkgZm9yIHRoZSByZW5kZXJlZCBzZWdtZW50IHdpdGhpbiBhIGZsYXQgcm91dGUgY2hhaW4uICovXG4gIGtleTogc3RyaW5nO1xuICAvKiogTG9jYWwgcm91dGUgcGF0aCBjb25maWd1cmVkIG9uIHRoZSByb3V0ZSBub2RlLiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogQWJzb2x1dGUgcGF0aCByZXByZXNlbnRlZCBieSB0aGlzIHNlZ21lbnQuICovXG4gIGZ1bGxQYXRoOiBzdHJpbmc7XG4gIC8qKiBQYXJhbXMgdGhhdCBtYXkgYmUgcmVhZCBieSB0aGlzIHNlZ21lbnQsIGluY2x1ZGluZyBhbmNlc3RvciBwYXJhbXMuICovXG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIGV4dHJhY3RlZCBwYXJhbWV0ZXJzIGFuZCBtZXRhZGF0YS5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgbWF0Y2ggcmVzdWx0IGZyb20gcGF0aC10by1yZWdleHAgKi9cbiAgbWF0Y2g6IE1hdGNoPFRWYXJpYWJsZXM+O1xuICAvKiogRXh0cmFjdGVkIHBhcmFtZXRlcnMgZnJvbSB0aGUgVVJMIHBhdGggKi9cbiAgcGFyYW1zOiBUVmFyaWFibGVzO1xuICAvKiogVGhlIG1hdGNoZWQgcGF0aCBzdHJpbmcgKi9cbiAgcGF0aDogc3RyaW5nO1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICByb3V0ZTogRmxhdFJvdXRlPFRWYXJpYWJsZXM+O1xufTtcblxuLyoqXG4gKiBBIFJlYWN0IGNvbXBvbmVudCB0aGF0IGNhbiBiZSB1c2VkIGFzIGEgcm91dGUgY29tcG9uZW50LlxuICogQHRlbXBsYXRlIFRQcm9wcyAtIFRoZSBwcm9wcyB0eXBlIGZvciB0aGUgY29tcG9uZW50XG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVhY3RDb21wb25lbnQ8VFByb3BzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gKFxuICBwcm9wczogVFByb3BzLFxuKSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG5cbnR5cGUgQml2YXJpYW50Q2FsbGJhY2s8Rm4gZXh0ZW5kcyAoLi4uYXJnczogbmV2ZXJbXSkgPT4gdW5rbm93bj4gPSB7XG4gIGJpdmFyaWFuY2VIYWNrOiBGbjtcbn1bJ2JpdmFyaWFuY2VIYWNrJ107XG5cbi8qKlxuICogT3B0aW9ucyBwYXNzZWQgdG8gYSByb3V0ZSByZW5kZXIgZnVuY3Rpb24uXG4gKiBAdGVtcGxhdGUgVFByZXBhcmVkIC0gVGhlIHR5cGUgb2YgcHJlcGFyZWQgZGF0YSByZXR1cm5lZCBieSB0aGUgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVSZW5kZXJPcHRzPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IHtcbiAgLyoqIENoaWxkIGNvbXBvbmVudHMgdG8gcmVuZGVyIHdpdGhpbiB0aGlzIHJvdXRlICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBPcHRpb25hbCBjb21wb25lbnQgdG8gcmVuZGVyIChmcm9tIFJlc291cmNlUGFnZSkgKi9cbiAgQ29tcG9uZW50PzogUm91dGVSZWFjdENvbXBvbmVudDtcbiAgLyoqIERhdGEgcHJlcGFyZWQgYnkgdGhlIHJvdXRlJ3MgcHJlcGFyZSBmdW5jdGlvbiAqL1xuICBwcmVwYXJlZDogVFByZXBhcmVkIHwgdW5kZWZpbmVkO1xuICAvKiogVGhlIHByZXBhcmVkIHNlZ21lbnQgdGhhdCBpcyBiZWluZyByZW5kZXJlZCAqL1xuICBwcmVwYXJlZFNlZ21lbnQ6IFByZXBhcmVkUm91dGVTZWdtZW50PFxuICAgIFRDb250ZXh0LFxuICAgIFRQcmVwYXJlZCxcbiAgICBUVmFyaWFibGVzLFxuICAgIFRRdWVyeVNoYXBlXG4gID47XG4gIC8qKiBBbGlhcyBrZXB0IGZvciBtaWdyYXRpb24gY29tcGF0aWJpbGl0eSAqL1xuICBwcmVwYXJlZFJvdXRlOiBQcmVwYXJlZFJvdXRlU2VnbWVudDxcbiAgICBUQ29udGV4dCxcbiAgICBUUHJlcGFyZWQsXG4gICAgVFZhcmlhYmxlcyxcbiAgICBUUXVlcnlTaGFwZVxuICA+O1xuICAvKiogVGhlIGZ1bGwgcHJlcGFyZWQgY2hhaW4gZm9yIHRoZSBjdXJyZW50IG1hdGNoICovXG4gIHByZXBhcmVkU2VnbWVudHM6IFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dD47XG4gIC8qKiBJbmRleCBvZiB0aGUgY3VycmVudCBzZWdtZW50IGluIHRoZSBwcmVwYXJlZCBjaGFpbiAqL1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgLyoqIFRoZSBsZWFmIHNlZ21lbnQgb2YgdGhlIHByZXBhcmVkIGNoYWluICovXG4gIGxlYWZTZWdtZW50OiBQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD47XG4gIC8qKiBUaGUgbWF0Y2hlZCByb3V0ZSBvciBudWxsIGlmIG5vIG1hdGNoICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBSYXcgcXVlcnkgb2JqZWN0IChQaGFzZSAyIGdlbmVyaWMgcGFyc2luZykgKi9cbiAgcmF3UXVlcnk6IFJhd1F1ZXJ5O1xuICAvKiogVHlwZWQgcXVlcnkgb2JqZWN0IChQaGFzZSAzKS4gRmFsbHMgYmFjayB0byByYXdRdWVyeSBpZiBubyBzY2hlbWEgKi9cbiAgcXVlcnk6IFRRdWVyeVNoYXBlO1xufTtcblxuLyoqXG4gKiBGdW5jdGlvbiB0byByZW5kZXIgYSByb3V0ZSB3aXRoIGN1c3RvbSBsb2dpYy5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZVJlbmRlcjxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBCaXZhcmlhbnRDYWxsYmFjazxcbiAgKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT5cbiAgICBSZWFjdEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxSZWFjdEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkPlxuPjtcblxuLyoqIEFsaWFzIGZvciByZW5kZXIgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUmVuZGVyQXJnczxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSBSb3V0ZVJlbmRlck9wdHM8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEEgc2luZ2xlIGFjdGl2ZSBwcmVwYXJlZCByb3V0ZSBzZWdtZW50IHdpdGhpbiB0aGUgY3VycmVudCByb3V0ZSBjaGFpbi5cbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8XG4gIFRDb250ZXh0ID0gdW5rbm93bixcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCA9IFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbj4gPSB7XG4gIC8qKiBUaGUgcm91dGUgZGVmaW5pdGlvbiB0aGF0IHByb2R1Y2VkIHRoaXMgcHJlcGFyZWQgc2VnbWVudCAqL1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIC8qKiBUaGUgcGF0aCB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHBhdGg/OiBzdHJpbmc7XG4gIC8qKiBBYnNvbHV0ZSByb3V0ZSBwYXRoIGZvciB0aGUgY3VycmVudCBzZWdtZW50IHdoZW4ga25vd24gKi9cbiAgZnVsbFBhdGg/OiBzdHJpbmc7XG4gIC8qKiBTdGFibGUga2V5IHVzZWQgZm9yIHJvdXRlIHNlZ21lbnQgcmVjb25jaWxpYXRpb24uICovXG4gIHNlZ21lbnRLZXk6IHN0cmluZztcbiAgLyoqIFBhcmFtcyB0aGF0IG1heSBhZmZlY3QgdGhpcyBzZWdtZW50LiAqL1xuICBwYXJhbU5hbWVzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqIE9yZGVyIG9mIHRoZSBzZWdtZW50IGluIHRoZSBhY3RpdmUgcHJlcGFyZWQgY2hhaW4gKi9cbiAgc2VnbWVudEluZGV4OiBudW1iZXI7XG4gIC8qKiBBc3luYyByZXNvdXJjZSBleHBvc2luZyB0aGUgcm91dGUncyBwcmVwYXJlZCB2YWx1ZSAqL1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlPFRQcmVwYXJlZD47XG4gIC8qKiBDdXN0b20gcmVuZGVyIGZ1bmN0aW9uIGZvciB0aGlzIHJvdXRlICovXG4gIHJlbmRlcj86IFJvdXRlUmVuZGVyPFRDb250ZXh0LCBUUHJlcGFyZWQsIFRWYXJpYWJsZXMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHJlZGlyZWN0VG86IHN0cmluZyB8IG51bGw7XG4gIC8qKiBSZXNvdXJjZSBwYWdlIGZvciBsYXp5LWxvYWRlZCBjb21wb25lbnRzICovXG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIC8qKiBDb250cm9scyB3aGV0aGVyIHRoaXMgc2VnbWVudCBvd25zIGEgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkuICovXG4gIHN1c3BlbnNlQm91bmRhcnk6IFJvdXRlU3VzcGVuc2VCb3VuZGFyeTtcbiAgLyoqIEZhbGxiYWNrIHVzZWQgd2hlbiB0aGlzIHNlZ21lbnQncyBsb2NhbCBTdXNwZW5zZSBib3VuZGFyeSBpcyBhY3RpdmUuICovXG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxUQ29udGV4dD47XG4gIC8qKiBJZGVudGlmaWVyIHVzZWQgYnkgZGV2ZWxvcGVyIHRvb2xpbmcgdG8gbWFwIHJlbmRlcmVkIERPTSByZWdpb25zICovXG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgc2NoZW1hIGRlY2xhcmVkIGJ5IHRoZSByb3V0ZSBzZWdtZW50ICovXG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRNYXRjaFJvdXRlID0gUHJlcGFyZWRSb3V0ZVNlZ21lbnQ7XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50czxUQ29udGV4dCA9IHVua25vd24+ID1cbiAgUHJlcGFyZWRSb3V0ZVNlZ21lbnQ8VENvbnRleHQ+W107XG5cbmV4cG9ydCB0eXBlIFByZXBhcmVkUm91dGVTZWdtZW50U25hcHNob3QgPSB7XG4gIHJvdXRlTm9kZT86IFJvdXRlTm9kZTtcbiAgcGF0aD86IHN0cmluZztcbiAgZnVsbFBhdGg/OiBzdHJpbmc7XG4gIHNlZ21lbnRLZXk6IHN0cmluZztcbiAgcGFyYW1OYW1lczogcmVhZG9ubHkgc3RyaW5nW107XG4gIHNlZ21lbnRJbmRleDogbnVtYmVyO1xuICBwcmVwYXJlZFJlc291cmNlPzogUHJlcGFyZWRWYWx1ZVJlc291cmNlO1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjaztcbiAgaGlnaGxpZ2h0SWQ/OiBzdHJpbmc7XG4gIHF1ZXJ5U2NoZW1hPzogRmlsdGVyU2NoZW1hO1xufTtcblxuLyoqXG4gKiBSZXN1bHQgb2YgcHJlcGFyaW5nIGEgbWF0Y2hlZCByb3V0ZSwgaW5jbHVkaW5nIHRoZSBvcmRlcmVkIGNoYWluIG9mIG5lc3RlZCBhY3RpdmUgc2VnbWVudHMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRSb3V0ZUNoYWluPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIE9yZGVyZWQgYWN0aXZlIHByZXBhcmVkIHNlZ21lbnRzIGZyb20gb3V0ZXJtb3N0IHRvIGlubmVybW9zdCAqL1xuICBzZWdtZW50czogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0PjtcbiAgLyoqIEJhY2t3YXJkLWNvbXBhdGlibGUgYWxpYXMga2VwdCBkdXJpbmcgdGhlIHNlZ21lbnQtb3JpZW50ZWQgbWlncmF0aW9uICovXG4gIHJvdXRlczogUHJlcGFyZWRSb3V0ZVNlZ21lbnRzPFRDb250ZXh0Pjtcbn07XG5cbi8qKiBCYWNrd2FyZC1jb21wYXRpYmxlIGFsaWFzIGtlcHQgZHVyaW5nIHRoZSBzZWdtZW50LW9yaWVudGVkIG1pZ3JhdGlvbi4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWF0Y2g8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSBQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFxuICBUQ29udGV4dCA9IHVua25vd24sXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQgPSBQcmVwYXJlUmVzdWx0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICByb3V0ZU5vZGU/OiBSb3V0ZU5vZGU7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZ1bGxQYXRoPzogc3RyaW5nO1xuICBzZWdtZW50S2V5OiBzdHJpbmc7XG4gIHBhcmFtTmFtZXM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICBzZWdtZW50SW5kZXg6IG51bWJlcjtcbiAgcHJlcGFyZWQ6IFRQcmVwYXJlZCB8IHVuZGVmaW5lZDtcbiAgcmVuZGVyPzogUm91dGVSZW5kZXI8VENvbnRleHQsIFRQcmVwYXJlZCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuICByZWRpcmVjdFRvOiBzdHJpbmcgfCBudWxsO1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICBzdXNwZW5zZUJvdW5kYXJ5OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxUQ29udGV4dD47XG4gIGhpZ2hsaWdodElkPzogc3RyaW5nO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbn07XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVkUHJlcGFyZWRNYXRjaFJvdXRlID0gUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZFJvdXRlQ2hhaW48XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSB7XG4gIG1hdGNoOiBSb3V0ZXJNYXRjaGVkUm91dGU8VFZhcmlhYmxlcz4gfCBudWxsO1xuICBzZWdtZW50czogUmVzb2x2ZWRQcmVwYXJlZFJvdXRlU2VnbWVudDxUQ29udGV4dD5bXTtcbiAgcm91dGVzOiBSZXNvbHZlZFByZXBhcmVkUm91dGVTZWdtZW50PFRDb250ZXh0PltdO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZWRQcmVwYXJlZE1hdGNoPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0gUmVzb2x2ZWRQcmVwYXJlZFJvdXRlQ2hhaW48VFZhcmlhYmxlcywgVENvbnRleHQ+O1xuXG4vKipcbiAqIENvbXBsZXRlIHJvdXRlIGVudHJ5IHJlcHJlc2VudGluZyB0aGUgY3VycmVudCByb3V0ZXIgc3RhdGUuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVFbnRyeTxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENvbnRleHQgPSB1bmtub3duLFxuPiA9IHtcbiAgLyoqIFRoZSBwcmVwYXJlZCBtYXRjaCB3aXRoIGxvYWRlZCBkYXRhIGFuZCBjb21wb25lbnRzICovXG4gIHByZXBhcmVkTWF0Y2g6IFByZXBhcmVkUm91dGVDaGFpbjxUVmFyaWFibGVzLCBUQ29udGV4dD47XG4gIC8qKiBHbG9iYWwgbG9hZCBzdGF0ZSBmb3IgdGhlIGFjdGl2ZSByb3V0ZS4gKi9cbiAgYWN0aXZlTG9hZFN0YXRlOiBSb3V0ZXJBY3RpdmVMb2FkU3RhdGU7XG4gIC8qKiBQZXItc2VnbWVudCBsb2FkIHN0YXRlIGRldGFpbHMgZm9yIHRoZSBhY3RpdmUgcm91dGUuICovXG4gIGxvYWRTdGF0ZTogUm91dGVyTG9hZFN0YXRlO1xuICAvKiogUm91dGVyLWxldmVsIGNvbnRleHQgcmVzb2x2ZWQgZm9yIHRoaXMgZW50cnkgKi9cbiAgY29udGV4dDogVENvbnRleHQ7XG4gIC8qKiBDdXJyZW50IGJyb3dzZXIgbG9jYXRpb24gKi9cbiAgbG9jYXRpb246IExvY2F0aW9uO1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgb3IgbnVsbCBpZiBubyBtYXRjaCAqL1xuICByb3V0ZTogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+IHwgbnVsbDtcbiAgLyoqIFdoZXRoZXIgdG8gZm9yY2UgYSByZS1yZW5kZXIgZXZlbiBpZiB0aGUgcGF0aCBoYXNuJ3QgY2hhbmdlZCAqL1xuICBmb3JjZVJlcmVuZGVyOiBib29sZWFuO1xuICAvKiogUmF3IHNlYXJjaCBzdHJpbmcgKHF1ZXJ5IHBhcnQpIG9mIHRoZSBsb2NhdGlvbiBmb3IgY2hhbmdlIGRldGVjdGlvbiAqL1xuICByYXdTZWFyY2g/OiBzdHJpbmc7XG4gIC8qKiBQYXJzZWQgcmF3IHF1ZXJ5IHBhcmFtZXRlcnMgKHZhbHVlcyBhZ2dyZWdhdGVkOyBkdXBsaWNhdGVzID0+IGFycmF5KSAqL1xuICBxdWVyeTogUmF3UXVlcnk7XG4gIC8qKiBMZWdhY3kgdHlwZWRRdWVyeSByZW1vdmVkIOKAkyB1bmlmaWVkIGZpbHRlcnMgaGFuZGxlIHR5cGVkIGFjY2VzcyAqL1xuICAvLyB0eXBlZFF1ZXJ5PzogbmV2ZXI7XG4gIC8qKiBQYXJzZWQgZmlsdGVycyBvYmplY3QgZGVyaXZlZCBmcm9tIHRoZSBkZWVwZXN0IGFjdGl2ZSBxdWVyeVNjaGVtYSAoaWYgYW55KSAqL1xuICBmaWx0ZXJzPzogUyBleHRlbmRzIEZpbHRlclNjaGVtYSA/IEluZmVyRmlsdGVyUmVzdWx0PFM+IDogVW5rbm93bkZpbHRlcnM7XG4gIC8qKiBEaWFnbm9zdGljcyBmcm9tIGZpbHRlciBwYXJzaW5nIChpZiBhbnkpICovXG4gIGZpbHRlckRpYWdub3N0aWNzPzogRmlsdGVyRGlhZ25vc3RpY1tdO1xuICAvKiogRGVlcGVzdCBhY3RpdmUgcXVlcnkgc2NoZW1hIChGaWx0ZXJTY2hlbWEgZnJvbSBAcGx1bWlsZS9maWx0ZXItcXVlcnkpIGZvciBjdXJyZW50IG1hdGNoZWQgcm91dGUgKi9cbiAgYWN0aXZlUXVlcnlTY2hlbWE/OiBTO1xufTtcblxuLy8gUXVlcnlTY2hlbWEgJiBkZXNjcmlwdG9ycyByZW1vdmVkIChQaGFzZSAyIHVuaWZpZWQgbW9kZWwpIOKAkyBoaXN0b3JpY2FsIHR5cGVzIGludGVudGlvbmFsbHkgb21pdHRlZC5cblxuLyoqXG4gKiBIVFRQIHN0YXR1cyBjb2RlcyBmb3IgcmVkaXJlY3RzLlxuICovXG5leHBvcnQgdHlwZSBSb3V0ZXJSZWRpcmVjdFN0YXR1cyA9IDMwMSB8IDMwMjtcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgbWF0Y2hlZCByb3V0ZSB3aXRoIHJlZ2V4IG1hdGNoIHJlc3VsdC5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBNYXRjaGVkUm91dGU8VFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YT4gPSB7XG4gIC8qKiBUaGUgcmVnZXggbWF0Y2ggcmVzdWx0ICovXG4gIG1hdGNoOiBSZWdFeHBFeGVjQXJyYXk7XG4gIC8qKiBUaGUgZmxhdCByb3V0ZSB0aGF0IHdhcyBtYXRjaGVkICovXG4gIHJvdXRlOiBGbGF0Um91dGU8VFZhcmlhYmxlcz47XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgcm91dGUgcmVkaXJlY3QuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZGlyZWN0ID0ge1xuICAvKiogT3B0aW9uYWwgc291cmNlIHBhdGggcGF0dGVybiAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRGVzdGluYXRpb24gcGF0aCBmb3IgdGhlIHJlZGlyZWN0ICovXG4gIHRvOiBzdHJpbmc7XG4gIC8qKiBIVFRQIHN0YXR1cyBjb2RlIGZvciB0aGUgcmVkaXJlY3QgKi9cbiAgc3RhdHVzPzogUm91dGVyUmVkaXJlY3RTdGF0dXM7XG59O1xuXG4vKiogTWluaW1hbCBlcmFzZWQgcm91dGUgbm9kZSBzaGFwZSB1c2VkIGJ5IHJ1bnRpbWUgaGVscGVycyBhbmQgcmVjdXJzaXZlIHJvdXRlIHRyZWVzLiAqL1xuZXhwb3J0IHR5cGUgUm91dGVOb2RlID0ge1xuICBjaGlsZHJlbj86IHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXTtcbiAgcGF0aD86IHN0cmluZztcbiAgcHJlcGFyZT86IChwYXJhbXM6IFByZXBhcmVQYXJhbXM8YW55LCBhbnksIGFueT4pID0+IHVua25vd247XG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICBxdWVyeVNjaGVtYT86IEZpbHRlclNjaGVtYTtcbiAgcmVuZGVyPzogKFxuICAgIG9wdHM6IFJvdXRlUmVuZGVyT3B0czxhbnksIGFueSwgYW55LCBhbnk+LFxuICApID0+XG4gICAgUmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZCB8IFByb21pc2U8UmVhY3RFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZD47XG4gIHJlc291cmNlUGFnZT86IFJlc291cmNlUGFnZSB8IG51bGw7XG4gIHN1c3BlbnNlQm91bmRhcnk/OiBSb3V0ZVN1c3BlbnNlQm91bmRhcnk7XG4gIGZhbGxiYWNrPzogUm91dGVGYWxsYmFjazxhbnk+O1xufTtcblxuLyoqXG4gKiBCYXNlIHR5cGUgZm9yIGRhdGEgcHJlcGFyZWQgYnkgcm91dGUgcHJlcGFyZSBmdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVSZXN1bHQgPSB1bmtub3duO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgcGFzc2VkIHRvIGEgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uLlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVQYXJhbXM8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogVGhlIG1hdGNoZWQgcm91dGUgd2l0aCBleHRyYWN0ZWQgcGFyYW1ldGVycyAqL1xuICBtYXRjaDogUm91dGVyTWF0Y2hlZFJvdXRlPFRWYXJpYWJsZXM+O1xuICAvKiogVGhlIGZsYXQgcm91dGUgdGhhdCB3YXMgbWF0Y2hlZCAqL1xuICBtYXRjaGVkUm91dGU6IEZsYXRSb3V0ZTxUVmFyaWFibGVzPjtcbiAgLyoqIFJvdXRlci1sZXZlbCBjb250ZXh0ICovXG4gIGNvbnRleHQ6IFRDb250ZXh0O1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogRXh0cmFjdGVkIFVSTCBwYXJhbWV0ZXJzICovXG4gIHZhcmlhYmxlczogVFZhcmlhYmxlcztcbiAgLyoqIFR5cGVkIHF1ZXJ5IG9iamVjdCAqL1xuICBxdWVyeTogVFF1ZXJ5U2hhcGU7XG59O1xuXG4vKiogQWxpYXMgZm9yIHByZXBhcmUgYXJncyAoa2VwdCBmb3IgcHVibGljIEFQSSBjbGFyaXR5KS4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlUHJlcGFyZUFyZ3M8XG4gIFRDb250ZXh0LFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhID0gUGFyYW1EYXRhLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0gUHJlcGFyZVBhcmFtczxUQ29udGV4dCwgVFZhcmlhYmxlcywgVFF1ZXJ5U2hhcGU+O1xuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIHByZXBhcmUgZGF0YSBmb3IgYSByb3V0ZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHRlbXBsYXRlIFRQcmVwYXJlZCAtIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBmdW5jdGlvbiByZXR1cm5zXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgUm91dGVQcmVwYXJlPFxuICBUQ29udGV4dCxcbiAgVFByZXBhcmVkIGV4dGVuZHMgUHJlcGFyZVJlc3VsdCxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YSxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuPiA9IEJpdmFyaWFudENhbGxiYWNrPFxuICAoXG4gICAgcGFyYW1zOiBQcmVwYXJlUGFyYW1zPFRDb250ZXh0LCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT4sXG4gICkgPT4gTWF5YmVQcm9taXNlPFRQcmVwYXJlZD5cbj47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBzaW5nbGUgcm91dGUgaW4gdGhlIHJvdXRlci5cbiAqIEB0ZW1wbGF0ZSBUUHJlcGFyZWQgLSBUaGUgdHlwZSBvZiBwcmVwYXJlZCBkYXRhIHJldHVybmVkIGJ5IHRoZSByb3V0ZSdzIHByZXBhcmUgZnVuY3Rpb25cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZTxcbiAgVENvbnRleHQsXG4gIFRQcmVwYXJlZCBleHRlbmRzIFByZXBhcmVSZXN1bHQsXG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGEsXG4gIFRRdWVyeVNoYXBlIGV4dGVuZHMgVW5rbm93blF1ZXJ5U2hhcGUgPSBVbmtub3duUXVlcnlTaGFwZSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVENoaWxkcmVuIGV4dGVuZHMgcmVhZG9ubHkgKFJvdXRlTm9kZSB8IFJlZGlyZWN0KVtdIHwgdW5kZWZpbmVkID1cbiAgICByZWFkb25seSAoUm91dGVOb2RlIHwgUmVkaXJlY3QpW10gfCB1bmRlZmluZWQsXG4+ID0ge1xuICAvKipcbiAgICogTmVzdGVkIGNoaWxkIHJvdXRlcyBvciByZWRpcmVjdHMuXG4gICAqXG4gICAqIElNUE9SVEFOVDogVGhpcyB1c2VkIHRvIGJlIHR5cGVkIGFzIGAoUm91dGU8YW55LCBQcmVwYXJlUmVzdWx0PiB8IFJlZGlyZWN0KVtdYCB3aGljaFxuICAgKiB3aWRlbmVkIChlcmFzZWQpIHRoZSBnZW5lcmljIHBhcmFtZXRlciB0eXBlcyAobm90YWJseSB0aGUgYFRWYXJpYWJsZXNgIG9mIGVhY2hcbiAgICogY2hpbGQpLiBUaGF0IGNhdXNlZCBUeXBlU2NyaXB0IHRvIHRyZWF0IGV2ZXJ5IGNoaWxkIHJvdXRlJ3MgYHByZXBhcmVgIGNhbGxiYWNrXG4gICAqIGFzIGFjY2VwdGluZyB0aGUgZGVmYXVsdCBgUGFyYW1EYXRhYCBzaGFwZSAoZWZmZWN0aXZlbHkgYFBhcnRpYWw8UmVjb3JkPHN0cmluZyxzdHJpbmd8c3RyaW5nW10+PmApLlxuICAgKiBXaGVuIHVzZXIgY29kZSBzcGVjaWZpZWQgYSBtb3JlIHNwZWNpZmljIHBhcmFtZXRlciBvYmplY3QgKGUuZy4gYHsgc2x1Zzogc3RyaW5nIH1gKVxuICAgKiBmb3IgYSBwYXRoIGxpa2UgYDpzbHVnYCwgdGhlIGZ1bmN0aW9uIHR5cGUgYmVjYW1lIG5vbuKAkWFzc2lnbmFibGUgYmVjYXVzZSBpdHNcbiAgICogcGFyYW1ldGVyIHdhcyBzdHJpY3RlciB0aGFuIHRoZSB3aWRlbmVkIHZlcnNpb24uIEJ5IHN3aXRjaGluZyB0byBgQW55Um91dGVgIHdlXG4gICAqIHJldGFpbiBgYW55YCBpbiB0aGUgZXJhc2VkIHBvc2l0aW9uIGluc3RlYWQgb2YgYSBjb25jcmV0ZSBgUGFyYW1EYXRhYCwgd2hpY2hcbiAgICogYWxsb3dzIHN0cmljdGVyIGNoaWxkIGB2YXJpYWJsZXNgIHNoYXBlcyB3aXRob3V0IGNvbmZsaWN0LlxuICAgKlxuICAgKiBVc2luZyBgQW55Um91dGVgIHB1cnBvc2VseSBwcmVzZXJ2ZXMgaW5kZXBlbmRlbmNlIG9mIGVhY2ggcm91dGUncyBnZW5lcmljXG4gICAqIHBhcmFtZXRlcnMgd2hpbGUgc3RpbGwga2VlcGluZyBydW50aW1lIHJlcHJlc2VudGF0aW9uIGlkZW50aWNhbC5cbiAgICovXG4gIGNoaWxkcmVuPzogVENoaWxkcmVuO1xuICAvKiogUmVzb3VyY2UgcGFnZSBmb3IgbGF6eS1sb2FkZWQgY29tcG9uZW50cyAqL1xuICByZXNvdXJjZVBhZ2U/OiBSZXNvdXJjZVBhZ2UgfCBudWxsO1xuICAvKiogQ29udHJvbHMgd2hldGhlciB0aGlzIHJvdXRlIHNlZ21lbnQgb3ducyBhIGxvY2FsIFN1c3BlbnNlIGJvdW5kYXJ5LiAqL1xuICBzdXNwZW5zZUJvdW5kYXJ5PzogUm91dGVTdXNwZW5zZUJvdW5kYXJ5O1xuICAvKiogRmFsbGJhY2sgdXNlZCBieSB0aGlzIHJvdXRlIHNlZ21lbnQgd2hlbiBpdHMgbG9jYWwgU3VzcGVuc2UgYm91bmRhcnkgaXMgYWN0aXZlLiAqL1xuICBmYWxsYmFjaz86IFJvdXRlRmFsbGJhY2s8VENvbnRleHQ+O1xuICAvKiogVVJMIHBhdGggcGF0dGVybiBmb3IgdGhpcyByb3V0ZSAqL1xuICBwYXRoPzogc3RyaW5nO1xuICAvKiogRnVuY3Rpb24gdG8gcHJlcGFyZSBkYXRhIGJlZm9yZSByZW5kZXJpbmcgKi9cbiAgcHJlcGFyZT86IFJvdXRlUHJlcGFyZTxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKlxuICAgKiBDb250cm9scyB3aGV0aGVyIHRoaXMgcm91dGUncyBwcmVwYXJlIGZ1bmN0aW9uIHNob3VsZCBydW4gYWdhaW4gd2hlbiBvbmx5XG4gICAqIHRoZSBVUkwgc2VhcmNoIGNoYW5nZXMuIERlZmF1bHRzIHRvIGBhbHdheXNgIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS5cbiAgICovXG4gIHByZXBhcmVTZWFyY2hCZWhhdmlvcj86IFJvdXRlUHJlcGFyZVNlYXJjaEJlaGF2aW9yO1xuICAvKiogQ3VzdG9tIHJlbmRlciBmdW5jdGlvbiBmb3IgdGhpcyByb3V0ZSAqL1xuICByZW5kZXI/OiBSb3V0ZVJlbmRlcjxUQ29udGV4dCwgVFByZXBhcmVkLCBUVmFyaWFibGVzLCBUUXVlcnlTaGFwZT47XG4gIC8qKiBVbmlmaWVkIHNjaGVtYSAoZmlsdGVyIC8gcXVlcnkpICovXG4gIHF1ZXJ5U2NoZW1hPzogUztcbn07XG5cbi8qKlxuICogUHJvcHMgcGFzc2VkIHRvIFJvdXRlQ29tcG9uZW50IGluc3RhbmNlcy5cbiAqIEB0ZW1wbGF0ZSBUVmFyaWFibGVzIC0gUm91dGUgcGFyYW1ldGVyIHR5cGVzIGV4dHJhY3RlZCBmcm9tIHRoZSBVUkwgcGF0aFxuICovXG5leHBvcnQgdHlwZSBSb3V0ZUNvbXBvbmVudFByb3BzPFxuICBUVmFyaWFibGVzIGV4dGVuZHMgUGFyYW1EYXRhLFxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkID0gRmlsdGVyU2NoZW1hIHwgdW5kZWZpbmVkLFxuICBUUXVlcnlTaGFwZSBleHRlbmRzIFVua25vd25RdWVyeVNoYXBlID0gVW5rbm93blF1ZXJ5U2hhcGUsXG4+ID0ge1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgKi9cbiAgY2hpbGRyZW46IFJlYWN0RWxlbWVudDtcbiAgLyoqIFJvdXRlciBjb250ZXh0IGNvbnRhaW5pbmcgbmF2aWdhdGlvbiBhbmQgc3RhdGUgKi9cbiAgcm91dGVyQ29udGV4dDogUm91dGluZ0NvbnRleHRUeXBlPFRWYXJpYWJsZXMsIFMsIFRRdWVyeVNoYXBlPjtcbiAgLyoqIFRoZSByb3V0ZSBjb25maWd1cmF0aW9uICovXG4gIHJvdXRlOiBSb3V0ZTx1bmtub3duLCB1bmtub3duLCBQYXJhbURhdGEsIFVua25vd25RdWVyeVNoYXBlLCBTPjtcbn07XG5cbi8qKlxuICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJvdXRlIGNoYW5nZXMuXG4gKiBAdGVtcGxhdGUgVFZhcmlhYmxlcyAtIFJvdXRlIHBhcmFtZXRlciB0eXBlcyBleHRyYWN0ZWQgZnJvbSB0aGUgVVJMIHBhdGhcbiAqL1xuZXhwb3J0IHR5cGUgU3Vic2NyaWJlQ2FsbGJhY2s8XG4gIFRWYXJpYWJsZXMgZXh0ZW5kcyBQYXJhbURhdGEsXG4gIFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQgPSBGaWx0ZXJTY2hlbWEgfCB1bmRlZmluZWQsXG4gIFRDb250ZXh0ID0gdW5rbm93bixcbj4gPSAobmV4dEVudHJ5OiBSb3V0ZUVudHJ5PFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PikgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgUHJlbG9hZFRhcmdldCA9IHtcbiAgcGF0aG5hbWU6IHN0cmluZztcbiAgc2VhcmNoPzogc3RyaW5nO1xuICBzb3VyY2U/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJvdXRlciBjb250ZXh0IHR5cGUgdGhhdCBwcm92aWRlcyBuYXZpZ2F0aW9uIGFuZCBzdGF0ZSBtYW5hZ2VtZW50LlxuICogQHRlbXBsYXRlIFRWYXJpYWJsZXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCB0eXBlIFJvdXRpbmdDb250ZXh0VHlwZTxcbiAgVFZhcmlhYmxlcyBleHRlbmRzIFBhcmFtRGF0YSxcbiAgUyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCA9IEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZCxcbiAgVFF1ZXJ5U2hhcGUgZXh0ZW5kcyBVbmtub3duUXVlcnlTaGFwZSA9IFVua25vd25RdWVyeVNoYXBlLFxuICBUQ29udGV4dCA9IHVua25vd24sXG4+ID0ge1xuICAvKipcbiAgICogU2VyaWFsaXplcyBxdWVyeSBwYXJhbWV0ZXJzIGFuZCBmaWx0ZXJzIHdpdGggdGhlIHNjaGVtYSBvZiB0aGUgZGVzdGluYXRpb25cbiAgICogcm91dGUuIFVubGlrZSBuYXZpZ2F0ZSgpLCB0aGlzIG9ubHkgaW5jbHVkZXMgdmFsdWVzIHN1cHBsaWVkIGJ5IHRoZSBjYWxsZXIuXG4gICAqL1xuICBidWlsZFNlYXJjaDogKG9wdHM6IHtcbiAgICBwYXRobmFtZT86IHN0cmluZztcbiAgICBxdWVyeT86IFVua25vd25RdWVyeVNoYXBlO1xuICAgIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgfSkgPT4gc3RyaW5nO1xuICAvKiogQnJvd3NlciBoaXN0b3J5IGluc3RhbmNlIGZvciBuYXZpZ2F0aW9uICovXG4gIGhpc3Rvcnk6IEJyb3dzZXJIaXN0b3J5O1xuICAvKiogR2V0IHRoZSBjdXJyZW50IHJvdXRlIGVudHJ5ICovXG4gIGdldDogKCkgPT4gUm91dGVFbnRyeTxUVmFyaWFibGVzLCBTLCBUQ29udGV4dD47XG4gIC8qKiBQcmVsb2FkIGNvZGUgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZENvZGU6ICh0YXJnZXQ6IFByZWxvYWRUYXJnZXQpID0+IHZvaWQ7XG4gIC8qKiBQcmVsb2FkIGNvZGUgYW5kIGRhdGEgZm9yIGEgcm91dGUgd2l0aG91dCBzdG9yaW5nIHRoZSByZXN1bHQgKi9cbiAgcHJlbG9hZDogKHRhcmdldDogUHJlbG9hZFRhcmdldCkgPT4gdm9pZDtcbiAgLyoqIFN1YnNjcmliZSB0byByb3V0ZSBjaGFuZ2VzIChzY2hlbWEgZGVyaXZhYmxlLCBub3QgbmVlZGVkIGluIHNpZ25hdHVyZSkgKi9cbiAgc3Vic2NyaWJlOiAoXG4gICAgY2FsbGJhY2s6IFN1YnNjcmliZUNhbGxiYWNrPFRWYXJpYWJsZXMsIFMsIFRDb250ZXh0PixcbiAgKSA9PiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgd2l0aCBvcHRpb25hbCBwYXRobmFtZSBhbmQgdHlwZWQvcmF3IHF1ZXJ5IG9iamVjdCAqL1xuICBuYXZpZ2F0ZTogKG9wdHM6IHtcbiAgICBwYXRobmFtZT86IHN0cmluZztcbiAgICBxdWVyeT86IFRRdWVyeVNoYXBlO1xuICAgIC8qKiBPcHRpb25hbCBmaWx0ZXJzIG9iamVjdCB0byBzZXJpYWxpemUgdXNpbmcgdGhlIGFjdGl2ZSBxdWVyeVNjaGVtYSAqL1xuICAgIGZpbHRlcnM/OiBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBVbmtub3duRmlsdGVycztcbiAgICByZXBsYWNlPzogYm9vbGVhbjtcbiAgfSkgPT4gdm9pZDtcbn07XG5cbi8qKlxuICogUmV0dXJuIHR5cGUgZm9yIHJlc291cmNlIHBhZ2UgbG9hZGVycy5cbiAqL1xuZXhwb3J0IHR5cGUgUmVzb3VyY2VQYWdlUmV0dXJuID1cbiAgeyBkZWZhdWx0OiBDb21wb25lbnRUeXBlPGFueT4gfSB8IENvbXBvbmVudFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiB0aGF0IGxvYWRzIGEgcmVzb3VyY2UgcGFnZSBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIFJlc291cmNlUGFnZUxvYWRlciA9ICgpID0+IFByb21pc2U8UmVzb3VyY2VQYWdlUmV0dXJuPjtcblxuZXhwb3J0IHR5cGUgUHJlcGFyZWRWYWx1ZVJlc291cmNlPFxuICBUUHJlcGFyZWQgZXh0ZW5kcyBQcmVwYXJlUmVzdWx0ID0gUHJlcGFyZVJlc3VsdCxcbj4gPSBSZWFkYWJsZVJlc291cmNlPFRQcmVwYXJlZD47XG5cbi8qKiBVdGlsaXR5OiBpbmZlciBmaWx0ZXJzIHR5cGUgZm9yIGEgZ2l2ZW4gcXVlcnkgc2NoZW1hICovXG5leHBvcnQgdHlwZSBJbmZlckZpbHRlcnM8UyBleHRlbmRzIEZpbHRlclNjaGVtYSB8IHVuZGVmaW5lZD4gPVxuICBTIGV4dGVuZHMgRmlsdGVyU2NoZW1hID8gSW5mZXJGaWx0ZXJSZXN1bHQ8Uz4gOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj47XG5cbmV4cG9ydCB0eXBlIHsgRmlsdGVyU2NoZW1hIH07XG5cbi8qKiBSZS1leHBvcnQgaGVscGVyIGZpbHRlci1xdWVyeSB0eXBlIGZvciB1c2VyIGNvbnZlbmllbmNlICovXG5leHBvcnQgdHlwZSB7IEluZmVyRmlsdGVyRmllbGQgYXMgSW5mZXJGaWVsZCB9O1xuXG4vKipcbiAqIFN0cm9uZ2x5IHR5cGVkIGZpbHRlciBhY3Rpb25zIChQaGFzZSAxIGJhc2UgdHlwZXMpLiBJbXBsZW1lbnRhdGlvbiB3aWxsIGJlIHdpcmVkXG4gKiBpbiBhIGxhdGVyIHBoYXNlIHdoZW4gYHVzZUZpbHRlcnNgIGJlY29tZXMgZ2VuZXJpYy5cbiAqXG4gKiBTOiBTY2hlbWEgdHlwZSBwYXNzZWQgdG8gdGhlIGhvb2svcm91dGUuXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVkRmlsdGVyQWN0aW9uczxTIGV4dGVuZHMgRmlsdGVyU2NoZW1hPiA9IHtcbiAgLyoqIFNldCBvciB1bnNldCAodmFsdWUgPSB1bmRlZmluZWQpIGEgc3BlY2lmaWMgb3BlcmF0b3IgdmFsdWUgZm9yIGEgZmllbGQgKi9cbiAgc2V0OiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcjogTyxcbiAgICB2YWx1ZTogTm9uTnVsbGFibGU8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz5bRl0+W09dIHwgdW5kZWZpbmVkLFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIFJlbW92ZSBhIHdob2xlIGZpZWxkIG9yIGEgc3BlY2lmaWMgb3BlcmF0b3IgKi9cbiAgcmVtb3ZlOiA8XG4gICAgRiBleHRlbmRzIGtleW9mIFMgJiBzdHJpbmcsXG4gICAgTyBleHRlbmRzIGtleW9mIE5vbk51bGxhYmxlPEluZmVyRmlsdGVyUmVzdWx0PFM+W0ZdPiAmIHN0cmluZyxcbiAgPihcbiAgICBmaWVsZDogRixcbiAgICBvcGVyYXRvcj86IE8sXG4gICAgb3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSxcbiAgKSA9PiB2b2lkO1xuICAvKiogTWVyZ2UgYSBwYXJ0aWFsIGZpbHRlcnMgb2JqZWN0ICovXG4gIG1lcmdlOiAoXG4gICAgcGF0Y2g6IFBhcnRpYWw8SW5mZXJGaWx0ZXJSZXN1bHQ8Uz4+LFxuICAgIG9wdHM/OiB7IHJlcGxhY2U/OiBib29sZWFuIH0sXG4gICkgPT4gdm9pZDtcbiAgLyoqIENsZWFyIGFsbCBmaWx0ZXJzICovXG4gIGNsZWFyOiAob3B0cz86IHsgcmVwbGFjZT86IGJvb2xlYW4gfSkgPT4gdm9pZDtcbn07XG5cbi8qKiBNaW5pbWFsIHJvdXRlIG5vZGUgc2hhcGUgdXNlZCBieSByZWN1cnNpdmUgdHJlZSB1dGlsaXRpZXMuICovXG5leHBvcnQgdHlwZSBSb3V0ZVRyZWVOb2RlID0gUm91dGVOb2RlO1xuXG4vKipcbiAqIENvbnZlbmllbmNlIHVtYnJlbGxhIHJvdXRlIHR5cGUuXG4gKiBVc2VkIHdoZXJlIHdlIGp1c3Qgd2FudCB0byBjYXJyeSBhcmJpdHJhcnkgcm91dGUgZ2VuZXJpY3MgZm9yd2FyZCB3aXRob3V0IGVyYXN1cmUuXG4gKi9cbmV4cG9ydCB0eXBlIFVua25vd25Sb3V0ZTxUQ29udGV4dCA9IHVua25vd24+ID0gUm91dGU8VENvbnRleHQsIHVua25vd24+O1xuXG4vKiogQmFja3dhcmQtY29tcGF0aWJsZSB1bWJyZWxsYSByb3V0ZSB0eXBlLiAqL1xuZXhwb3J0IHR5cGUgQW55Um91dGUgPSBSb3V0ZU5vZGU7XG5cbi8qKiBFeHRyYWN0IG5lc3RlZCBjaGlsZCByb3V0ZSB1bmlvbiBmcm9tIGEgcm91dGUgZGVmaW5pdGlvbi4gKi9cbmV4cG9ydCB0eXBlIENoaWxkUm91dGVPZjxSPiA9IFIgZXh0ZW5kcyB7IGNoaWxkcmVuPzogcmVhZG9ubHkgKGluZmVyIEMpW10gfVxuICA/IEV4dHJhY3Q8QywgUm91dGVUcmVlTm9kZT5cbiAgOiBuZXZlcjtcblxuLyoqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gYSByb3V0ZSB0cmVlIGludG8gYSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVHJlZVJvdXRlVW5pb248Uj4gPSBSIGV4dGVuZHMgUm91dGVUcmVlTm9kZVxuICA/IFIgfCBSb3V0ZVRyZWVSb3V0ZVVuaW9uPENoaWxkUm91dGVPZjxSPj5cbiAgOiBuZXZlcjtcblxuLyoqIEZsYXR0ZW4gYSB0dXBsZSBvZiByb3V0ZXMgaW50byBhIHJlY3Vyc2l2ZSByb3V0ZSB1bmlvbi4gKi9cbmV4cG9ydCB0eXBlIFJvdXRlVW5pb248Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFJvdXRlVHJlZVJvdXRlVW5pb248XG4gIFJvdXRlc1tudW1iZXJdXG4+O1xuXG4vKiogRXh0cmFjdCB0aGUgcHJlcGFyZWQgdHlwZSBmcm9tIGEgUm91dGUgKi9cbnR5cGUgUm91dGVUeXBlUGFydHM8Uj4gPVxuICBSIGV4dGVuZHMgUm91dGU8XG4gICAgaW5mZXIgVENvbnRleHQsXG4gICAgaW5mZXIgVFByZXBhcmVkLFxuICAgIGluZmVyIFRWYXJzLFxuICAgIGluZmVyIFRRdWVyeSxcbiAgICBpbmZlciBUU2NoZW1hLFxuICAgIGluZmVyIFRDaGlsZHJlbiBleHRlbmRzIHJlYWRvbmx5IChSb3V0ZU5vZGUgfCBSZWRpcmVjdClbXSB8IHVuZGVmaW5lZFxuICA+XG4gICAgPyB7XG4gICAgICAgIGNvbnRleHQ6IFRDb250ZXh0O1xuICAgICAgICBwcmVwYXJlZDogVFByZXBhcmVkO1xuICAgICAgICB2YXJpYWJsZXM6IFRWYXJzO1xuICAgICAgICBxdWVyeTogVFF1ZXJ5O1xuICAgICAgICBzY2hlbWE6IFRTY2hlbWE7XG4gICAgICAgIGNoaWxkcmVuOiBUQ2hpbGRyZW47XG4gICAgICB9XG4gICAgOiBuZXZlcjtcblxuLyoqIEV4dHJhY3QgdGhlIHByZXBhcmVkIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBQcmVwYXJlZE9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3ByZXBhcmVkJ107XG4vKiogRXh0cmFjdCB0aGUgdmFyaWFibGVzIHR5cGUgZnJvbSBhIFJvdXRlICovXG5leHBvcnQgdHlwZSBWYXJpYWJsZXNPZjxSPiA9IFJvdXRlVHlwZVBhcnRzPFI+Wyd2YXJpYWJsZXMnXTtcbi8qKiBFeHRyYWN0IHRoZSBxdWVyeSBzaGFwZSB0eXBlIGZyb20gYSBSb3V0ZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU9mPFI+ID0gUm91dGVUeXBlUGFydHM8Uj5bJ3F1ZXJ5J107XG5cbi8qKiBQYXRoIGxpdGVyYWwgdHlwZSBpZiBwcmVzZW50ICovXG5leHBvcnQgdHlwZSBQYXRoT2Y8Uj4gPSBSIGV4dGVuZHMgeyBwYXRoPzogaW5mZXIgUCB9XG4gID8gUCBleHRlbmRzIHN0cmluZ1xuICAgID8gUFxuICAgIDogbmV2ZXJcbiAgOiBuZXZlcjtcblxuLyoqIFVuaW9uIG9mIGFsbCBjb25jcmV0ZSBwYXRoIHN0cmluZ3MgZnJvbSBhIHR1cGxlL2FycmF5IG9mIHJvdXRlcyAocmVjdXJzaXZlKS4gKi9cbmV4cG9ydCB0eXBlIFBhdGhzT2Y8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IFBhdGhPZjxcbiAgUm91dGVVbmlvbjxSb3V0ZXM+XG4+O1xuXG4vKiogTWFwIHBhdGggLT4gcHJlcGFyZWQgdHlwZSB1bmlvbiAocGVyLXJvdXRlIHByZWNpc2lvbiBpcyBpbnRlbnRpb25hbGx5IGVyYXNlZCBoZXJlKS4gKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkTWFwPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIFBhdGhzT2Y8Um91dGVzPixcbiAgUHJlcGFyZWRPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+IHwgdW5kZWZpbmVkXG4+O1xuXG4vKiogTWFwIHBhdGggLT4gb3JkZXJlZCBwcmVwYXJlZCBzZWdtZW50IHR1cGxlIG9yIGFycmF5IHNoYXBlLiAqL1xuZXhwb3J0IHR5cGUgUHJlcGFyZWRTZWdtZW50c01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFByZXBhcmVkUm91dGVTZWdtZW50W11cbj47XG5cbi8qKiBNYXAgcGF0aCAtPiBxdWVyeSBzaGFwZSAqL1xuZXhwb3J0IHR5cGUgUXVlcnlTaGFwZU1hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIFF1ZXJ5U2hhcGVPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogRXh0cmFjdCBzY2hlbWEgZnJvbSBhIHJvdXRlICh1bmRlZmluZWQgaWYgYWJzZW50KSAqL1xuZXhwb3J0IHR5cGUgU2NoZW1hT2Y8Uj4gPSBSIGV4dGVuZHMgeyBxdWVyeVNjaGVtYT86IGluZmVyIFMgfVxuICA/IFMgZXh0ZW5kcyBGaWx0ZXJTY2hlbWFcbiAgICA/IFNcbiAgICA6IHVuZGVmaW5lZFxuICA6IHVuZGVmaW5lZDtcblxuLyoqIEZpbHRlcnMgaW5mZXJyZWQgZnJvbSB0aGUgcm91dGUncyBzY2hlbWEgKi9cbmV4cG9ydCB0eXBlIEZpbHRlcnNPZjxSPiA9XG4gIFNjaGVtYU9mPFI+IGV4dGVuZHMgRmlsdGVyU2NoZW1hXG4gICAgPyBJbmZlckZpbHRlclJlc3VsdDxTY2hlbWFPZjxSPj5cbiAgICA6IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqIE1hcCBwYXRoIC0+IGluZmVycmVkIGZpbHRlcnMgdHlwZSAqL1xuZXhwb3J0IHR5cGUgRmlsdGVyc01hcDxSb3V0ZXMgZXh0ZW5kcyByZWFkb25seSB1bmtub3duW10+ID0gUmVjb3JkPFxuICBQYXRoc09mPFJvdXRlcz4sXG4gIEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+XG4+O1xuXG4vKiogUnVudGltZSBoZWxwZXIgaW50ZXJmYWNlIGF1Z21lbnRhdGlvbiBmb3Igcm91dGVyIGNvbnRleHQgKGFkZGVkIGluIGNyZWF0ZVJvdXRlcikgKi9cbmV4cG9ydCB0eXBlIFByZXBhcmVkQWNjZXNzPFJvdXRlcyBleHRlbmRzIHJlYWRvbmx5IHVua25vd25bXT4gPSBSZWNvcmQ8XG4gIG5ldmVyLFxuICBuZXZlclxuPiAmIHtcbiAgLyoqIFJldHJpZXZlIHRoZSBwcmVwYXJlZCBvYmplY3QgZm9yIGEgY29uY3JldGUgcGF0aCAoaWYgY3VycmVudCBtYXRjaCBpbmNsdWRlcyBpdCkgKi9cbiAgZ2V0UHJlcGFyZWQ6IChwYXRoOiBzdHJpbmcpID0+IFByZXBhcmVkT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PiB8IHVuZGVmaW5lZDtcbiAgLyoqIFJldHJpZXZlIHRoZSBmdWxsIHByZXBhcmVkIHNlZ21lbnQgY2hhaW4gZm9yIGEgY29uY3JldGUgcGF0aC4gKi9cbiAgZ2V0UHJlcGFyZWRTZWdtZW50czogKHBhdGg6IHN0cmluZykgPT4gUHJlcGFyZWRSb3V0ZVNlZ21lbnRTbmFwc2hvdFtdO1xuICAvLyBnZXRUeXBlZFF1ZXJ5IHJlbW92ZWQg4oCTIHVzZSBmaWx0ZXJzL3F1ZXJ5IGRpcmVjdGx5XG59O1xuXG4vKiogSW5wdXQgc2hhcGUgZm9yIGEgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIHBhdGggKHR5cGVkIHF1ZXJ5KSAqL1xuZXhwb3J0IHR5cGUgTmF2aWdhdGVJbnB1dEZvclBhdGg8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiA9IHtcbiAgcGF0aG5hbWU6IFBhdGhzT2Y8Um91dGVzPjtcbiAgcXVlcnk/OiBRdWVyeVNoYXBlT2Y8Um91dGVVbmlvbjxSb3V0ZXM+PjtcbiAgZmlsdGVycz86IEZpbHRlcnNPZjxSb3V0ZVVuaW9uPFJvdXRlcz4+O1xuICByZXBsYWNlPzogYm9vbGVhbjtcbn07XG5cbi8qKiBGYWxsYmFjayB1bnR5cGVkIG5hdmlnYXRlIGlucHV0ICovXG5leHBvcnQgdHlwZSBOYXZpZ2F0ZUlucHV0VW50eXBlZCA9IHtcbiAgcGF0aG5hbWU/OiBzdHJpbmc7XG4gIHF1ZXJ5PzogVW5rbm93blF1ZXJ5U2hhcGU7XG4gIGZpbHRlcnM/OiBVbmtub3duRmlsdGVycztcbiAgcmVwbGFjZT86IGJvb2xlYW47XG59O1xuXG4vKiogT3ZlcmxvYWRlZCBuYXZpZ2F0ZSBmdW5jdGlvbiB0eXBlIChjb21waWxlLXRpbWUgb25seTsgcnVudGltZSBzaW5nbGUgaW1wbCkgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGVPdmVybG9hZHM8Um91dGVzIGV4dGVuZHMgcmVhZG9ubHkgdW5rbm93bltdPiB7XG4gIChvcHRzOiBOYXZpZ2F0ZUlucHV0Rm9yUGF0aDxSb3V0ZXM+KTogdm9pZDtcbiAgKG9wdHM6IE5hdmlnYXRlSW5wdXRVbnR5cGVkKTogdm9pZDtcbn1cbiJdfQ==