payload 2.0.2 → 2.0.4

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.
Files changed (46) hide show
  1. package/README.md +7 -0
  2. package/dist/admin/components/elements/ArrayAction/index.js +2 -2
  3. package/dist/admin/components/elements/DeleteDocument/index.d.ts.map +1 -1
  4. package/dist/admin/components/elements/DeleteDocument/index.js +38 -31
  5. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  6. package/dist/admin/components/elements/DocumentControls/index.js +4 -4
  7. package/dist/admin/components/elements/DocumentHeader/index.d.ts.map +1 -1
  8. package/dist/admin/components/elements/DocumentHeader/index.js +4 -5
  9. package/dist/admin/components/elements/DuplicateDocument/index.d.ts.map +1 -1
  10. package/dist/admin/components/elements/DuplicateDocument/index.js +3 -4
  11. package/dist/admin/components/elements/RenderTitle/index.d.ts.map +1 -1
  12. package/dist/admin/components/elements/RenderTitle/index.js +6 -3
  13. package/dist/admin/components/forms/Form/fieldReducer.d.ts.map +1 -1
  14. package/dist/admin/components/forms/Form/fieldReducer.js +20 -13
  15. package/dist/admin/components/forms/Form/index.d.ts.map +1 -1
  16. package/dist/admin/components/forms/Form/index.js +11 -11
  17. package/dist/admin/components/forms/Form/rows.js +4 -4
  18. package/dist/admin/components/forms/Form/types.d.ts +2 -2
  19. package/dist/admin/components/forms/Form/types.d.ts.map +1 -1
  20. package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
  21. package/dist/admin/components/forms/field-types/Row/index.js +2 -3
  22. package/dist/admin/components/forms/field-types/Row/index.scss +13 -3
  23. package/dist/admin/components/forms/field-types/Upload/Input.d.ts.map +1 -1
  24. package/dist/admin/components/forms/field-types/Upload/Input.js +3 -3
  25. package/dist/admin/components/views/API/index.d.ts +2 -3
  26. package/dist/admin/components/views/API/index.d.ts.map +1 -1
  27. package/dist/admin/components/views/API/index.js +22 -5
  28. package/dist/admin/components/views/API/index.scss +8 -0
  29. package/dist/admin/components/views/Global/Default/index.scss +3 -2
  30. package/dist/admin/components/views/collections/Edit/Default/index.scss +3 -2
  31. package/dist/admin/components/views/collections/Edit/SetStepNav.d.ts +1 -1
  32. package/dist/admin/components/views/collections/Edit/SetStepNav.d.ts.map +1 -1
  33. package/dist/admin/components/views/collections/Edit/SetStepNav.js +7 -5
  34. package/dist/admin/hooks/useTitle.d.ts +6 -1
  35. package/dist/admin/hooks/useTitle.d.ts.map +1 -1
  36. package/dist/admin/hooks/useTitle.js +18 -10
  37. package/dist/bin/generateTypes.d.ts.map +1 -1
  38. package/dist/bin/generateTypes.js +9 -2
  39. package/dist/fields/validations.d.ts.map +1 -1
  40. package/dist/fields/validations.js +15 -15
  41. package/dist/fields/validations.spec.js +16 -10
  42. package/dist/utilities/configToJSONSchema.d.ts +3 -3
  43. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  44. package/dist/utilities/configToJSONSchema.js +11 -8
  45. package/dist/utilities/configToJSONSchema.spec.js +2 -2
  46. package/package.json +1 -1
@@ -127,7 +127,8 @@ function fieldReducer(state, action) {
127
127
  }
128
128
  case 'ADD_ROW':
129
129
  {
130
- const { blockType, path, rowIndex, subFieldState } = action;
130
+ const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState } = action;
131
+ const rowIndex = typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0;
131
132
  const rowsMetadata = [
132
133
  ...state[path]?.rows || []
133
134
  ];
@@ -145,17 +146,20 @@ function fieldReducer(state, action) {
145
146
  value: blockType
146
147
  };
147
148
  }
148
- const { remainingFields, rows } = (0, _rows.separateRows)(path, state);
149
- // actual form state (value saved in db)
150
- rows.splice(rowIndex, 0, subFieldState);
149
+ // add new row to array _field state_
150
+ const { remainingFields, rows: siblingRows } = (0, _rows.separateRows)(path, state);
151
+ siblingRows.splice(rowIndex, 0, subFieldState);
152
+ // add new row to array _value_
153
+ const currentValue = Array.isArray(state[path]?.value) ? state[path]?.value : [];
154
+ const newValue = currentValue.splice(rowIndex, 0, (0, _reduceFieldsToValues.default)(subFieldState, true));
151
155
  const newState = {
152
156
  ...remainingFields,
153
- ...(0, _rows.flattenRows)(path, rows),
157
+ ...(0, _rows.flattenRows)(path, siblingRows),
154
158
  [path]: {
155
159
  ...state[path],
156
160
  disableFormData: true,
157
161
  rows: rowsMetadata,
158
- value: rows
162
+ value: newValue
159
163
  }
160
164
  };
161
165
  return newState;
@@ -163,8 +167,8 @@ function fieldReducer(state, action) {
163
167
  case 'REPLACE_ROW':
164
168
  {
165
169
  const { blockType, path, rowIndex: rowIndexArg, subFieldState } = action;
166
- const { remainingFields, rows } = (0, _rows.separateRows)(path, state);
167
- const rowIndex = Math.max(0, Math.min(rowIndexArg, rows?.length - 1 || 0));
170
+ const { remainingFields, rows: siblingRows } = (0, _rows.separateRows)(path, state);
171
+ const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0));
168
172
  const rowsMetadata = [
169
173
  ...state[path]?.rows || []
170
174
  ];
@@ -181,16 +185,19 @@ function fieldReducer(state, action) {
181
185
  value: blockType
182
186
  };
183
187
  }
184
- // replace form field state
185
- rows[rowIndex] = subFieldState;
188
+ // replace form _field state_
189
+ siblingRows[rowIndex] = subFieldState;
190
+ // replace array _value_
191
+ const newValue = Array.isArray(state[path]?.value) ? state[path]?.value : [];
192
+ newValue[rowIndex] = (0, _reduceFieldsToValues.default)(subFieldState, true);
186
193
  const newState = {
187
194
  ...remainingFields,
188
- ...(0, _rows.flattenRows)(path, rows),
195
+ ...(0, _rows.flattenRows)(path, siblingRows),
189
196
  [path]: {
190
197
  ...state[path],
191
198
  disableFormData: true,
192
199
  rows: rowsMetadata,
193
- value: rows
200
+ value: newValue
194
201
  }
195
202
  };
196
203
  return newState;
@@ -311,4 +318,4 @@ function fieldReducer(state, action) {
311
318
  }
312
319
  }
313
320
 
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vZmllbGRSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IGVxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5cbmltcG9ydCB0eXBlIHsgRmllbGRBY3Rpb24sIEZpZWxkcywgRm9ybUZpZWxkIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZGVlcENvcHlPYmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvZGVlcENvcHlPYmplY3QnXG5pbXBvcnQgZ2V0U2libGluZ0RhdGEgZnJvbSAnLi9nZXRTaWJsaW5nRGF0YSdcbmltcG9ydCByZWR1Y2VGaWVsZHNUb1ZhbHVlcyBmcm9tICcuL3JlZHVjZUZpZWxkc1RvVmFsdWVzJ1xuaW1wb3J0IHsgZmxhdHRlblJvd3MsIHNlcGFyYXRlUm93cyB9IGZyb20gJy4vcm93cydcblxuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkUmVkdWNlcihzdGF0ZTogRmllbGRzLCBhY3Rpb246IEZpZWxkQWN0aW9uKTogRmllbGRzIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ1JFUExBQ0VfU1RBVEUnOiB7XG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHt9XG5cbiAgICAgIC8vIE9ubHkgdXBkYXRlIGZpZWxkcyB0aGF0IGhhdmUgY2hhbmdlZFxuICAgICAgLy8gYnkgY29tcGFyaW5nIG9sZCB2YWx1ZSAvIGluaXRpYWxWYWx1ZSB0byBuZXdcbiAgICAgIC8vIC4uXG4gICAgICAvLyBUaGlzIGlzIGEgcGVyZm9ybWFuY2UgZW5oYW5jZW1lbnQgZm9yIHNhdmluZ1xuICAgICAgLy8gbGFyZ2UgZG9jdW1lbnRzIHdpdGggaHVuZHJlZHMgb2YgZmllbGRzXG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKGFjdGlvbi5zdGF0ZSkuZm9yRWFjaCgoW3BhdGgsIGZpZWxkXSkgPT4ge1xuICAgICAgICBjb25zdCBvbGRGaWVsZCA9IHN0YXRlW3BhdGhdXG4gICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gZmllbGRcblxuICAgICAgICBpZiAoIWVxdWFsKG9sZEZpZWxkLCBuZXdGaWVsZCkpIHtcbiAgICAgICAgICBuZXdTdGF0ZVtwYXRoXSA9IG5ld0ZpZWxkXG4gICAgICAgIH0gZWxzZSBpZiAob2xkRmllbGQpIHtcbiAgICAgICAgICBuZXdTdGF0ZVtwYXRoXSA9IG9sZEZpZWxkXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ1JFTU9WRSc6IHtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9XG4gICAgICBpZiAobmV3U3RhdGVbYWN0aW9uLnBhdGhdKSBkZWxldGUgbmV3U3RhdGVbYWN0aW9uLnBhdGhdXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdNT0RJRllfQ09ORElUSU9OJzoge1xuICAgICAgY29uc3QgeyBwYXRoLCByZXN1bHQsIHVzZXIgfSA9IGFjdGlvblxuXG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc3RhdGUpLnJlZHVjZSgobmV3U3RhdGUsIFtmaWVsZFBhdGgsIGZpZWxkXSkgPT4ge1xuICAgICAgICBpZiAoZmllbGRQYXRoID09PSBwYXRoIHx8IGZpZWxkUGF0aC5pbmRleE9mKGAke3BhdGh9LmApID09PSAwKSB7XG4gICAgICAgICAgbGV0IHBhc3Nlc0NvbmRpdGlvbiA9IHJlc3VsdFxuXG4gICAgICAgICAgLy8gSWYgYSBjb25kaXRpb24gaXMgYmVpbmcgc2V0IHRvIHRydWUsXG4gICAgICAgICAgLy8gU2V0IGFsbCBjb25kaXRpb25zIHRvIHRydWVcbiAgICAgICAgICAvLyBCZXNpZGVzIHRob3NlIHdobyBzdGlsbCBmYWlsIHRoZWlyIG93biBjb25kaXRpb25zXG5cbiAgICAgICAgICBpZiAocGFzc2VzQ29uZGl0aW9uICYmIGZpZWxkLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgcGFzc2VzQ29uZGl0aW9uID0gZmllbGQuY29uZGl0aW9uKFxuICAgICAgICAgICAgICByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhzdGF0ZSwgdHJ1ZSksXG4gICAgICAgICAgICAgIGdldFNpYmxpbmdEYXRhKHN0YXRlLCBwYXRoKSxcbiAgICAgICAgICAgICAgeyB1c2VyIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgW2ZpZWxkUGF0aF06IHtcbiAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgIHBhc3Nlc0NvbmRpdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5uZXdTdGF0ZSxcbiAgICAgICAgICBbZmllbGRQYXRoXToge1xuICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfSwge30pXG4gICAgfVxuXG4gICAgY2FzZSAnVVBEQVRFJzoge1xuICAgICAgY29uc3QgbmV3RmllbGQgPSBPYmplY3QuZW50cmllcyhhY3Rpb24pLnJlZHVjZShcbiAgICAgICAgKGZpZWxkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICdjb25kaXRpb24nLFxuICAgICAgICAgICAgICAnZGlzYWJsZUZvcm1EYXRhJyxcbiAgICAgICAgICAgICAgJ2Vycm9yTWVzc2FnZScsXG4gICAgICAgICAgICAgICdpbml0aWFsVmFsdWUnLFxuICAgICAgICAgICAgICAncGFzc2VzQ29uZGl0aW9uJyxcbiAgICAgICAgICAgICAgJ3Jvd3MnLFxuICAgICAgICAgICAgICAndmFsaWQnLFxuICAgICAgICAgICAgICAndmFsaWRhdGUnLFxuICAgICAgICAgICAgICAndmFsdWUnLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyhrZXkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICAgICAgW2tleV06IHZhbHVlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWVsZFxuICAgICAgICB9LFxuICAgICAgICBzdGF0ZVthY3Rpb24ucGF0aF0gfHwgKHt9IGFzIEZvcm1GaWVsZCksXG4gICAgICApXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBbYWN0aW9uLnBhdGhdOiBuZXdGaWVsZCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlICdSRU1PVkVfUk9XJzoge1xuICAgICAgY29uc3QgeyBwYXRoLCByb3dJbmRleCB9ID0gYWN0aW9uXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93cyB9ID0gc2VwYXJhdGVSb3dzKHBhdGgsIHN0YXRlKVxuICAgICAgY29uc3Qgcm93c01ldGFkYXRhID0gWy4uLihzdGF0ZVtwYXRoXT8ucm93cyB8fCBbXSldXG5cbiAgICAgIHJvd3Muc3BsaWNlKHJvd0luZGV4LCAxKVxuICAgICAgcm93c01ldGFkYXRhLnNwbGljZShyb3dJbmRleCwgMSlcblxuICAgICAgY29uc3QgbmV3U3RhdGU6IEZpZWxkcyA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAuLi5zdGF0ZVtwYXRoXSxcbiAgICAgICAgICBkaXNhYmxlRm9ybURhdGE6IHJvd3MubGVuZ3RoID4gMCxcbiAgICAgICAgICByb3dzOiByb3dzTWV0YWRhdGEsXG4gICAgICAgICAgdmFsdWU6IHJvd3MsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmZsYXR0ZW5Sb3dzKHBhdGgsIHJvd3MpLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdBRERfUk9XJzoge1xuICAgICAgY29uc3QgeyBibG9ja1R5cGUsIHBhdGgsIHJvd0luZGV4LCBzdWJGaWVsZFN0YXRlIH0gPSBhY3Rpb25cblxuICAgICAgY29uc3Qgcm93c01ldGFkYXRhID0gWy4uLihzdGF0ZVtwYXRoXT8ucm93cyB8fCBbXSldXG4gICAgICByb3dzTWV0YWRhdGEuc3BsaWNlKFxuICAgICAgICByb3dJbmRleCxcbiAgICAgICAgMCxcbiAgICAgICAgLy8gbmV3IHJvd1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6IG5ldyBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKCksXG4gICAgICAgICAgYmxvY2tUeXBlOiBibG9ja1R5cGUgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICAgIGNvbGxhcHNlZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIGlmIChibG9ja1R5cGUpIHtcbiAgICAgICAgc3ViRmllbGRTdGF0ZS5ibG9ja1R5cGUgPSB7XG4gICAgICAgICAgaW5pdGlhbFZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgICAgdmFsaWQ6IHRydWUsXG4gICAgICAgICAgdmFsdWU6IGJsb2NrVHlwZSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93cyB9ID0gc2VwYXJhdGVSb3dzKHBhdGgsIHN0YXRlKVxuXG4gICAgICAvLyBhY3R1YWwgZm9ybSBzdGF0ZSAodmFsdWUgc2F2ZWQgaW4gZGIpXG4gICAgICByb3dzLnNwbGljZShyb3dJbmRleCwgMCwgc3ViRmllbGRTdGF0ZSlcblxuICAgICAgY29uc3QgbmV3U3RhdGU6IEZpZWxkcyA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICAuLi5mbGF0dGVuUm93cyhwYXRoLCByb3dzKSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgZGlzYWJsZUZvcm1EYXRhOiB0cnVlLFxuICAgICAgICAgIHJvd3M6IHJvd3NNZXRhZGF0YSxcbiAgICAgICAgICB2YWx1ZTogcm93cyxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnUkVQTEFDRV9ST1cnOiB7XG4gICAgICBjb25zdCB7IGJsb2NrVHlwZSwgcGF0aCwgcm93SW5kZXg6IHJvd0luZGV4QXJnLCBzdWJGaWVsZFN0YXRlIH0gPSBhY3Rpb25cbiAgICAgIGNvbnN0IHsgcmVtYWluaW5nRmllbGRzLCByb3dzIH0gPSBzZXBhcmF0ZVJvd3MocGF0aCwgc3RhdGUpXG4gICAgICBjb25zdCByb3dJbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHJvd0luZGV4QXJnLCByb3dzPy5sZW5ndGggLSAxIHx8IDApKVxuXG4gICAgICBjb25zdCByb3dzTWV0YWRhdGEgPSBbLi4uKHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdKV1cbiAgICAgIHJvd3NNZXRhZGF0YVtyb3dJbmRleF0gPSB7XG4gICAgICAgIGlkOiBuZXcgT2JqZWN0SUQoKS50b0hleFN0cmluZygpLFxuICAgICAgICBibG9ja1R5cGU6IGJsb2NrVHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgfVxuXG4gICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgIHN1YkZpZWxkU3RhdGUuYmxvY2tUeXBlID0ge1xuICAgICAgICAgIGluaXRpYWxWYWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gcmVwbGFjZSBmb3JtIGZpZWxkIHN0YXRlXG4gICAgICByb3dzW3Jvd0luZGV4XSA9IHN1YkZpZWxkU3RhdGVcblxuICAgICAgY29uc3QgbmV3U3RhdGU6IEZpZWxkcyA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICAuLi5mbGF0dGVuUm93cyhwYXRoLCByb3dzKSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgZGlzYWJsZUZvcm1EYXRhOiB0cnVlLFxuICAgICAgICAgIHJvd3M6IHJvd3NNZXRhZGF0YSxcbiAgICAgICAgICB2YWx1ZTogcm93cyxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnRFVQTElDQVRFX1JPVyc6IHtcbiAgICAgIGNvbnN0IHsgcGF0aCwgcm93SW5kZXggfSA9IGFjdGlvblxuICAgICAgY29uc3QgeyByZW1haW5pbmdGaWVsZHMsIHJvd3MgfSA9IHNlcGFyYXRlUm93cyhwYXRoLCBzdGF0ZSlcbiAgICAgIGNvbnN0IHJvd3NNZXRhZGF0YSA9IHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdXG5cbiAgICAgIGNvbnN0IGR1cGxpY2F0ZVJvd01ldGFkYXRhID0gZGVlcENvcHlPYmplY3Qocm93c01ldGFkYXRhW3Jvd0luZGV4XSlcbiAgICAgIGlmIChkdXBsaWNhdGVSb3dNZXRhZGF0YS5pZCkgZHVwbGljYXRlUm93TWV0YWRhdGEuaWQgPSBuZXcgT2JqZWN0SUQoKS50b0hleFN0cmluZygpXG5cbiAgICAgIGNvbnN0IGR1cGxpY2F0ZVJvd1N0YXRlID0gZGVlcENvcHlPYmplY3Qocm93c1tyb3dJbmRleF0pXG4gICAgICBpZiAoZHVwbGljYXRlUm93U3RhdGUuaWQpIGR1cGxpY2F0ZVJvd1N0YXRlLmlkID0gbmV3IE9iamVjdElEKCkudG9IZXhTdHJpbmcoKVxuXG4gICAgICAvLyBJZiB0aGVyZSBhcmUgc3ViZmllbGRzXG4gICAgICBpZiAoT2JqZWN0LmtleXMoZHVwbGljYXRlUm93U3RhdGUpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gQWRkIG5ldyBvYmplY3QgY29udGFpbmluZyBzdWJmaWVsZCBuYW1lcyB0byB1bmZsYXR0ZW5lZFJvd3MgYXJyYXlcbiAgICAgICAgcm93cy5zcGxpY2Uocm93SW5kZXggKyAxLCAwLCBkdXBsaWNhdGVSb3dTdGF0ZSlcbiAgICAgICAgcm93c01ldGFkYXRhLnNwbGljZShyb3dJbmRleCArIDEsIDAsIGR1cGxpY2F0ZVJvd01ldGFkYXRhKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAuLi5zdGF0ZVtwYXRoXSxcbiAgICAgICAgICBkaXNhYmxlRm9ybURhdGE6IHRydWUsXG4gICAgICAgICAgcm93czogcm93c01ldGFkYXRhLFxuICAgICAgICAgIHZhbHVlOiByb3dzLFxuICAgICAgICB9LFxuICAgICAgICAuLi5mbGF0dGVuUm93cyhwYXRoLCByb3dzKSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnTU9WRV9ST1cnOiB7XG4gICAgICBjb25zdCB7IG1vdmVGcm9tSW5kZXgsIG1vdmVUb0luZGV4LCBwYXRoIH0gPSBhY3Rpb25cbiAgICAgIGNvbnN0IHsgcmVtYWluaW5nRmllbGRzLCByb3dzIH0gPSBzZXBhcmF0ZVJvd3MocGF0aCwgc3RhdGUpXG5cbiAgICAgIC8vIGNvcHkgdGhlIHJvdyB0byBtb3ZlXG4gICAgICBjb25zdCBjb3B5T2ZNb3ZpbmdSb3cgPSByb3dzW21vdmVGcm9tSW5kZXhdXG4gICAgICAvLyBkZWxldGUgdGhlIHJvdyBieSBpbmRleFxuICAgICAgcm93cy5zcGxpY2UobW92ZUZyb21JbmRleCwgMSlcbiAgICAgIC8vIGluc2VydCByb3cgY29weU9mTW92aW5nUm93IGJhY2sgaW5cbiAgICAgIHJvd3Muc3BsaWNlKG1vdmVUb0luZGV4LCAwLCBjb3B5T2ZNb3ZpbmdSb3cpXG5cbiAgICAgIC8vIG1vZGlmeSBhcnJheS9ibG9jayBpbnRlcm5hbCByb3cgc3RhdGUgKGkuZS4gY29sbGFwc2VkLCBibG9ja1R5cGUpXG4gICAgICBjb25zdCByb3dTdGF0ZUNvcHkgPSBbLi4uKHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdKV1cbiAgICAgIGNvbnN0IG1vdmluZ1Jvd1N0YXRlID0geyAuLi5yb3dTdGF0ZUNvcHlbbW92ZUZyb21JbmRleF0gfVxuICAgICAgcm93U3RhdGVDb3B5LnNwbGljZShtb3ZlRnJvbUluZGV4LCAxKVxuICAgICAgcm93U3RhdGVDb3B5LnNwbGljZShtb3ZlVG9JbmRleCwgMCwgbW92aW5nUm93U3RhdGUpXG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAuLi5yZW1haW5pbmdGaWVsZHMsXG4gICAgICAgIC4uLmZsYXR0ZW5Sb3dzKHBhdGgsIHJvd3MpLFxuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAuLi5zdGF0ZVtwYXRoXSxcbiAgICAgICAgICByb3dzOiByb3dTdGF0ZUNvcHksXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ1NFVF9ST1dfQ09MTEFQU0VEJzoge1xuICAgICAgY29uc3QgeyBjb2xsYXBzZWQsIHBhdGgsIHJvd0lELCBzZXREb2NGaWVsZFByZWZlcmVuY2VzIH0gPSBhY3Rpb25cblxuICAgICAgY29uc3QgYXJyYXlTdGF0ZSA9IHN0YXRlW3BhdGhdXG5cbiAgICAgIGNvbnN0IHsgY29sbGFwc2VkUm93SURzLCBtYXRjaGVkSW5kZXggfSA9IHN0YXRlW3BhdGhdLnJvd3MucmVkdWNlKFxuICAgICAgICAoYWNjLCByb3csIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNNYXRjaGluZ1JvdyA9IHJvdy5pZCA9PT0gcm93SURcbiAgICAgICAgICBpZiAoaXNNYXRjaGluZ1JvdykgYWNjLm1hdGNoZWRJbmRleCA9IGluZGV4XG5cbiAgICAgICAgICBpZiAoIWlzTWF0Y2hpbmdSb3cgJiYgcm93LmNvbGxhcHNlZCkgYWNjLmNvbGxhcHNlZFJvd0lEcy5wdXNoKHJvdy5pZClcbiAgICAgICAgICBlbHNlIGlmIChpc01hdGNoaW5nUm93ICYmIGNvbGxhcHNlZCkgYWNjLmNvbGxhcHNlZFJvd0lEcy5wdXNoKHJvdy5pZClcblxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbGxhcHNlZFJvd0lEczogW10sXG4gICAgICAgICAgbWF0Y2hlZEluZGV4OiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIGlmIChtYXRjaGVkSW5kZXggPiAtMSkge1xuICAgICAgICBhcnJheVN0YXRlLnJvd3NbbWF0Y2hlZEluZGV4XS5jb2xsYXBzZWQgPSBjb2xsYXBzZWRcbiAgICAgICAgc2V0RG9jRmllbGRQcmVmZXJlbmNlcyhwYXRoLCB7IGNvbGxhcHNlZDogY29sbGFwc2VkUm93SURzIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uYXJyYXlTdGF0ZSxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ld1N0YXRlXG4gICAgfVxuXG4gICAgY2FzZSAnU0VUX0FMTF9ST1dTX0NPTExBUFNFRCc6IHtcbiAgICAgIGNvbnN0IHsgY29sbGFwc2VkLCBwYXRoLCBzZXREb2NGaWVsZFByZWZlcmVuY2VzIH0gPSBhY3Rpb25cblxuICAgICAgY29uc3QgeyBjb2xsYXBzZWRSb3dJRHMsIHJvd3MgfSA9IHN0YXRlW3BhdGhdLnJvd3MucmVkdWNlKFxuICAgICAgICAoYWNjLCByb3cpID0+IHtcbiAgICAgICAgICBpZiAoY29sbGFwc2VkKSBhY2MuY29sbGFwc2VkUm93SURzLnB1c2gocm93LmlkKVxuXG4gICAgICAgICAgYWNjLnJvd3MucHVzaCh7XG4gICAgICAgICAgICAuLi5yb3csXG4gICAgICAgICAgICBjb2xsYXBzZWQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbGxhcHNlZFJvd0lEczogW10sXG4gICAgICAgICAgcm93czogW10sXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMocGF0aCwgeyBjb2xsYXBzZWQ6IGNvbGxhcHNlZFJvd0lEcyB9KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgcm93cyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBkZWZhdWx0OiB7XG4gICAgICByZXR1cm4gc3RhdGVcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaWVsZFJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJuZXdTdGF0ZSIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwicGF0aCIsImZpZWxkIiwib2xkRmllbGQiLCJuZXdGaWVsZCIsImVxdWFsIiwicmVzdWx0IiwidXNlciIsInJlZHVjZSIsImZpZWxkUGF0aCIsImluZGV4T2YiLCJwYXNzZXNDb25kaXRpb24iLCJjb25kaXRpb24iLCJyZWR1Y2VGaWVsZHNUb1ZhbHVlcyIsImdldFNpYmxpbmdEYXRhIiwia2V5IiwidmFsdWUiLCJpbmNsdWRlcyIsInJvd0luZGV4IiwicmVtYWluaW5nRmllbGRzIiwicm93cyIsInNlcGFyYXRlUm93cyIsInJvd3NNZXRhZGF0YSIsInNwbGljZSIsImRpc2FibGVGb3JtRGF0YSIsImxlbmd0aCIsImZsYXR0ZW5Sb3dzIiwiYmxvY2tUeXBlIiwic3ViRmllbGRTdGF0ZSIsImlkIiwiT2JqZWN0SUQiLCJ0b0hleFN0cmluZyIsInVuZGVmaW5lZCIsImNoaWxkRXJyb3JQYXRocyIsIlNldCIsImNvbGxhcHNlZCIsImluaXRpYWxWYWx1ZSIsInZhbGlkIiwicm93SW5kZXhBcmciLCJNYXRoIiwibWF4IiwibWluIiwiZHVwbGljYXRlUm93TWV0YWRhdGEiLCJkZWVwQ29weU9iamVjdCIsImR1cGxpY2F0ZVJvd1N0YXRlIiwia2V5cyIsIm1vdmVGcm9tSW5kZXgiLCJtb3ZlVG9JbmRleCIsImNvcHlPZk1vdmluZ1JvdyIsInJvd1N0YXRlQ29weSIsIm1vdmluZ1Jvd1N0YXRlIiwicm93SUQiLCJzZXREb2NGaWVsZFByZWZlcmVuY2VzIiwiYXJyYXlTdGF0ZSIsImNvbGxhcHNlZFJvd0lEcyIsIm1hdGNoZWRJbmRleCIsImFjYyIsInJvdyIsImluZGV4IiwiaXNNYXRjaGluZ1JvdyIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7K0JBVWdCQTs7O2VBQUFBOzs7cUVBVks7a0VBQ0g7Z0NBSWE7dUVBQ0o7NkVBQ007c0JBQ1M7Ozs7OztBQUVuQyxTQUFTQSxhQUFhQyxLQUFhLEVBQUVDLE1BQW1CO0lBQzdELE9BQVFBLE9BQU9DLElBQUk7UUFDakIsS0FBSztZQUFpQjtnQkFDcEIsTUFBTUMsV0FBVyxDQUFDO2dCQUVsQix1Q0FBdUM7Z0JBQ3ZDLCtDQUErQztnQkFDL0MsS0FBSztnQkFDTCwrQ0FBK0M7Z0JBQy9DLDBDQUEwQztnQkFFMUNDLE9BQU9DLE9BQU8sQ0FBQ0osT0FBT0QsS0FBSyxFQUFFTSxPQUFPLENBQUMsQ0FBQyxDQUFDQyxNQUFNQyxNQUFNO29CQUNqRCxNQUFNQyxXQUFXVCxLQUFLLENBQUNPLEtBQUs7b0JBQzVCLE1BQU1HLFdBQVdGO29CQUVqQixJQUFJLENBQUNHLElBQUFBLGtCQUFLLEVBQUNGLFVBQVVDLFdBQVc7d0JBQzlCUCxRQUFRLENBQUNJLEtBQUssR0FBR0c7b0JBQ25CLE9BQU8sSUFBSUQsVUFBVTt3QkFDbkJOLFFBQVEsQ0FBQ0ksS0FBSyxHQUFH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
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vZmllbGRSZWR1Y2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuaW1wb3J0IGVxdWFsIGZyb20gJ2RlZXAtZXF1YWwnXG5cbmltcG9ydCB0eXBlIHsgRmllbGRBY3Rpb24sIEZpZWxkcywgRm9ybUZpZWxkIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgZGVlcENvcHlPYmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvZGVlcENvcHlPYmplY3QnXG5pbXBvcnQgZ2V0U2libGluZ0RhdGEgZnJvbSAnLi9nZXRTaWJsaW5nRGF0YSdcbmltcG9ydCByZWR1Y2VGaWVsZHNUb1ZhbHVlcyBmcm9tICcuL3JlZHVjZUZpZWxkc1RvVmFsdWVzJ1xuaW1wb3J0IHsgZmxhdHRlblJvd3MsIHNlcGFyYXRlUm93cyB9IGZyb20gJy4vcm93cydcblxuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkUmVkdWNlcihzdGF0ZTogRmllbGRzLCBhY3Rpb246IEZpZWxkQWN0aW9uKTogRmllbGRzIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgJ1JFUExBQ0VfU1RBVEUnOiB7XG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHt9XG5cbiAgICAgIC8vIE9ubHkgdXBkYXRlIGZpZWxkcyB0aGF0IGhhdmUgY2hhbmdlZFxuICAgICAgLy8gYnkgY29tcGFyaW5nIG9sZCB2YWx1ZSAvIGluaXRpYWxWYWx1ZSB0byBuZXdcbiAgICAgIC8vIC4uXG4gICAgICAvLyBUaGlzIGlzIGEgcGVyZm9ybWFuY2UgZW5oYW5jZW1lbnQgZm9yIHNhdmluZ1xuICAgICAgLy8gbGFyZ2UgZG9jdW1lbnRzIHdpdGggaHVuZHJlZHMgb2YgZmllbGRzXG5cbiAgICAgIE9iamVjdC5lbnRyaWVzKGFjdGlvbi5zdGF0ZSkuZm9yRWFjaCgoW3BhdGgsIGZpZWxkXSkgPT4ge1xuICAgICAgICBjb25zdCBvbGRGaWVsZCA9IHN0YXRlW3BhdGhdXG4gICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gZmllbGRcblxuICAgICAgICBpZiAoIWVxdWFsKG9sZEZpZWxkLCBuZXdGaWVsZCkpIHtcbiAgICAgICAgICBuZXdTdGF0ZVtwYXRoXSA9IG5ld0ZpZWxkXG4gICAgICAgIH0gZWxzZSBpZiAob2xkRmllbGQpIHtcbiAgICAgICAgICBuZXdTdGF0ZVtwYXRoXSA9IG9sZEZpZWxkXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ1JFTU9WRSc6IHtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0geyAuLi5zdGF0ZSB9XG4gICAgICBpZiAobmV3U3RhdGVbYWN0aW9uLnBhdGhdKSBkZWxldGUgbmV3U3RhdGVbYWN0aW9uLnBhdGhdXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdNT0RJRllfQ09ORElUSU9OJzoge1xuICAgICAgY29uc3QgeyBwYXRoLCByZXN1bHQsIHVzZXIgfSA9IGFjdGlvblxuXG4gICAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoc3RhdGUpLnJlZHVjZSgobmV3U3RhdGUsIFtmaWVsZFBhdGgsIGZpZWxkXSkgPT4ge1xuICAgICAgICBpZiAoZmllbGRQYXRoID09PSBwYXRoIHx8IGZpZWxkUGF0aC5pbmRleE9mKGAke3BhdGh9LmApID09PSAwKSB7XG4gICAgICAgICAgbGV0IHBhc3Nlc0NvbmRpdGlvbiA9IHJlc3VsdFxuXG4gICAgICAgICAgLy8gSWYgYSBjb25kaXRpb24gaXMgYmVpbmcgc2V0IHRvIHRydWUsXG4gICAgICAgICAgLy8gU2V0IGFsbCBjb25kaXRpb25zIHRvIHRydWVcbiAgICAgICAgICAvLyBCZXNpZGVzIHRob3NlIHdobyBzdGlsbCBmYWlsIHRoZWlyIG93biBjb25kaXRpb25zXG5cbiAgICAgICAgICBpZiAocGFzc2VzQ29uZGl0aW9uICYmIGZpZWxkLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgcGFzc2VzQ29uZGl0aW9uID0gZmllbGQuY29uZGl0aW9uKFxuICAgICAgICAgICAgICByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhzdGF0ZSwgdHJ1ZSksXG4gICAgICAgICAgICAgIGdldFNpYmxpbmdEYXRhKHN0YXRlLCBwYXRoKSxcbiAgICAgICAgICAgICAgeyB1c2VyIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLm5ld1N0YXRlLFxuICAgICAgICAgICAgW2ZpZWxkUGF0aF06IHtcbiAgICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgICAgIHBhc3Nlc0NvbmRpdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5uZXdTdGF0ZSxcbiAgICAgICAgICBbZmllbGRQYXRoXToge1xuICAgICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgfSwge30pXG4gICAgfVxuXG4gICAgY2FzZSAnVVBEQVRFJzoge1xuICAgICAgY29uc3QgbmV3RmllbGQgPSBPYmplY3QuZW50cmllcyhhY3Rpb24pLnJlZHVjZShcbiAgICAgICAgKGZpZWxkLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBbXG4gICAgICAgICAgICAgICdjb25kaXRpb24nLFxuICAgICAgICAgICAgICAnZGlzYWJsZUZvcm1EYXRhJyxcbiAgICAgICAgICAgICAgJ2Vycm9yTWVzc2FnZScsXG4gICAgICAgICAgICAgICdpbml0aWFsVmFsdWUnLFxuICAgICAgICAgICAgICAncGFzc2VzQ29uZGl0aW9uJyxcbiAgICAgICAgICAgICAgJ3Jvd3MnLFxuICAgICAgICAgICAgICAndmFsaWQnLFxuICAgICAgICAgICAgICAndmFsaWRhdGUnLFxuICAgICAgICAgICAgICAndmFsdWUnLFxuICAgICAgICAgICAgXS5pbmNsdWRlcyhrZXkpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICAgICAgW2tleV06IHZhbHVlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWVsZFxuICAgICAgICB9LFxuICAgICAgICBzdGF0ZVthY3Rpb24ucGF0aF0gfHwgKHt9IGFzIEZvcm1GaWVsZCksXG4gICAgICApXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBbYWN0aW9uLnBhdGhdOiBuZXdGaWVsZCxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlICdSRU1PVkVfUk9XJzoge1xuICAgICAgY29uc3QgeyBwYXRoLCByb3dJbmRleCB9ID0gYWN0aW9uXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93cyB9ID0gc2VwYXJhdGVSb3dzKHBhdGgsIHN0YXRlKVxuICAgICAgY29uc3Qgcm93c01ldGFkYXRhID0gWy4uLihzdGF0ZVtwYXRoXT8ucm93cyB8fCBbXSldXG5cbiAgICAgIHJvd3Muc3BsaWNlKHJvd0luZGV4LCAxKVxuICAgICAgcm93c01ldGFkYXRhLnNwbGljZShyb3dJbmRleCwgMSlcblxuICAgICAgY29uc3QgbmV3U3RhdGU6IEZpZWxkcyA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICAuLi5zdGF0ZVtwYXRoXSxcbiAgICAgICAgICBkaXNhYmxlRm9ybURhdGE6IHJvd3MubGVuZ3RoID4gMCxcbiAgICAgICAgICByb3dzOiByb3dzTWV0YWRhdGEsXG4gICAgICAgICAgdmFsdWU6IHJvd3MsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLmZsYXR0ZW5Sb3dzKHBhdGgsIHJvd3MpLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdBRERfUk9XJzoge1xuICAgICAgY29uc3QgeyBibG9ja1R5cGUsIHBhdGgsIHJvd0luZGV4OiByb3dJbmRleEZyb21BcmdzLCBzdWJGaWVsZFN0YXRlIH0gPSBhY3Rpb25cbiAgICAgIGNvbnN0IHJvd0luZGV4ID1cbiAgICAgICAgdHlwZW9mIHJvd0luZGV4RnJvbUFyZ3MgPT09ICdudW1iZXInID8gcm93SW5kZXhGcm9tQXJncyA6IHN0YXRlW3BhdGhdPy5yb3dzPy5sZW5ndGggfHwgMFxuXG4gICAgICBjb25zdCByb3dzTWV0YWRhdGEgPSBbLi4uKHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdKV1cbiAgICAgIHJvd3NNZXRhZGF0YS5zcGxpY2UoXG4gICAgICAgIHJvd0luZGV4LFxuICAgICAgICAwLFxuICAgICAgICAvLyBuZXcgcm93XG4gICAgICAgIHtcbiAgICAgICAgICBpZDogbmV3IE9iamVjdElEKCkudG9IZXhTdHJpbmcoKSxcbiAgICAgICAgICBibG9ja1R5cGU6IGJsb2NrVHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgY2hpbGRFcnJvclBhdGhzOiBuZXcgU2V0KCksXG4gICAgICAgICAgY29sbGFwc2VkOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIClcblxuICAgICAgaWYgKGJsb2NrVHlwZSkge1xuICAgICAgICBzdWJGaWVsZFN0YXRlLmJsb2NrVHlwZSA9IHtcbiAgICAgICAgICBpbml0aWFsVmFsdWU6IGJsb2NrVHlwZSxcbiAgICAgICAgICB2YWxpZDogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGFkZCBuZXcgcm93IHRvIGFycmF5IF9maWVsZCBzdGF0ZV9cbiAgICAgIGNvbnN0IHsgcmVtYWluaW5nRmllbGRzLCByb3dzOiBzaWJsaW5nUm93cyB9ID0gc2VwYXJhdGVSb3dzKHBhdGgsIHN0YXRlKVxuICAgICAgc2libGluZ1Jvd3Muc3BsaWNlKHJvd0luZGV4LCAwLCBzdWJGaWVsZFN0YXRlKVxuXG4gICAgICAvLyBhZGQgbmV3IHJvdyB0byBhcnJheSBfdmFsdWVfXG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSAoQXJyYXkuaXNBcnJheShzdGF0ZVtwYXRoXT8udmFsdWUpID8gc3RhdGVbcGF0aF0/LnZhbHVlIDogW10pIGFzIEZpZWxkc1tdXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IGN1cnJlbnRWYWx1ZS5zcGxpY2Uocm93SW5kZXgsIDAsIHJlZHVjZUZpZWxkc1RvVmFsdWVzKHN1YkZpZWxkU3RhdGUsIHRydWUpKVxuXG4gICAgICBjb25zdCBuZXdTdGF0ZTogRmllbGRzID0ge1xuICAgICAgICAuLi5yZW1haW5pbmdGaWVsZHMsXG4gICAgICAgIC4uLmZsYXR0ZW5Sb3dzKHBhdGgsIHNpYmxpbmdSb3dzKSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgZGlzYWJsZUZvcm1EYXRhOiB0cnVlLFxuICAgICAgICAgIHJvd3M6IHJvd3NNZXRhZGF0YSxcbiAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ1JFUExBQ0VfUk9XJzoge1xuICAgICAgY29uc3QgeyBibG9ja1R5cGUsIHBhdGgsIHJvd0luZGV4OiByb3dJbmRleEFyZywgc3ViRmllbGRTdGF0ZSB9ID0gYWN0aW9uXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93czogc2libGluZ1Jvd3MgfSA9IHNlcGFyYXRlUm93cyhwYXRoLCBzdGF0ZSlcbiAgICAgIGNvbnN0IHJvd0luZGV4ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4ocm93SW5kZXhBcmcsIHNpYmxpbmdSb3dzPy5sZW5ndGggLSAxIHx8IDApKVxuXG4gICAgICBjb25zdCByb3dzTWV0YWRhdGEgPSBbLi4uKHN0YXRlW3BhdGhdPy5yb3dzIHx8IFtdKV1cbiAgICAgIHJvd3NNZXRhZGF0YVtyb3dJbmRleF0gPSB7XG4gICAgICAgIGlkOiBuZXcgT2JqZWN0SUQoKS50b0hleFN0cmluZygpLFxuICAgICAgICBibG9ja1R5cGU6IGJsb2NrVHlwZSB8fCB1bmRlZmluZWQsXG4gICAgICAgIGNoaWxkRXJyb3JQYXRoczogbmV3IFNldCgpLFxuICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlLFxuICAgICAgfVxuXG4gICAgICBpZiAoYmxvY2tUeXBlKSB7XG4gICAgICAgIHN1YkZpZWxkU3RhdGUuYmxvY2tUeXBlID0ge1xuICAgICAgICAgIGluaXRpYWxWYWx1ZTogYmxvY2tUeXBlLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICAgIHZhbHVlOiBibG9ja1R5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gcmVwbGFjZSBmb3JtIF9maWVsZCBzdGF0ZV9cbiAgICAgIHNpYmxpbmdSb3dzW3Jvd0luZGV4XSA9IHN1YkZpZWxkU3RhdGVcblxuICAgICAgLy8gcmVwbGFjZSBhcnJheSBfdmFsdWVfXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkoc3RhdGVbcGF0aF0/LnZhbHVlKSA/IHN0YXRlW3BhdGhdPy52YWx1ZSA6IFtdXG4gICAgICBuZXdWYWx1ZVtyb3dJbmRleF0gPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhzdWJGaWVsZFN0YXRlLCB0cnVlKVxuXG4gICAgICBjb25zdCBuZXdTdGF0ZTogRmllbGRzID0ge1xuICAgICAgICAuLi5yZW1haW5pbmdGaWVsZHMsXG4gICAgICAgIC4uLmZsYXR0ZW5Sb3dzKHBhdGgsIHNpYmxpbmdSb3dzKSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgZGlzYWJsZUZvcm1EYXRhOiB0cnVlLFxuICAgICAgICAgIHJvd3M6IHJvd3NNZXRhZGF0YSxcbiAgICAgICAgICB2YWx1ZTogbmV3VmFsdWUsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ0RVUExJQ0FURV9ST1cnOiB7XG4gICAgICBjb25zdCB7IHBhdGgsIHJvd0luZGV4IH0gPSBhY3Rpb25cbiAgICAgIGNvbnN0IHsgcmVtYWluaW5nRmllbGRzLCByb3dzIH0gPSBzZXBhcmF0ZVJvd3MocGF0aCwgc3RhdGUpXG4gICAgICBjb25zdCByb3dzTWV0YWRhdGEgPSBzdGF0ZVtwYXRoXT8ucm93cyB8fCBbXVxuXG4gICAgICBjb25zdCBkdXBsaWNhdGVSb3dNZXRhZGF0YSA9IGRlZXBDb3B5T2JqZWN0KHJvd3NNZXRhZGF0YVtyb3dJbmRleF0pXG4gICAgICBpZiAoZHVwbGljYXRlUm93TWV0YWRhdGEuaWQpIGR1cGxpY2F0ZVJvd01ldGFkYXRhLmlkID0gbmV3IE9iamVjdElEKCkudG9IZXhTdHJpbmcoKVxuXG4gICAgICBjb25zdCBkdXBsaWNhdGVSb3dTdGF0ZSA9IGRlZXBDb3B5T2JqZWN0KHJvd3Nbcm93SW5kZXhdKVxuICAgICAgaWYgKGR1cGxpY2F0ZVJvd1N0YXRlLmlkKSBkdXBsaWNhdGVSb3dTdGF0ZS5pZCA9IG5ldyBPYmplY3RJRCgpLnRvSGV4U3RyaW5nKClcblxuICAgICAgLy8gSWYgdGhlcmUgYXJlIHN1YmZpZWxkc1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGR1cGxpY2F0ZVJvd1N0YXRlKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIEFkZCBuZXcgb2JqZWN0IGNvbnRhaW5pbmcgc3ViZmllbGQgbmFtZXMgdG8gdW5mbGF0dGVuZWRSb3dzIGFycmF5XG4gICAgICAgIHJvd3Muc3BsaWNlKHJvd0luZGV4ICsgMSwgMCwgZHVwbGljYXRlUm93U3RhdGUpXG4gICAgICAgIHJvd3NNZXRhZGF0YS5zcGxpY2Uocm93SW5kZXggKyAxLCAwLCBkdXBsaWNhdGVSb3dNZXRhZGF0YSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIC4uLnJlbWFpbmluZ0ZpZWxkcyxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgZGlzYWJsZUZvcm1EYXRhOiB0cnVlLFxuICAgICAgICAgIHJvd3M6IHJvd3NNZXRhZGF0YSxcbiAgICAgICAgICB2YWx1ZTogcm93cyxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uZmxhdHRlblJvd3MocGF0aCwgcm93cyksXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ01PVkVfUk9XJzoge1xuICAgICAgY29uc3QgeyBtb3ZlRnJvbUluZGV4LCBtb3ZlVG9JbmRleCwgcGF0aCB9ID0gYWN0aW9uXG4gICAgICBjb25zdCB7IHJlbWFpbmluZ0ZpZWxkcywgcm93cyB9ID0gc2VwYXJhdGVSb3dzKHBhdGgsIHN0YXRlKVxuXG4gICAgICAvLyBjb3B5IHRoZSByb3cgdG8gbW92ZVxuICAgICAgY29uc3QgY29weU9mTW92aW5nUm93ID0gcm93c1ttb3ZlRnJvbUluZGV4XVxuICAgICAgLy8gZGVsZXRlIHRoZSByb3cgYnkgaW5kZXhcbiAgICAgIHJvd3Muc3BsaWNlKG1vdmVGcm9tSW5kZXgsIDEpXG4gICAgICAvLyBpbnNlcnQgcm93IGNvcHlPZk1vdmluZ1JvdyBiYWNrIGluXG4gICAgICByb3dzLnNwbGljZShtb3ZlVG9JbmRleCwgMCwgY29weU9mTW92aW5nUm93KVxuXG4gICAgICAvLyBtb2RpZnkgYXJyYXkvYmxvY2sgaW50ZXJuYWwgcm93IHN0YXRlIChpLmUuIGNvbGxhcHNlZCwgYmxvY2tUeXBlKVxuICAgICAgY29uc3Qgcm93U3RhdGVDb3B5ID0gWy4uLihzdGF0ZVtwYXRoXT8ucm93cyB8fCBbXSldXG4gICAgICBjb25zdCBtb3ZpbmdSb3dTdGF0ZSA9IHsgLi4ucm93U3RhdGVDb3B5W21vdmVGcm9tSW5kZXhdIH1cbiAgICAgIHJvd1N0YXRlQ29weS5zcGxpY2UobW92ZUZyb21JbmRleCwgMSlcbiAgICAgIHJvd1N0YXRlQ29weS5zcGxpY2UobW92ZVRvSW5kZXgsIDAsIG1vdmluZ1Jvd1N0YXRlKVxuXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgLi4ucmVtYWluaW5nRmllbGRzLFxuICAgICAgICAuLi5mbGF0dGVuUm93cyhwYXRoLCByb3dzKSxcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgLi4uc3RhdGVbcGF0aF0sXG4gICAgICAgICAgcm93czogcm93U3RhdGVDb3B5LFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RhdGVcbiAgICB9XG5cbiAgICBjYXNlICdTRVRfUk9XX0NPTExBUFNFRCc6IHtcbiAgICAgIGNvbnN0IHsgY29sbGFwc2VkLCBwYXRoLCByb3dJRCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlcyB9ID0gYWN0aW9uXG5cbiAgICAgIGNvbnN0IGFycmF5U3RhdGUgPSBzdGF0ZVtwYXRoXVxuXG4gICAgICBjb25zdCB7IGNvbGxhcHNlZFJvd0lEcywgbWF0Y2hlZEluZGV4IH0gPSBzdGF0ZVtwYXRoXS5yb3dzLnJlZHVjZShcbiAgICAgICAgKGFjYywgcm93LCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzTWF0Y2hpbmdSb3cgPSByb3cuaWQgPT09IHJvd0lEXG4gICAgICAgICAgaWYgKGlzTWF0Y2hpbmdSb3cpIGFjYy5tYXRjaGVkSW5kZXggPSBpbmRleFxuXG4gICAgICAgICAgaWYgKCFpc01hdGNoaW5nUm93ICYmIHJvdy5jb2xsYXBzZWQpIGFjYy5jb2xsYXBzZWRSb3dJRHMucHVzaChyb3cuaWQpXG4gICAgICAgICAgZWxzZSBpZiAoaXNNYXRjaGluZ1JvdyAmJiBjb2xsYXBzZWQpIGFjYy5jb2xsYXBzZWRSb3dJRHMucHVzaChyb3cuaWQpXG5cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb2xsYXBzZWRSb3dJRHM6IFtdLFxuICAgICAgICAgIG1hdGNoZWRJbmRleDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICBpZiAobWF0Y2hlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgYXJyYXlTdGF0ZS5yb3dzW21hdGNoZWRJbmRleF0uY29sbGFwc2VkID0gY29sbGFwc2VkXG4gICAgICAgIHNldERvY0ZpZWxkUHJlZmVyZW5jZXMocGF0aCwgeyBjb2xsYXBzZWQ6IGNvbGxhcHNlZFJvd0lEcyB9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFtwYXRoXToge1xuICAgICAgICAgIC4uLmFycmF5U3RhdGUsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdGF0ZVxuICAgIH1cblxuICAgIGNhc2UgJ1NFVF9BTExfUk9XU19DT0xMQVBTRUQnOiB7XG4gICAgICBjb25zdCB7IGNvbGxhcHNlZCwgcGF0aCwgc2V0RG9jRmllbGRQcmVmZXJlbmNlcyB9ID0gYWN0aW9uXG5cbiAgICAgIGNvbnN0IHsgY29sbGFwc2VkUm93SURzLCByb3dzIH0gPSBzdGF0ZVtwYXRoXS5yb3dzLnJlZHVjZShcbiAgICAgICAgKGFjYywgcm93KSA9PiB7XG4gICAgICAgICAgaWYgKGNvbGxhcHNlZCkgYWNjLmNvbGxhcHNlZFJvd0lEcy5wdXNoKHJvdy5pZClcblxuICAgICAgICAgIGFjYy5yb3dzLnB1c2goe1xuICAgICAgICAgICAgLi4ucm93LFxuICAgICAgICAgICAgY29sbGFwc2VkLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjb2xsYXBzZWRSb3dJRHM6IFtdLFxuICAgICAgICAgIHJvd3M6IFtdLFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICBzZXREb2NGaWVsZFByZWZlcmVuY2VzKHBhdGgsIHsgY29sbGFwc2VkOiBjb2xsYXBzZWRSb3dJRHMgfSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIFtwYXRoXToge1xuICAgICAgICAgIC4uLnN0YXRlW3BhdGhdLFxuICAgICAgICAgIHJvd3MsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgcmV0dXJuIHN0YXRlXG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiZmllbGRSZWR1Y2VyIiwic3RhdGUiLCJhY3Rpb24iLCJ0eXBlIiwibmV3U3RhdGUiLCJPYmplY3QiLCJlbnRyaWVzIiwiZm9yRWFjaCIsInBhdGgiLCJmaWVsZCIsIm9sZEZpZWxkIiwibmV3RmllbGQiLCJlcXVhbCIsInJlc3VsdCIsInVzZXIiLCJyZWR1Y2UiLCJmaWVsZFBhdGgiLCJpbmRleE9mIiwicGFzc2VzQ29uZGl0aW9uIiwiY29uZGl0aW9uIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJnZXRTaWJsaW5nRGF0YSIsImtleSIsInZhbHVlIiwiaW5jbHVkZXMiLCJyb3dJbmRleCIsInJlbWFpbmluZ0ZpZWxkcyIsInJvd3MiLCJzZXBhcmF0ZVJvd3MiLCJyb3dzTWV0YWRhdGEiLCJzcGxpY2UiLCJkaXNhYmxlRm9ybURhdGEiLCJsZW5ndGgiLCJmbGF0dGVuUm93cyIsImJsb2NrVHlwZSIsInJvd0luZGV4RnJvbUFyZ3MiLCJzdWJGaWVsZFN0YXRlIiwiaWQiLCJPYmplY3RJRCIsInRvSGV4U3RyaW5nIiwidW5kZWZpbmVkIiwiY2hpbGRFcnJvclBhdGhzIiwiU2V0IiwiY29sbGFwc2VkIiwiaW5pdGlhbFZhbHVlIiwidmFsaWQiLCJzaWJsaW5nUm93cyIsImN1cnJlbnRWYWx1ZSIsIkFycmF5IiwiaXNBcnJheSIsIm5ld1ZhbHVlIiwicm93SW5kZXhBcmciLCJNYXRoIiwibWF4IiwibWluIiwiZHVwbGljYXRlUm93TWV0YWRhdGEiLCJkZWVwQ29weU9iamVjdCIsImR1cGxpY2F0ZVJvd1N0YXRlIiwia2V5cyIsIm1vdmVGcm9tSW5kZXgiLCJtb3ZlVG9JbmRleCIsImNvcHlPZk1vdmluZ1JvdyIsInJvd1N0YXRlQ29weSIsIm1vdmluZ1Jvd1N0YXRlIiwicm93SUQiLCJzZXREb2NGaWVsZFByZWZlcmVuY2VzIiwiYXJyYXlTdGF0ZSIsImNvbGxhcHNlZFJvd0lEcyIsIm1hdGNoZWRJbmRleCIsImFjYyIsInJvdyIsImluZGV4IiwiaXNNYXRjaGluZ1JvdyIsInB1c2giXSwibWFwcGluZ3MiOiI7Ozs7K0JBVWdCQTs7O2VBQUFBOzs7cUVBVks7a0VBQ0g7Z0NBSWE7dUVBQ0o7NkVBQ007c0JBQ1M7Ozs7OztBQUVuQyxTQUFTQSxhQUFhQyxLQUFhLEVBQUVDLE1BQW1CO0lBQzdELE9BQVFBLE9BQU9DLElBQUk7UUFDakIsS0FBSztZQUFpQjtnQkFDcEIsTUFBTUMsV0FBVyxDQUFDO2dCQUVsQix1Q0FBdUM7Z0JBQ3ZDLCtDQUErQztnQkFDL0MsS0FBSztnQkFDTCwrQ0FBK0M7Z0JBQy9DLDBDQUEwQztnQkFFMUNDLE9BQU9DLE9BQU8sQ0FBQ0osT0FBT0QsS0FBSyxFQUFFTSxPQUFPLENBQUMsQ0FBQyxDQUFDQyxNQUFNQyxNQUFNO29CQUNqRCxNQUFNQyxXQUFXVCxLQUFLLENBQUNPLEtBQUs7b0JBQzVCLE1BQU1HLFdBQVdGO29CQUVqQixJQUFJLENBQUNHLElBQUFBLGtCQUFLLEVBQUNGLFVBQVVDLFdBQVc7d0JBQzlCUCxRQUFRLENBQUNJLEtBQUssR0FBR0c7b0JBQ25CLE9BQU8sSUFBSUQsVUFBVTt3QkFDbkJOLFFBQVEsQ0FBQ0ksS0FBSyxHQUFHRTtvQkFDbkI7Z0JBQ0Y7Z0JBRUEsT0FBT047WUFDVDtRQUVBLEtBQUs7WUFBVTtnQkFDYixNQUFNQSxXQUFXO29CQUFFLEdBQUdILEtBQUs7Z0JBQUM7Z0JBQzVCLElBQUlHLFFBQVEsQ0FBQ0YsT0FBT00sSUFBSSxDQUFDLEVBQUUsT0FBT0osUUFBUSxDQUFDRixPQUFPTSxJQUFJLENBQUM7Z0JBQ3ZELE9BQU9KO1lBQ1Q7UUFF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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/Form/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAMnF,OAAO,KAAK,EAKV,KAAK,EAGN,MAAM,SAAS,CAAA;AAkChB,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAinBzB,CAAA;AAED,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/Form/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAMnF,OAAO,KAAK,EAKV,KAAK,EAGN,MAAM,SAAS,CAAA;AAkChB,QAAA,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAknBzB,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -383,7 +383,7 @@ const Form = (props)=>{
383
383
  }
384
384
  return config;
385
385
  }, []);
386
- const getRowConfigByPath = _react.default.useCallback(({ blockType, path })=>{
386
+ const getRowSchemaByPath = _react.default.useCallback(({ blockType, path })=>{
387
387
  const rowConfig = traverseRowConfigs({
388
388
  fieldConfig: collection?.fields || global?.fields,
389
389
  path
@@ -400,16 +400,16 @@ const Form = (props)=>{
400
400
  // Array/Block row manipulation
401
401
  const addFieldRow = (0, _react.useCallback)(async ({ data, path, rowIndex })=>{
402
402
  const preferences = await getDocPreferences();
403
- const fieldConfig = getRowConfigByPath({
403
+ const rowSchema = getRowSchemaByPath({
404
404
  blockType: data?.blockType,
405
405
  path
406
406
  });
407
- if (fieldConfig) {
407
+ if (rowSchema) {
408
408
  const subFieldState = await (0, _buildStateFromSchema.default)({
409
409
  id,
410
410
  config,
411
411
  data,
412
- fieldSchema: fieldConfig,
412
+ fieldSchema: rowSchema,
413
413
  locale,
414
414
  operation,
415
415
  preferences,
@@ -432,10 +432,10 @@ const Form = (props)=>{
432
432
  operation,
433
433
  locale,
434
434
  t,
435
- getRowConfigByPath,
435
+ getRowSchemaByPath,
436
436
  config
437
437
  ]);
438
- const removeFieldRow = (0, _react.useCallback)(async ({ path, rowIndex })=>{
438
+ const removeFieldRow = (0, _react.useCallback)(({ path, rowIndex })=>{
439
439
  dispatchFields({
440
440
  path,
441
441
  rowIndex,
@@ -446,16 +446,16 @@ const Form = (props)=>{
446
446
  ]);
447
447
  const replaceFieldRow = (0, _react.useCallback)(async ({ data, path, rowIndex })=>{
448
448
  const preferences = await getDocPreferences();
449
- const fieldConfig = getRowConfigByPath({
449
+ const rowSchema = getRowSchemaByPath({
450
450
  blockType: data?.blockType,
451
451
  path
452
452
  });
453
- if (fieldConfig) {
453
+ if (rowSchema) {
454
454
  const subFieldState = await (0, _buildStateFromSchema.default)({
455
455
  id,
456
456
  config,
457
457
  data,
458
- fieldSchema: fieldConfig,
458
+ fieldSchema: rowSchema,
459
459
  locale,
460
460
  operation,
461
461
  preferences,
@@ -478,7 +478,7 @@ const Form = (props)=>{
478
478
  operation,
479
479
  locale,
480
480
  t,
481
- getRowConfigByPath,
481
+ getRowSchemaByPath,
482
482
  config
483
483
  ]);
484
484
  const getFields = (0, _react.useCallback)(()=>contextRef.current.fields, [
@@ -662,4 +662,4 @@ const Form = (props)=>{
662
662
  };
663
663
  const _default = Form;
664
664
 
665
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gJ29iamVjdC10by1mb3JtZGF0YSdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBDb250ZXh0LFxuICBGaWVsZHMsXG4gIENvbnRleHQgYXMgRm9ybUNvbnRleHRUeXBlLFxuICBHZXREYXRhQnlQYXRoLFxuICBQcm9wcyxcbiAgUm93LFxuICBTdWJtaXRPcHRpb25zLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCB7IHNldHNBcmVFcXVhbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9zZXRzQXJlRXF1YWwnXG5pbXBvcnQgeyBzcGxpdFBhdGhCeUFycmF5RmllbGRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL3NwbGl0UGF0aEJ5QXJyYXlGaWVsZHMnXG5pbXBvcnQgd2FpdCBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvd2FpdCdcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHVzZVRocm90dGxlZEVmZmVjdCBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VPcGVyYXRpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvT3BlcmF0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBXYXRjaEZvcm1FcnJvcnMgfSBmcm9tICcuL1dhdGNoRm9ybUVycm9ycydcbmltcG9ydCB7IGJ1aWxkRmllbGRTY2hlbWFNYXAgfSBmcm9tICcuL2J1aWxkRmllbGRTY2hlbWFNYXAnXG5pbXBvcnQgYnVpbGRJbml0aWFsU3RhdGUgZnJvbSAnLi9idWlsZEluaXRpYWxTdGF0ZSdcbmltcG9ydCBidWlsZFN0YXRlRnJvbVNjaGVtYSBmcm9tICcuL2J1aWxkU3RhdGVGcm9tU2NoZW1hJ1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRleHQsXG4gIEZvcm1GaWVsZHNDb250ZXh0LFxuICBGb3JtV2F0Y2hDb250ZXh0LFxuICBNb2RpZmllZENvbnRleHQsXG4gIFByb2Nlc3NpbmdDb250ZXh0LFxuICBTdWJtaXR0ZWRDb250ZXh0LFxufSBmcm9tICcuL2NvbnRleHQnXG5pbXBvcnQgZXJyb3JNZXNzYWdlcyBmcm9tICcuL2Vycm9yTWVzc2FnZXMnXG5pbXBvcnQgeyBmaWVsZFJlZHVjZXIgfSBmcm9tICcuL2ZpZWxkUmVkdWNlcidcbmltcG9ydCBnZXREYXRhQnlQYXRoRnVuYyBmcm9tICcuL2dldERhdGFCeVBhdGgnXG5pbXBvcnQgZ2V0U2libGluZ0RhdGFGdW5jIGZyb20gJy4vZ2V0U2libGluZ0RhdGEnXG5pbXBvcnQgaW5pdENvbnRleHRTdGF0ZSBmcm9tICcuL2luaXRDb250ZXh0U3RhdGUnXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zvcm0nXG5cbmNvbnN0IEZvcm06IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYWN0aW9uLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBkaXNhYmxlU3VjY2Vzc1N0YXR1cyxcbiAgICBkaXNhYmxlZCxcbiAgICBoYW5kbGVSZXNwb25zZSxcbiAgICBpbml0aWFsRGF0YSwgLy8gdmFsdWVzIG9ubHksIHBhdGhzIGFyZSByZXF1aXJlZCBhcyBrZXkgLSBmb3JtIHNob3VsZCBidWlsZCBpbml0aWFsIHN0YXRlIGFzIGNvbnZlbmllbmNlXG4gICAgaW5pdGlhbFN0YXRlLCAvLyBmdWxseSBmb3JtZWQgaW5pdGlhbCBmaWVsZCBzdGF0ZVxuICAgIG1ldGhvZCxcbiAgICBvblN1Ym1pdCxcbiAgICBvblN1Y2Nlc3MsXG4gICAgcmVkaXJlY3QsXG4gICAgc3VibWl0dGVkOiBzdWJtaXR0ZWRGcm9tUHJvcHMsXG4gICAgd2FpdEZvckF1dG9jb21wbGV0ZSxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZ2VuZXJhbCcpXG4gIGNvbnN0IHsgcmVmcmVzaENvb2tpZSwgdXNlciB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgaWQsIGNvbGxlY3Rpb24sIGdldERvY1ByZWZlcmVuY2VzLCBnbG9iYWwgfSA9IHVzZURvY3VtZW50SW5mbygpXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHVzZU9wZXJhdGlvbigpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCBbbW9kaWZpZWQsIHNldE1vZGlmaWVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbcHJvY2Vzc2luZywgc2V0UHJvY2Vzc2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3N1Ym1pdHRlZCwgc2V0U3VibWl0dGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZm9ybWF0dGVkSW5pdGlhbERhdGEsIHNldEZvcm1hdHRlZEluaXRpYWxEYXRhXSA9IHVzZVN0YXRlKGJ1aWxkSW5pdGlhbFN0YXRlKGluaXRpYWxEYXRhKSlcblxuICBjb25zdCBmb3JtUmVmID0gdXNlUmVmPEhUTUxGb3JtRWxlbWVudD4obnVsbClcbiAgY29uc3QgY29udGV4dFJlZiA9IHVzZVJlZih7fSBhcyBGb3JtQ29udGV4dFR5cGUpXG5cbiAgbGV0IGluaXRpYWxGaWVsZFN0YXRlID0ge31cblxuICBpZiAoZm9ybWF0dGVkSW5pdGlhbERhdGEpIGluaXRpYWxGaWVsZFN0YXRlID0gZm9ybWF0dGVkSW5pdGlhbERhdGFcbiAgaWYgKGluaXRpYWxTdGF0ZSkgaW5pdGlhbEZpZWxkU3RhdGUgPSBpbml0aWFsU3RhdGVcblxuICBjb25zdCBmaWVsZHNSZWR1Y2VyID0gdXNlUmVkdWNlcihmaWVsZFJlZHVjZXIsIHt9LCAoKSA9PiBpbml0aWFsRmllbGRTdGF0ZSlcbiAgY29uc3QgW2ZpZWxkcywgZGlzcGF0Y2hGaWVsZHNdID0gZmllbGRzUmVkdWNlclxuXG4gIGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMgPSBmaWVsZHNcbiAgY29udGV4dFJlZi5jdXJyZW50LmRpc3BhdGNoRmllbGRzID0gZGlzcGF0Y2hGaWVsZHNcblxuICAvLyBCdWlsZCBhIGN1cnJlbnQgc2V0IG9mIGNoaWxkIGVycm9ycyBmb3IgYWxsIHJvd3MgaW4gZm9ybSBzdGF0ZVxuICBjb25zdCBidWlsZFJvd0Vycm9ycyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ0ZpZWxkUm93czogeyBbcGF0aDogc3RyaW5nXTogUm93W10gfSA9IHt9XG4gICAgY29uc3QgbmV3RmllbGRSb3dzOiB7IFtwYXRoOiBzdHJpbmddOiBSb3dbXSB9ID0ge31cblxuICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkcykuZm9yRWFjaCgoW3BhdGgsIGZpZWxkXSkgPT4ge1xuICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gc3BsaXRQYXRoQnlBcnJheUZpZWxkcyhwYXRoKVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBmaWVsZFBhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoMCwgaSArIDEpLmpvaW4oJy4nKVxuICAgICAgICBjb25zdCBmb3JtRmllbGQgPSBmaWVsZHM/LltmaWVsZFBhdGhdXG5cbiAgICAgICAgLy8gSXMgdGhpcyBhbiBhcnJheSBvciBibG9ja3MgZmllbGQ/XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1GaWVsZD8ucm93cykpIHtcbiAgICAgICAgICAvLyBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBleGlzdGluZyByb3cgc3RhdGVcbiAgICAgICAgICBleGlzdGluZ0ZpZWxkUm93c1tmaWVsZFBhdGhdID0gZm9ybUZpZWxkLnJvd3NcblxuICAgICAgICAgIC8vIEEgbmV3IHJvdyBzdGF0ZSB3aWxsIGJlIHVzZWQgdG8gY29tcGFyZVxuICAgICAgICAgIC8vIGFnYWluc3QgdGhlIG9sZCBzdGF0ZSBsYXRlcixcbiAgICAgICAgICAvLyB0byBzZWUgaWYgd2UgbmVlZCB0byBkaXNwYXRjaCBhbiB1cGRhdGVcbiAgICAgICAgICBpZiAoIW5ld0ZpZWxkUm93c1tmaWVsZFBhdGhdKSB7XG4gICAgICAgICAgICBuZXdGaWVsZFJvd3NbZmllbGRQYXRoXSA9IGZvcm1GaWVsZC5yb3dzLm1hcCgoZXhpc3RpbmdSb3cpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmV4aXN0aW5nUm93LFxuICAgICAgICAgICAgICBjaGlsZEVycm9yUGF0aHM6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gcGF0aFNlZ21lbnRzW2kgKyAxXVxuICAgICAgICAgIGNvbnN0IGNoaWxkRmllbGRQYXRoID0gcGF0aFNlZ21lbnRzLnNsaWNlKGkgKyAxKS5qb2luKCcuJylcblxuICAgICAgICAgIGlmIChmaWVsZC52YWxpZCA9PT0gZmFsc2UgJiYgY2hpbGRGaWVsZFBhdGgpIHtcbiAgICAgICAgICAgIG5ld0ZpZWxkUm93c1tmaWVsZFBhdGhdW3Jvd0luZGV4XS5jaGlsZEVycm9yUGF0aHMuYWRkKGAke2ZpZWxkUGF0aH0uJHtjaGlsZEZpZWxkUGF0aH1gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBOb3cgbG9vcCBvdmVyIGFsbCBmaWVsZHMgd2l0aCByb3dzIC1cbiAgICAvLyBpZiBhbnl0aGluZyBjaGFuZ2VkLCBkaXNwYXRjaCBhbiB1cGRhdGUgZm9yIHRoZSBmaWVsZFxuICAgIC8vIHdpdGggdGhlIG5ldyByb3cgc3RhdGVcbiAgICBPYmplY3QuZW50cmllcyhuZXdGaWVsZFJvd3MpLmZvckVhY2goKFtwYXRoLCBuZXdSb3dzXSkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVNYXRjaGVzID0gbmV3Um93cy5ldmVyeSgobmV3Um93LCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nUm93RXJyb3JQYXRocyA9IGV4aXN0aW5nRmllbGRSb3dzW3BhdGhdW2ldPy5jaGlsZEVycm9yUGF0aHNcbiAgICAgICAgcmV0dXJuIHNldHNBcmVFcXVhbChuZXdSb3cuY2hpbGRFcnJvclBhdGhzLCBleGlzdGluZ1Jvd0Vycm9yUGF0aHMpXG4gICAgICB9KVxuXG4gICAgICBpZiAoIXN0YXRlTWF0Y2hlcykge1xuICAgICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByb3dzOiBuZXdSb3dzLFxuICAgICAgICAgIHR5cGU6ICdVUERBVEUnLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtmaWVsZHMsIGRpc3BhdGNoRmllbGRzXSlcblxuICBjb25zdCB2YWxpZGF0ZUZvcm0gPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGVkRmllbGRTdGF0ZSA9IHt9XG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlXG4gICAgY29uc3QgZGF0YSA9IGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhKClcblxuICAgIGNvbnN0IHZhbGlkYXRpb25Qcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMpLm1hcChcbiAgICAgIGFzeW5jIChbcGF0aCwgZmllbGRdKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZEZpZWxkID0ge1xuICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkLnBhc3Nlc0NvbmRpdGlvbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogYm9vbGVhbiB8IHN0cmluZyA9IHRydWVcblxuICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQudmFsaWRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZC52YWxpZGF0ZShmaWVsZC52YWx1ZSwge1xuICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0U2libGluZ0RhdGEocGF0aCksXG4gICAgICAgICAgICAgIHQsXG4gICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlZEZpZWxkLmVycm9yTWVzc2FnZSA9IHZhbGlkYXRpb25SZXN1bHRcbiAgICAgICAgICAgIHZhbGlkYXRlZEZpZWxkLnZhbGlkID0gZmFsc2VcbiAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhbGlkYXRlZEZpZWxkU3RhdGVbcGF0aF0gPSB2YWxpZGF0ZWRGaWVsZFxuICAgICAgfSxcbiAgICApXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh2YWxpZGF0aW9uUHJvbWlzZXMpXG5cbiAgICBpZiAoIWlzRGVlcEVxdWFsKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHZhbGlkYXRlZEZpZWxkU3RhdGUpKSB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHN0YXRlOiB2YWxpZGF0ZWRGaWVsZFN0YXRlLCB0eXBlOiAnUkVQTEFDRV9TVEFURScgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZFxuICB9LCBbY29udGV4dFJlZiwgaWQsIHVzZXIsIG9wZXJhdGlvbiwgdCwgZGlzcGF0Y2hGaWVsZHMsIGNvbmZpZ10pXG5cbiAgY29uc3Qgc3VibWl0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKG9wdGlvbnM6IFN1Ym1pdE9wdGlvbnMgPSB7fSwgZSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBhY3Rpb246IGFjdGlvblRvVXNlID0gYWN0aW9uLFxuICAgICAgICBtZXRob2Q6IG1ldGhvZFRvVXNlID0gbWV0aG9kLFxuICAgICAgICBvdmVycmlkZXMgPSB7fSxcbiAgICAgICAgc2tpcFZhbGlkYXRpb24sXG4gICAgICB9ID0gb3B0aW9uc1xuXG4gICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cblxuICAgICAgc2V0UHJvY2Vzc2luZyh0cnVlKVxuXG4gICAgICBpZiAod2FpdEZvckF1dG9jb21wbGV0ZSkgYXdhaXQgd2FpdCgxMDApXG5cbiAgICAgIGNvbnN0IGlzVmFsaWQgPSBza2lwVmFsaWRhdGlvbiA/IHRydWUgOiBhd2FpdCBjb250ZXh0UmVmLmN1cnJlbnQudmFsaWRhdGVGb3JtKClcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudC5idWlsZFJvd0Vycm9ycygpXG5cbiAgICAgIGlmICghc2tpcFZhbGlkYXRpb24pIHNldFN1Ym1pdHRlZCh0cnVlKVxuXG4gICAgICAvLyBJZiBub3QgdmFsaWQsIHByZXZlbnQgc3VibWlzc2lvblxuICAgICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgIHRvYXN0LmVycm9yKHQoJ2Vycm9yOmNvcnJlY3RJbnZhbGlkRmllbGRzJykpXG4gICAgICAgIHNldFByb2Nlc3NpbmcoZmFsc2UpXG5cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHN1Ym1pdCBoYW5kbGVyIGNvbWVzIHRocm91Z2ggdmlhIHByb3BzLCBydW4gdGhhdFxuICAgICAgaWYgKG9uU3VibWl0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgLi4ucmVkdWNlRmllbGRzVG9WYWx1ZXMoZmllbGRzLCB0cnVlKSxcbiAgICAgICAgICAuLi5vdmVycmlkZXMsXG4gICAgICAgIH1cblxuICAgICAgICBvblN1Ym1pdChmaWVsZHMsIGRhdGEpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gY29udGV4dFJlZi5jdXJyZW50LmNyZWF0ZUZvcm1EYXRhKG92ZXJyaWRlcylcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgcmVxdWVzdHNbbWV0aG9kVG9Vc2UudG9Mb3dlckNhc2UoKV0oYWN0aW9uVG9Vc2UsIHtcbiAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuXG4gICAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuXG4gICAgICAgIGlmICh0eXBlb2YgaGFuZGxlUmVzcG9uc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBoYW5kbGVSZXNwb25zZShyZXMpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBzZXRQcm9jZXNzaW5nKGZhbHNlKVxuXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKVxuICAgICAgICBjb25zdCBpc0pTT04gPSBjb250ZW50VHlwZSAmJiBjb250ZW50VHlwZS5pbmRleE9mKCdhcHBsaWNhdGlvbi9qc29uJykgIT09IC0xXG5cbiAgICAgICAgbGV0IGpzb246IGFueSA9IHt9XG5cbiAgICAgICAgaWYgKGlzSlNPTikganNvbiA9IGF3YWl0IHJlcy5qc29uKClcblxuICAgICAgICBpZiAocmVzLnN0YXR1cyA8IDQwMCkge1xuICAgICAgICAgIHNldFN1Ym1pdHRlZChmYWxzZSlcblxuICAgICAgICAgIGlmICh0eXBlb2Ygb25TdWNjZXNzID09PSAnZnVuY3Rpb24nKSBvblN1Y2Nlc3MoanNvbilcblxuICAgICAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSB7XG4gICAgICAgICAgICAgIHBhdGhuYW1lOiByZWRpcmVjdCxcbiAgICAgICAgICAgICAgc3RhdGU6IHt9LFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGpzb24gPT09ICdvYmplY3QnICYmIGpzb24ubWVzc2FnZSAmJiAhZGlzYWJsZVN1Y2Nlc3NTdGF0dXMpIHtcbiAgICAgICAgICAgICAgZGVzdGluYXRpb24uc3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGpzb24ubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhpc3RvcnkucHVzaChkZXN0aW5hdGlvbilcbiAgICAgICAgICB9IGVsc2UgaWYgKCFkaXNhYmxlU3VjY2Vzc1N0YXR1cykge1xuICAgICAgICAgICAgdG9hc3Quc3VjY2Vzcyhqc29uLm1lc3NhZ2UgfHwgdCgnc3VibWlzc2lvblN1Y2Nlc3NmdWwnKSwgeyBhdXRvQ2xvc2U6IDMwMDAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5jb250ZXh0UmVmLmN1cnJlbnQgfSAvLyB0cmlnZ2VycyByZXJlbmRlciBvZiBhbGwgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZSB0byBmb3JtXG5cbiAgICAgICAgICBpZiAoanNvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICB0b2FzdC5lcnJvcihqc29uLm1lc3NhZ2UpXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGpzb24uZXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgW2ZpZWxkRXJyb3JzLCBub25GaWVsZEVycm9yc10gPSBqc29uLmVycm9ycy5yZWR1Y2UoXG4gICAgICAgICAgICAgIChbZmllbGRFcnJzLCBub25GaWVsZEVycnNdLCBlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWVsZEVycnMgPSBbXVxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld05vbkZpZWxkRXJycyA9IFtdXG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICBuZXdOb25GaWVsZEVycnMucHVzaChlcnIpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyPy5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgZXJyLmRhdGEuZm9yRWFjaCgoZGF0YUVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhRXJyb3I/LmZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3RmllbGRFcnJzLnB1c2goZGF0YUVycm9yKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG5ld05vbkZpZWxkRXJycy5wdXNoKGRhdGFFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgWy4uLmZpZWxkRXJycywgLi4ubmV3RmllbGRFcnJzXSxcbiAgICAgICAgICAgICAgICAgIFsuLi5ub25GaWVsZEVycnMsIC4uLm5ld05vbkZpZWxkRXJyc10sXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBbW10sIFtdXSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgZmllbGRFcnJvcnMuZm9yRWFjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnVVBEQVRFJyxcbiAgICAgICAgICAgICAgICAuLi4oY29udGV4dFJlZi5jdXJyZW50Py5maWVsZHM/LltlcnIuZmllbGRdIHx8IHt9KSxcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U6IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIHBhdGg6IGVyci5maWVsZCxcbiAgICAgICAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBub25GaWVsZEVycm9ycy5mb3JFYWNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgdCgnZXJyb3I6dW5rbm93bicpKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTWVzc2FnZXNbcmVzLnN0YXR1c10gfHwgdCgnZXJyb3I6dW5rbm93bicpXG5cbiAgICAgICAgICB0b2FzdC5lcnJvcihtZXNzYWdlKVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0UHJvY2Vzc2luZyhmYWxzZSlcblxuICAgICAgICB0b2FzdC5lcnJvcihlcnIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBhY3Rpb24sXG4gICAgICBkaXNhYmxlU3VjY2Vzc1N0YXR1cyxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZGlzcGF0Y2hGaWVsZHMsXG4gICAgICBmaWVsZHMsXG4gICAgICBoYW5kbGVSZXNwb25zZSxcbiAgICAgIGhpc3RvcnksXG4gICAgICBtZXRob2QsXG4gICAgICBvblN1Ym1pdCxcbiAgICAgIG9uU3VjY2VzcyxcbiAgICAgIHJlZGlyZWN0LFxuICAgICAgdCxcbiAgICAgIGkxOG4sXG4gICAgICB3YWl0Rm9yQXV0b2NvbXBsZXRlLFxuICAgIF0sXG4gIClcblxuICBjb25zdCB0cmF2ZXJzZVJvd0NvbmZpZ3MgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZmllbGRDb25maWcsXG4gICAgICBwYXRoLFxuICAgICAgcGF0aFByZWZpeCxcbiAgICB9OiB7XG4gICAgICBmaWVsZENvbmZpZzogRmllbGRbXVxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgICBwYXRoUHJlZml4Pzogc3RyaW5nXG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gZmllbGRDb25maWdcbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IHNwbGl0UGF0aEJ5QXJyYXlGaWVsZHMocGF0aClcbiAgICAgIGNvbnN0IGNvbmZpZ01hcCA9IGJ1aWxkRmllbGRTY2hlbWFNYXAoY29uZmlnKVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBwYXRoU2VnbWVudCA9IHBhdGhTZWdtZW50c1tpXVxuXG4gICAgICAgIGlmIChpc051bWJlcihwYXRoU2VnbWVudCkpIHtcbiAgICAgICAgICBjb25zdCByb3dJbmRleCA9IHBhcnNlSW50KHBhdGhTZWdtZW50LCAxMClcbiAgICAgICAgICBjb25zdCBwYXJlbnRGaWVsZFBhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoMCwgaSkuam9pbignLicpXG4gICAgICAgICAgY29uc3QgcmVtYWluaW5nUGF0aCA9IHBhdGhTZWdtZW50cy5zbGljZShpICsgMSkuam9pbignLicpXG4gICAgICAgICAgY29uc3QgYXJyYXlGaWVsZFBhdGggPSBwYXRoUHJlZml4ID8gYCR7cGF0aFByZWZpeH0uJHtwYXJlbnRGaWVsZFBhdGh9YCA6IHBhcmVudEZpZWxkUGF0aFxuICAgICAgICAgIGNvbnN0IHBhcmVudEFycmF5RmllbGQgPSBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RmllbGQoYXJyYXlGaWVsZFBhdGgpXG4gICAgICAgICAgY29uc3Qgcm93RmllbGQgPSBwYXJlbnRBcnJheUZpZWxkLnJvd3Nbcm93SW5kZXhdXG5cbiAgICAgICAgICBpZiAocm93RmllbGQuYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBibG9ja0NvbmZpZyA9IGNvbmZpZ01hcC5nZXQoYCR7cGFyZW50RmllbGRQYXRofS4ke3Jvd0ZpZWxkLmJsb2NrVHlwZX1gKVxuICAgICAgICAgICAgaWYgKGJsb2NrQ29uZmlnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVJvd0NvbmZpZ3Moe1xuICAgICAgICAgICAgICAgIGZpZWxkQ29uZmlnOiBibG9ja0NvbmZpZyxcbiAgICAgICAgICAgICAgICBwYXRoOiByZW1haW5pbmdQYXRoLFxuICAgICAgICAgICAgICAgIHBhdGhQcmVmaXg6IGAke2FycmF5RmllbGRQYXRofS4ke3Jvd0luZGV4fWAsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQmxvY2sgY29uZmlnIG5vdCBmb3VuZCBmb3IgJHtyb3dGaWVsZC5ibG9ja1R5cGV9IGF0IHBhdGggJHtwYXRofWApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVJvd0NvbmZpZ3Moe1xuICAgICAgICAgICAgICBmaWVsZENvbmZpZzogY29uZmlnTWFwLmdldChwYXJlbnRGaWVsZFBhdGgpLFxuICAgICAgICAgICAgICBwYXRoOiByZW1haW5pbmdQYXRoLFxuICAgICAgICAgICAgICBwYXRoUHJlZml4OiBgJHthcnJheUZpZWxkUGF0aH0uJHtyb3dJbmRleH1gLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH0sXG4gICAgW10sXG4gIClcblxuICBjb25zdCBnZXRSb3dDb25maWdCeVBhdGggPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoeyBibG9ja1R5cGUsIHBhdGggfTogeyBibG9ja1R5cGU/OiBzdHJpbmc7IHBhdGg6IHN0cmluZyB9KSA9PiB7XG4gICAgICBjb25zdCByb3dDb25maWcgPSB0cmF2ZXJzZVJvd0NvbmZpZ3Moe1xuICAgICAgICBmaWVsZENvbmZpZzogY29sbGVjdGlvbj8uZmllbGRzIHx8IGdsb2JhbD8uZmllbGRzLFxuICAgICAgICBwYXRoLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IHJvd0ZpZWxkQ29uZmlncyA9IGJ1aWxkRmllbGRTY2hlbWFNYXAocm93Q29uZmlnKVxuICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gc3BsaXRQYXRoQnlBcnJheUZpZWxkcyhwYXRoKVxuICAgICAgY29uc3QgZmllbGRLZXkgPSBwYXRoU2VnbWVudHMuYXQoLTEpXG4gICAgICByZXR1cm4gcm93RmllbGRDb25maWdzLmdldChibG9ja1R5cGUgPyBgJHtmaWVsZEtleX0uJHtibG9ja1R5cGV9YCA6IGZpZWxkS2V5KVxuICAgIH0sXG4gICAgW3RyYXZlcnNlUm93Q29uZmlncywgY29sbGVjdGlvbj8uZmllbGRzLCBnbG9iYWw/LmZpZWxkc10sXG4gIClcblxuICAvLyBBcnJheS9CbG9jayByb3cgbWFuaXB1bGF0aW9uXG4gIGNvbnN0IGFkZEZpZWxkUm93OiBDb250ZXh0WydhZGRGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgZGF0YSwgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCBmaWVsZENvbmZpZyA9IGdldFJvd0NvbmZpZ0J5UGF0aCh7XG4gICAgICAgIGJsb2NrVHlwZTogZGF0YT8uYmxvY2tUeXBlLFxuICAgICAgICBwYXRoLFxuICAgICAgfSlcblxuICAgICAgaWYgKGZpZWxkQ29uZmlnKSB7XG4gICAgICAgIGNvbnN0IHN1YkZpZWxkU3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZmllbGRTY2hlbWE6IGZpZWxkQ29uZmlnLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgdCxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICB9KVxuICAgICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgICAgYmxvY2tUeXBlOiBkYXRhPy5ibG9ja1R5cGUsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByb3dJbmRleCxcbiAgICAgICAgICBzdWJGaWVsZFN0YXRlLFxuICAgICAgICAgIHR5cGU6ICdBRERfUk9XJyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgZ2V0RG9jUHJlZmVyZW5jZXMsIGlkLCB1c2VyLCBvcGVyYXRpb24sIGxvY2FsZSwgdCwgZ2V0Um93Q29uZmlnQnlQYXRoLCBjb25maWddLFxuICApXG5cbiAgY29uc3QgcmVtb3ZlRmllbGRSb3c6IENvbnRleHRbJ3JlbW92ZUZpZWxkUm93J10gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoeyBwYXRoLCByb3dJbmRleCB9KSA9PiB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHBhdGgsIHJvd0luZGV4LCB0eXBlOiAnUkVNT1ZFX1JPVycgfSlcbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkc10sXG4gIClcblxuICBjb25zdCByZXBsYWNlRmllbGRSb3c6IENvbnRleHRbJ3JlcGxhY2VGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgZGF0YSwgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCBmaWVsZENvbmZpZyA9IGdldFJvd0NvbmZpZ0J5UGF0aCh7XG4gICAgICAgIGJsb2NrVHlwZTogZGF0YT8uYmxvY2tUeXBlLFxuICAgICAgICBwYXRoLFxuICAgICAgfSlcblxuICAgICAgaWYgKGZpZWxkQ29uZmlnKSB7XG4gICAgICAgIGNvbnN0IHN1YkZpZWxkU3RhdGUgPSBhd2FpdCBidWlsZFN0YXRlRnJvbVNjaGVtYSh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZmllbGRTY2hlbWE6IGZpZWxkQ29uZmlnLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgdCxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICB9KVxuICAgICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgICAgYmxvY2tUeXBlOiBkYXRhPy5ibG9ja1R5cGUsXG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByb3dJbmRleCxcbiAgICAgICAgICBzdWJGaWVsZFN0YXRlLFxuICAgICAgICAgIHR5cGU6ICdSRVBMQUNFX1JPVycsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHMsIGdldERvY1ByZWZlcmVuY2VzLCBpZCwgdXNlciwgb3BlcmF0aW9uLCBsb2NhbGUsIHQsIGdldFJvd0NvbmZpZ0J5UGF0aCwgY29uZmlnXSxcbiAgKVxuXG4gIGNvbnN0IGdldEZpZWxkcyA9IHVzZUNhbGxiYWNrKCgpID0+IGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIFtjb250ZXh0UmVmXSlcbiAgY29uc3QgZ2V0RmllbGQgPSB1c2VDYWxsYmFjaygocGF0aDogc3RyaW5nKSA9PiBjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzW3BhdGhdLCBbY29udGV4dFJlZl0pXG4gIGNvbnN0IGdldERhdGEgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB0cnVlKSxcbiAgICBbY29udGV4dFJlZl0sXG4gIClcbiAgY29uc3QgZ2V0U2libGluZ0RhdGEgPSB1c2VDYWxsYmFjayhcbiAgICAocGF0aDogc3RyaW5nKSA9PiBnZXRTaWJsaW5nRGF0YUZ1bmMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgcGF0aCksXG4gICAgW2NvbnRleHRSZWZdLFxuICApXG4gIGNvbnN0IGdldERhdGFCeVBhdGggPSB1c2VDYWxsYmFjazxHZXREYXRhQnlQYXRoPihcbiAgICAocGF0aDogc3RyaW5nKSA9PiBnZXREYXRhQnlQYXRoRnVuYyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCBwYXRoKSxcbiAgICBbY29udGV4dFJlZl0sXG4gIClcblxuICBjb25zdCBjcmVhdGVGb3JtRGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgIChvdmVycmlkZXM6IGFueSA9IHt9KSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gcmVkdWNlRmllbGRzVG9WYWx1ZXMoY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgdHJ1ZSlcblxuICAgICAgY29uc3QgZmlsZSA9IGRhdGE/LmZpbGVcblxuICAgICAgaWYgKGZpbGUpIHtcbiAgICAgICAgZGVsZXRlIGRhdGEuZmlsZVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhV2l0aE92ZXJyaWRlcyA9IHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgLi4ub3ZlcnJpZGVzLFxuICAgICAgfVxuXG4gICAgICBjb25zdCBkYXRhVG9TZXJpYWxpemUgPSB7XG4gICAgICAgIF9wYXlsb2FkOiBKU09OLnN0cmluZ2lmeShkYXRhV2l0aE92ZXJyaWRlcyksXG4gICAgICAgIGZpbGUsXG4gICAgICB9XG5cbiAgICAgIC8vIG51bGxBc1VuZGVmaW5lZHMgaXMgaW1wb3J0YW50IHRvIGFsbG93IHVwbG9hZHMgYW5kIHJlbGF0aW9uc2hpcCBmaWVsZHMgdG8gY2xlYXIgdGhlbXNlbHZlc1xuICAgICAgY29uc3QgZm9ybURhdGEgPSBzZXJpYWxpemUoZGF0YVRvU2VyaWFsaXplLCB7IGluZGljZXM6IHRydWUsIG51bGxzQXNVbmRlZmluZWRzOiBmYWxzZSB9KVxuICAgICAgcmV0dXJuIGZvcm1EYXRhXG4gICAgfSxcbiAgICBbY29udGV4dFJlZl0sXG4gIClcblxuICBjb25zdCByZXNldCA9IHVzZUNhbGxiYWNrKFxuICAgIGFzeW5jIChmaWVsZFNjaGVtYTogRmllbGRbXSwgZGF0YTogdW5rbm93bikgPT4ge1xuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCBzdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZmllbGRTY2hlbWEsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgdCxcbiAgICAgICAgdXNlcixcbiAgICAgIH0pXG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmluaXRDb250ZXh0U3RhdGUgfSBhcyBGb3JtQ29udGV4dFR5cGVcbiAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZSwgdHlwZTogJ1JFUExBQ0VfU1RBVEUnIH0pXG4gICAgfSxcbiAgICBbaWQsIHVzZXIsIG9wZXJhdGlvbiwgbG9jYWxlLCB0LCBkaXNwYXRjaEZpZWxkcywgZ2V0RG9jUHJlZmVyZW5jZXMsIGNvbmZpZ10sXG4gIClcblxuICBjb25zdCByZXBsYWNlU3RhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAoc3RhdGU6IEZpZWxkcykgPT4ge1xuICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5pbml0Q29udGV4dFN0YXRlIH0gYXMgRm9ybUNvbnRleHRUeXBlXG4gICAgICBzZXRNb2RpZmllZChmYWxzZSlcbiAgICAgIGRpc3BhdGNoRmllbGRzKHsgc3RhdGUsIHR5cGU6ICdSRVBMQUNFX1NUQVRFJyB9KVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzXSxcbiAgKVxuXG4gIGNvbnRleHRSZWYuY3VycmVudC5zdWJtaXQgPSBzdWJtaXRcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldEZpZWxkcyA9IGdldEZpZWxkc1xuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RmllbGQgPSBnZXRGaWVsZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RGF0YSA9IGdldERhdGFcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldFNpYmxpbmdEYXRhID0gZ2V0U2libGluZ0RhdGFcbiAgY29udGV4dFJlZi5jdXJyZW50LmdldERhdGFCeVBhdGggPSBnZXREYXRhQnlQYXRoXG4gIGNvbnRleHRSZWYuY3VycmVudC52YWxpZGF0ZUZvcm0gPSB2YWxpZGF0ZUZvcm1cbiAgY29udGV4dFJlZi5jdXJyZW50LmNyZWF0ZUZvcm1EYXRhID0gY3JlYXRlRm9ybURhdGFcbiAgY29udGV4dFJlZi5jdXJyZW50LnNldE1vZGlmaWVkID0gc2V0TW9kaWZpZWRcbiAgY29udGV4dFJlZi5jdXJyZW50LnNldFByb2Nlc3NpbmcgPSBzZXRQcm9jZXNzaW5nXG4gIGNvbnRleHRSZWYuY3VycmVudC5zZXRTdWJtaXR0ZWQgPSBzZXRTdWJtaXR0ZWRcbiAgY29udGV4dFJlZi5jdXJyZW50LmRpc2FibGVkID0gZGlzYWJsZWRcbiAgY29udGV4dFJlZi5jdXJyZW50LmZvcm1SZWYgPSBmb3JtUmVmXG4gIGNvbnRleHRSZWYuY3VycmVudC5yZXNldCA9IHJlc2V0XG4gIGNvbnRleHRSZWYuY3VycmVudC5yZXBsYWNlU3RhdGUgPSByZXBsYWNlU3RhdGVcbiAgY29udGV4dFJlZi5jdXJyZW50LmJ1aWxkUm93RXJyb3JzID0gYnVpbGRSb3dFcnJvcnNcbiAgY29udGV4dFJlZi5jdXJyZW50LmFkZEZpZWxkUm93ID0gYWRkRmllbGRSb3dcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlbW92ZUZpZWxkUm93ID0gcmVtb3ZlRmllbGRSb3dcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlcGxhY2VGaWVsZFJvdyA9IHJlcGxhY2VGaWVsZFJvd1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBzdWJtaXR0ZWRGcm9tUHJvcHMgPT09ICdib29sZWFuJykgc2V0U3VibWl0dGVkKHN1Ym1pdHRlZEZyb21Qcm9wcylcbiAgfSwgW3N1Ym1pdHRlZEZyb21Qcm9wc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaW5pdGlhbFN0YXRlKSB7XG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmluaXRDb250ZXh0U3RhdGUgfSBhcyBGb3JtQ29udGV4dFR5cGVcbiAgICAgIGRpc3BhdGNoRmllbGRzKHsgc3RhdGU6IGluaXRpYWxTdGF0ZSwgdHlwZTogJ1JFUExBQ0VfU1RBVEUnIH0pXG4gICAgfVxuICB9LCBbaW5pdGlhbFN0YXRlLCBkaXNwYXRjaEZpZWxkc10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaW5pdGlhbERhdGEpIHtcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgY29uc3QgYnVpbHRTdGF0ZSA9IGJ1aWxkSW5pdGlhbFN0YXRlKGluaXRpYWxEYXRhKVxuICAgICAgc2V0Rm9ybWF0dGVkSW5pdGlhbERhdGEoYnVpbHRTdGF0ZSlcbiAgICAgIGRpc3BhdGNoRmllbGRzKHsgc3RhdGU6IGJ1aWx0U3RhdGUsIHR5cGU6ICdSRVBMQUNFX1NUQVRFJyB9KVxuICAgIH1cbiAgfSwgW2luaXRpYWxEYXRhLCBkaXNwYXRjaEZpZWxkc10pXG5cbiAgdXNlVGhyb3R0bGVkRWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIHJlZnJlc2hDb29raWUoKVxuICAgIH0sXG4gICAgMTUwMDAsXG4gICAgW2ZpZWxkc10sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uY29udGV4dFJlZi5jdXJyZW50IH0gLy8gdHJpZ2dlcnMgcmVyZW5kZXIgb2YgYWxsIGNvbXBvbmVudHMgdGhhdCBzdWJzY3JpYmUgdG8gZm9ybVxuICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICB9LCBbbG9jYWxlXSlcblxuICBjb25zdCBjbGFzc2VzID0gW2NsYXNzTmFtZSwgYmFzZUNsYXNzXS5maWx0ZXIoQm9vbGVhbikuam9pbignICcpXG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybVxuICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICBjbGFzc05hbWU9e2NsYXNzZXN9XG4gICAgICBtZXRob2Q9e21ldGhvZH1cbiAgICAgIG5vVmFsaWRhdGVcbiAgICAgIG9uU3VibWl0PXsoZSkgPT4gY29udGV4dFJlZi5jdXJyZW50LnN1Ym1pdCh7fSwgZSl9XG4gICAgICByZWY9e2Zvcm1SZWZ9XG4gICAgPlxuICAgICAgPEZvcm1Db250ZXh0LlByb3ZpZGVyIHZhbHVlPXtjb250ZXh0UmVmLmN1cnJlbnR9PlxuICAgICAgICA8Rm9ybVdhdGNoQ29udGV4dC5Qcm92aWRlclxuICAgICAgICAgIHZhbHVlPXt7XG4gICAgICAgICAgICBmaWVsZHMsXG4gICAgICAgICAgICAuLi5jb250ZXh0UmVmLmN1cnJlbnQsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxTdWJtaXR0ZWRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtzdWJtaXR0ZWR9PlxuICAgICAgICAgICAgPFByb2Nlc3NpbmdDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcm9jZXNzaW5nfT5cbiAgICAgICAgICAgICAgPE1vZGlmaWVkQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bW9kaWZpZWR9PlxuICAgICAgICAgICAgICAgIDxGb3JtRmllbGRzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17ZmllbGRzUmVkdWNlcn0+XG4gICAgICAgICAgICAgICAgICA8V2F0Y2hGb3JtRXJyb3JzIGJ1aWxkUm93RXJyb3JzPXtidWlsZFJvd0Vycm9yc30gLz5cbiAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICA8L0Zvcm1GaWVsZHNDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L01vZGlmaWVkQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvUHJvY2Vzc2luZ0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgPC9TdWJtaXR0ZWRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L0Zvcm1XYXRjaENvbnRleHQuUHJvdmlkZXI+XG4gICAgICA8L0Zvcm1Db250ZXh0LlByb3ZpZGVyPlxuICAgIDwvZm9ybT5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBGb3JtXG4iXSwibmFtZXMiOlsiYmFzZUNsYXNzIiwiRm9ybSIsInByb3BzIiwiYWN0aW9uIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJkaXNhYmxlU3VjY2Vzc1N0YXR1cyIsImRpc2FibGVkIiwiaGFuZGxlUmVzcG9uc2UiLCJpbml0aWFsRGF0YSIsImluaXRpYWxTdGF0ZSIsIm1ldGhvZCIsIm9uU3VibWl0Iiwib25TdWNjZXNzIiwicmVkaXJlY3QiLCJzdWJtaXR0ZWQiLCJzdWJtaXR0ZWRGcm9tUHJvcHMiLCJ3YWl0Rm9yQXV0b2NvbXBsZXRlIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsInJlZnJlc2hDb29raWUiLCJ1c2VyIiwidXNlQXV0aCIsImlkIiwiY29sbGVjdGlvbiIsImdldERvY1ByZWZlcmVuY2VzIiwiZ2xvYmFsIiwidXNlRG9jdW1lbnRJbmZvIiwib3BlcmF0aW9uIiwidXNlT3BlcmF0aW9uIiwiY29uZmlnIiwidXNlQ29uZmlnIiwibW9kaWZpZWQiLCJzZXRNb2RpZmllZCIsInVzZVN0YXRlIiwicHJvY2Vzc2luZyIsInNldFByb2Nlc3NpbmciLCJzZXRTdWJtaXR0ZWQiLCJmb3JtYXR0ZWRJbml0aWFsRGF0YSIsInNldEZvcm1hdHRlZEluaXRpYWxEYXRhIiwiYnVpbGRJbml0aWFsU3RhdGUiLCJmb3JtUmVmIiwidXNlUmVmIiwiY29udGV4dFJlZiIsImluaXRpYWxGaWVsZFN0YXRlIiwiZmllbGRzUmVkdWNlciIsInVzZVJlZHVjZXIiLCJmaWVsZFJlZHVjZXIiLCJmaWVsZHMiLCJkaXNwYXRjaEZpZWxkcyIsImN1cnJlbnQiLCJidWlsZFJvd0Vycm9ycyIsInVzZUNhbGxiYWNrIiwiZXhpc3RpbmdGaWVsZFJvd3MiLCJuZXdGaWVsZFJvd3MiLCJPYmplY3QiLCJlbnRyaWVzIiwiZm9yRWFjaCIsInBhdGgiLCJmaWVsZCIsInBhdGhTZWdtZW50cyIsInNwbGl0UGF0aEJ5QXJyYXlGaWVsZHMiLCJpIiwibGVuZ3RoIiwiZmllbGRQYXRoIiwic2xpY2UiLCJqb2luIiwiZm9ybUZpZWxkIiwiQXJyYXkiLCJpc0FycmF5Iiwicm93cyIsIm1hcCIsImV4aXN0aW5nUm93IiwiY2hpbGRFcnJvclBhdGhzIiwiU2V0Iiwicm93SW5kZXgiLCJjaGlsZEZpZWxkUGF0aCIsInZhbGlkIiwiYWRkIiwibmV3Um93cyIsInN0YXRlTWF0Y2hlcyIsImV2ZXJ5IiwibmV3Um93IiwiZXhpc3RpbmdSb3dFcnJvclBhdGhzIiwic2V0c0FyZUVxdWFsIiwidHlwZSIsInZhbGlkYXRlRm9ybSIsInZhbGlkYXRlZEZpZWxkU3RhdGUiLCJpc1ZhbGlkIiwiZGF0YSIsImdldERhdGEiLCJ2YWxpZGF0aW9uUHJvbWlzZXMiLCJ2YWxpZGF0ZWRGaWVsZCIsInBhc3Nlc0NvbmRpdGlvbiIsInZhbGlkYXRpb25SZXN1bHQiLCJ2YWxpZGF0ZSIsInZhbHVlIiwic2libGluZ0RhdGEiLCJnZXRTaWJsaW5nRGF0YSIsImVycm9yTWVzc2FnZSIsIlByb21pc2UiLCJhbGwiLCJpc0RlZXBFcXVhbCIsInN0YXRlIiwic3VibWl0Iiwib3B0aW9ucyIsImUiLCJhY3Rpb25Ub1VzZSIsIm1ldGhvZFRvVXNlIiwib3ZlcnJpZGVzIiwic2tpcFZhbGlkYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsIndhaXQiLCJ0b2FzdCIsImVycm9yIiwicmVkdWNlRmllbGRzVG9WYWx1ZXMiLCJmb3JtRGF0YSIsImNyZWF0ZUZvcm1EYXRhIiwicmVzIiwicmVxdWVzdHMiLCJ0b0xvd2VyQ2FzZSIsImJvZHkiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJjb250ZW50VHlwZSIsImdldCIsImlzSlNPTiIsImluZGV4T2YiLCJqc29uIiwic3RhdHVzIiwiZGVzdGluYXRpb24iLCJwYXRobmFtZSIsIm1lc3NhZ2UiLCJwdXNoIiwic3VjY2VzcyIsImF1dG9DbG9zZSIsImVycm9ycyIsImZpZWxkRXJyb3JzIiwibm9uRmllbGRFcnJvcnMiLCJyZWR1Y2UiLCJmaWVsZEVycnMiLCJub25GaWVsZEVycnMiLCJlcnIiLCJuZXdGaWVsZEVycnMiLCJuZXdOb25GaWVsZEVycnMiLCJkYXRhRXJyb3IiLCJlcnJvck1lc3NhZ2VzIiwidHJhdmVyc2VSb3dDb25maWdzIiwiUmVhY3QiLCJmaWVsZENvbmZpZyIsInBhdGhQcmVmaXgiLCJjb25maWdNYXAiLCJidWlsZEZpZWxkU2NoZW1hTWFwIiwicGF0aFNlZ21lbnQiLCJpc051bWJlciIsInBhcnNlSW50IiwicGFyZW50RmllbGRQYXRoIiwicmVtYWluaW5nUGF0aCIsImFycmF5RmllbGRQYXRoIiwicGFyZW50QXJyYXlGaWVsZCIsImdldEZpZWxkIiwicm93RmllbGQiLCJibG9ja1R5cGUiLCJibG9ja0NvbmZpZyIsIkVycm9yIiwiZ2V0Um93Q29uZmlnQnlQYXRoIiwicm93Q29uZmlnIiwicm93RmllbGRDb25maWdzIiwiZmllbGRLZXkiLCJhdCIsImFkZEZpZWxkUm93IiwicHJlZmVyZW5jZXMiLCJzdWJGaWVsZFN0YXRlIiwiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJmaWVsZFNjaGVtYSIsInJlbW92ZUZpZWxkUm93IiwicmVwbGFjZUZpZWxkUm93IiwiZ2V0RmllbGRzIiwiZ2V0U2libGluZ0RhdGFGdW5jIiwiZ2V0RGF0YUJ5UGF0aCIsImdldERhdGFCeVBhdGhGdW5jIiwiZmlsZSIsImRhdGFXaXRoT3ZlcnJpZGVzIiwiZGF0YVRvU2VyaWFsaXplIiwiX3BheWxvYWQiLCJKU09OIiwic3RyaW5naWZ5Iiwic2VyaWFsaXplIiwiaW5kaWNlcyIsIm51bGxzQXNVbmRlZmluZWRzIiwicmVzZXQiLCJpbml0Q29udGV4dFN0YXRlIiwicmVwbGFjZVN0YXRlIiwidXNlRWZmZWN0IiwiYnVpbHRTdGF0ZSIsInVzZVRocm90dGxlZEVmZmVjdCIsImNsYXNzZXMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiZm9ybSIsIm5vVmFsaWRhdGUiLCJyZWYiLCJGb3JtQ29udGV4dCIsIlByb3ZpZGVyIiwiRm9ybVdhdGNoQ29udGV4dCIsIlN1Ym1pdHRlZENvbnRleHQiLCJQcm9jZXNzaW5nQ29udGV4dCIsIk1vZGlmaWVkQ29udGV4dCIsIkZvcm1GaWVsZHNDb250ZXh0IiwiV2F0Y2hGb3JtRXJyb3JzIl0sIm1hcHBpbmdzIjoiQUFBQSxrRUFBa0U7Ozs7K0JBc3FCbEU7OztlQUFBOzs7a0VBcnFCd0I7a0NBQ0U7K0RBQ2tEOzhCQUM3QztnQ0FDSjsrQkFDTDswQkFhRzs4QkFDSTt3Q0FDVTs2REFDdEI7cUJBQ1E7MkVBQ007c0JBQ1A7d0JBQ0U7OEJBQ007d0JBQ047bUNBQ0c7aUNBQ0c7cUNBQ0k7MEVBQ047NkVBQ0c7eUJBUTFCO3NFQUNtQjs4QkFDRztzRUFDQzt1RUFDQzt5RUFDRjs2RUFDSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWpDLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsT0FBd0IsQ0FBQ0M7SUFDN0IsTUFBTSxFQUNKQyxNQUFNLEVBQ05DLFFBQVEsRUFDUkMsU0FBUyxFQUNU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
665
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQgaXNEZWVwRXF1YWwgZnJvbSAnZGVlcC1lcXVhbCdcbmltcG9ydCB7IHNlcmlhbGl6ZSB9IGZyb20gJ29iamVjdC10by1mb3JtZGF0YSdcbmltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWR1Y2VyLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcbmltcG9ydCB7IHRvYXN0IH0gZnJvbSAncmVhY3QtdG9hc3RpZnknXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBDb250ZXh0LFxuICBGaWVsZHMsXG4gIENvbnRleHQgYXMgRm9ybUNvbnRleHRUeXBlLFxuICBHZXREYXRhQnlQYXRoLFxuICBQcm9wcyxcbiAgUm93LFxuICBTdWJtaXRPcHRpb25zLFxufSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBpc051bWJlciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9pc051bWJlcidcbmltcG9ydCB7IHNldHNBcmVFcXVhbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9zZXRzQXJlRXF1YWwnXG5pbXBvcnQgeyBzcGxpdFBhdGhCeUFycmF5RmllbGRzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL3NwbGl0UGF0aEJ5QXJyYXlGaWVsZHMnXG5pbXBvcnQgd2FpdCBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXRpZXMvd2FpdCdcbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vLi4vLi4vYXBpJ1xuaW1wb3J0IHVzZVRocm90dGxlZEVmZmVjdCBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgdXNlRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9Mb2NhbGUnXG5pbXBvcnQgeyB1c2VPcGVyYXRpb24gfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvT3BlcmF0aW9uUHJvdmlkZXInXG5pbXBvcnQgeyBXYXRjaEZvcm1FcnJvcnMgfSBmcm9tICcuL1dhdGNoRm9ybUVycm9ycydcbmltcG9ydCB7IGJ1aWxkRmllbGRTY2hlbWFNYXAgfSBmcm9tICcuL2J1aWxkRmllbGRTY2hlbWFNYXAnXG5pbXBvcnQgYnVpbGRJbml0aWFsU3RhdGUgZnJvbSAnLi9idWlsZEluaXRpYWxTdGF0ZSdcbmltcG9ydCBidWlsZFN0YXRlRnJvbVNjaGVtYSBmcm9tICcuL2J1aWxkU3RhdGVGcm9tU2NoZW1hJ1xuaW1wb3J0IHtcbiAgRm9ybUNvbnRleHQsXG4gIEZvcm1GaWVsZHNDb250ZXh0LFxuICBGb3JtV2F0Y2hDb250ZXh0LFxuICBNb2RpZmllZENvbnRleHQsXG4gIFByb2Nlc3NpbmdDb250ZXh0LFxuICBTdWJtaXR0ZWRDb250ZXh0LFxufSBmcm9tICcuL2NvbnRleHQnXG5pbXBvcnQgZXJyb3JNZXNzYWdlcyBmcm9tICcuL2Vycm9yTWVzc2FnZXMnXG5pbXBvcnQgeyBmaWVsZFJlZHVjZXIgfSBmcm9tICcuL2ZpZWxkUmVkdWNlcidcbmltcG9ydCBnZXREYXRhQnlQYXRoRnVuYyBmcm9tICcuL2dldERhdGFCeVBhdGgnXG5pbXBvcnQgZ2V0U2libGluZ0RhdGFGdW5jIGZyb20gJy4vZ2V0U2libGluZ0RhdGEnXG5pbXBvcnQgaW5pdENvbnRleHRTdGF0ZSBmcm9tICcuL2luaXRDb250ZXh0U3RhdGUnXG5pbXBvcnQgcmVkdWNlRmllbGRzVG9WYWx1ZXMgZnJvbSAnLi9yZWR1Y2VGaWVsZHNUb1ZhbHVlcydcblxuY29uc3QgYmFzZUNsYXNzID0gJ2Zvcm0nXG5cbmNvbnN0IEZvcm06IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYWN0aW9uLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBkaXNhYmxlU3VjY2Vzc1N0YXR1cyxcbiAgICBkaXNhYmxlZCxcbiAgICBoYW5kbGVSZXNwb25zZSxcbiAgICBpbml0aWFsRGF0YSwgLy8gdmFsdWVzIG9ubHksIHBhdGhzIGFyZSByZXF1aXJlZCBhcyBrZXkgLSBmb3JtIHNob3VsZCBidWlsZCBpbml0aWFsIHN0YXRlIGFzIGNvbnZlbmllbmNlXG4gICAgaW5pdGlhbFN0YXRlLCAvLyBmdWxseSBmb3JtZWQgaW5pdGlhbCBmaWVsZCBzdGF0ZVxuICAgIG1ldGhvZCxcbiAgICBvblN1Ym1pdCxcbiAgICBvblN1Y2Nlc3MsXG4gICAgcmVkaXJlY3QsXG4gICAgc3VibWl0dGVkOiBzdWJtaXR0ZWRGcm9tUHJvcHMsXG4gICAgd2FpdEZvckF1dG9jb21wbGV0ZSxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKVxuICBjb25zdCB7IGNvZGU6IGxvY2FsZSB9ID0gdXNlTG9jYWxlKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZ2VuZXJhbCcpXG4gIGNvbnN0IHsgcmVmcmVzaENvb2tpZSwgdXNlciB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgaWQsIGNvbGxlY3Rpb24sIGdldERvY1ByZWZlcmVuY2VzLCBnbG9iYWwgfSA9IHVzZURvY3VtZW50SW5mbygpXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHVzZU9wZXJhdGlvbigpXG5cbiAgY29uc3QgY29uZmlnID0gdXNlQ29uZmlnKClcblxuICBjb25zdCBbbW9kaWZpZWQsIHNldE1vZGlmaWVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbcHJvY2Vzc2luZywgc2V0UHJvY2Vzc2luZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW3N1Ym1pdHRlZCwgc2V0U3VibWl0dGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZm9ybWF0dGVkSW5pdGlhbERhdGEsIHNldEZvcm1hdHRlZEluaXRpYWxEYXRhXSA9IHVzZVN0YXRlKGJ1aWxkSW5pdGlhbFN0YXRlKGluaXRpYWxEYXRhKSlcblxuICBjb25zdCBmb3JtUmVmID0gdXNlUmVmPEhUTUxGb3JtRWxlbWVudD4obnVsbClcbiAgY29uc3QgY29udGV4dFJlZiA9IHVzZVJlZih7fSBhcyBGb3JtQ29udGV4dFR5cGUpXG5cbiAgbGV0IGluaXRpYWxGaWVsZFN0YXRlID0ge31cblxuICBpZiAoZm9ybWF0dGVkSW5pdGlhbERhdGEpIGluaXRpYWxGaWVsZFN0YXRlID0gZm9ybWF0dGVkSW5pdGlhbERhdGFcbiAgaWYgKGluaXRpYWxTdGF0ZSkgaW5pdGlhbEZpZWxkU3RhdGUgPSBpbml0aWFsU3RhdGVcblxuICBjb25zdCBmaWVsZHNSZWR1Y2VyID0gdXNlUmVkdWNlcihmaWVsZFJlZHVjZXIsIHt9LCAoKSA9PiBpbml0aWFsRmllbGRTdGF0ZSlcbiAgY29uc3QgW2ZpZWxkcywgZGlzcGF0Y2hGaWVsZHNdID0gZmllbGRzUmVkdWNlclxuXG4gIGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMgPSBmaWVsZHNcbiAgY29udGV4dFJlZi5jdXJyZW50LmRpc3BhdGNoRmllbGRzID0gZGlzcGF0Y2hGaWVsZHNcblxuICAvLyBCdWlsZCBhIGN1cnJlbnQgc2V0IG9mIGNoaWxkIGVycm9ycyBmb3IgYWxsIHJvd3MgaW4gZm9ybSBzdGF0ZVxuICBjb25zdCBidWlsZFJvd0Vycm9ycyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBjb25zdCBleGlzdGluZ0ZpZWxkUm93czogeyBbcGF0aDogc3RyaW5nXTogUm93W10gfSA9IHt9XG4gICAgY29uc3QgbmV3RmllbGRSb3dzOiB7IFtwYXRoOiBzdHJpbmddOiBSb3dbXSB9ID0ge31cblxuICAgIE9iamVjdC5lbnRyaWVzKGZpZWxkcykuZm9yRWFjaCgoW3BhdGgsIGZpZWxkXSkgPT4ge1xuICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gc3BsaXRQYXRoQnlBcnJheUZpZWxkcyhwYXRoKVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBmaWVsZFBhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoMCwgaSArIDEpLmpvaW4oJy4nKVxuICAgICAgICBjb25zdCBmb3JtRmllbGQgPSBmaWVsZHM/LltmaWVsZFBhdGhdXG5cbiAgICAgICAgLy8gSXMgdGhpcyBhbiBhcnJheSBvciBibG9ja3MgZmllbGQ/XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZvcm1GaWVsZD8ucm93cykpIHtcbiAgICAgICAgICAvLyBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBleGlzdGluZyByb3cgc3RhdGVcbiAgICAgICAgICBleGlzdGluZ0ZpZWxkUm93c1tmaWVsZFBhdGhdID0gZm9ybUZpZWxkLnJvd3NcblxuICAgICAgICAgIC8vIEEgbmV3IHJvdyBzdGF0ZSB3aWxsIGJlIHVzZWQgdG8gY29tcGFyZVxuICAgICAgICAgIC8vIGFnYWluc3QgdGhlIG9sZCBzdGF0ZSBsYXRlcixcbiAgICAgICAgICAvLyB0byBzZWUgaWYgd2UgbmVlZCB0byBkaXNwYXRjaCBhbiB1cGRhdGVcbiAgICAgICAgICBpZiAoIW5ld0ZpZWxkUm93c1tmaWVsZFBhdGhdKSB7XG4gICAgICAgICAgICBuZXdGaWVsZFJvd3NbZmllbGRQYXRoXSA9IGZvcm1GaWVsZC5yb3dzLm1hcCgoZXhpc3RpbmdSb3cpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmV4aXN0aW5nUm93LFxuICAgICAgICAgICAgICBjaGlsZEVycm9yUGF0aHM6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJvd0luZGV4ID0gcGF0aFNlZ21lbnRzW2kgKyAxXVxuICAgICAgICAgIGNvbnN0IGNoaWxkRmllbGRQYXRoID0gcGF0aFNlZ21lbnRzLnNsaWNlKGkgKyAxKS5qb2luKCcuJylcblxuICAgICAgICAgIGlmIChmaWVsZC52YWxpZCA9PT0gZmFsc2UgJiYgY2hpbGRGaWVsZFBhdGgpIHtcbiAgICAgICAgICAgIG5ld0ZpZWxkUm93c1tmaWVsZFBhdGhdW3Jvd0luZGV4XS5jaGlsZEVycm9yUGF0aHMuYWRkKGAke2ZpZWxkUGF0aH0uJHtjaGlsZEZpZWxkUGF0aH1gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG5cbiAgICAvLyBOb3cgbG9vcCBvdmVyIGFsbCBmaWVsZHMgd2l0aCByb3dzIC1cbiAgICAvLyBpZiBhbnl0aGluZyBjaGFuZ2VkLCBkaXNwYXRjaCBhbiB1cGRhdGUgZm9yIHRoZSBmaWVsZFxuICAgIC8vIHdpdGggdGhlIG5ldyByb3cgc3RhdGVcbiAgICBPYmplY3QuZW50cmllcyhuZXdGaWVsZFJvd3MpLmZvckVhY2goKFtwYXRoLCBuZXdSb3dzXSkgPT4ge1xuICAgICAgY29uc3Qgc3RhdGVNYXRjaGVzID0gbmV3Um93cy5ldmVyeSgobmV3Um93LCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nUm93RXJyb3JQYXRocyA9IGV4aXN0aW5nRmllbGRSb3dzW3BhdGhdW2ldPy5jaGlsZEVycm9yUGF0aHNcbiAgICAgICAgcmV0dXJuIHNldHNBcmVFcXVhbChuZXdSb3cuY2hpbGRFcnJvclBhdGhzLCBleGlzdGluZ1Jvd0Vycm9yUGF0aHMpXG4gICAgICB9KVxuXG4gICAgICBpZiAoIXN0YXRlTWF0Y2hlcykge1xuICAgICAgICBkaXNwYXRjaEZpZWxkcyh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByb3dzOiBuZXdSb3dzLFxuICAgICAgICAgIHR5cGU6ICdVUERBVEUnLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0pXG4gIH0sIFtmaWVsZHMsIGRpc3BhdGNoRmllbGRzXSlcblxuICBjb25zdCB2YWxpZGF0ZUZvcm0gPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdmFsaWRhdGVkRmllbGRTdGF0ZSA9IHt9XG4gICAgbGV0IGlzVmFsaWQgPSB0cnVlXG4gICAgY29uc3QgZGF0YSA9IGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhKClcblxuICAgIGNvbnN0IHZhbGlkYXRpb25Qcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMpLm1hcChcbiAgICAgIGFzeW5jIChbcGF0aCwgZmllbGRdKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRlZEZpZWxkID0ge1xuICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICAgIHZhbGlkOiB0cnVlLFxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkLnBhc3Nlc0NvbmRpdGlvbiAhPT0gZmFsc2UpIHtcbiAgICAgICAgICBsZXQgdmFsaWRhdGlvblJlc3VsdDogYm9vbGVhbiB8IHN0cmluZyA9IHRydWVcblxuICAgICAgICAgIGlmICh0eXBlb2YgZmllbGQudmFsaWRhdGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCBmaWVsZC52YWxpZGF0ZShmaWVsZC52YWx1ZSwge1xuICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0U2libGluZ0RhdGEocGF0aCksXG4gICAgICAgICAgICAgIHQsXG4gICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsaWRhdGlvblJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlZEZpZWxkLmVycm9yTWVzc2FnZSA9IHZhbGlkYXRpb25SZXN1bHRcbiAgICAgICAgICAgIHZhbGlkYXRlZEZpZWxkLnZhbGlkID0gZmFsc2VcbiAgICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhbGlkYXRlZEZpZWxkU3RhdGVbcGF0aF0gPSB2YWxpZGF0ZWRGaWVsZFxuICAgICAgfSxcbiAgICApXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh2YWxpZGF0aW9uUHJvbWlzZXMpXG5cbiAgICBpZiAoIWlzRGVlcEVxdWFsKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHZhbGlkYXRlZEZpZWxkU3RhdGUpKSB7XG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHN0YXRlOiB2YWxpZGF0ZWRGaWVsZFN0YXRlLCB0eXBlOiAnUkVQTEFDRV9TVEFURScgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gaXNWYWxpZFxuICB9LCBbY29udGV4dFJlZiwgaWQsIHVzZXIsIG9wZXJhdGlvbiwgdCwgZGlzcGF0Y2hGaWVsZHMsIGNvbmZpZ10pXG5cbiAgY29uc3Qgc3VibWl0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKG9wdGlvbnM6IFN1Ym1pdE9wdGlvbnMgPSB7fSwgZSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBhY3Rpb246IGFjdGlvblRvVXNlID0gYWN0aW9uLFxuICAgICAgICBtZXRob2Q6IG1ldGhvZFRvVXNlID0gbWV0aG9kLFxuICAgICAgICBvdmVycmlkZXMgPSB7fSxcbiAgICAgICAgc2tpcFZhbGlkYXRpb24sXG4gICAgICB9ID0gb3B0aW9uc1xuXG4gICAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgaWYgKGUpIHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIH1cblxuICAgICAgc2V0UHJvY2Vzc2luZyh0cnVlKVxuXG4gICAgICBpZiAod2FpdEZvckF1dG9jb21wbGV0ZSkgYXdhaXQgd2FpdCgxMDApXG5cbiAgICAgIGNvbnN0IGlzVmFsaWQgPSBza2lwVmFsaWRhdGlvbiA/IHRydWUgOiBhd2FpdCBjb250ZXh0UmVmLmN1cnJlbnQudmFsaWRhdGVGb3JtKClcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudC5idWlsZFJvd0Vycm9ycygpXG5cbiAgICAgIGlmICghc2tpcFZhbGlkYXRpb24pIHNldFN1Ym1pdHRlZCh0cnVlKVxuXG4gICAgICAvLyBJZiBub3QgdmFsaWQsIHByZXZlbnQgc3VibWlzc2lvblxuICAgICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICAgIHRvYXN0LmVycm9yKHQoJ2Vycm9yOmNvcnJlY3RJbnZhbGlkRmllbGRzJykpXG4gICAgICAgIHNldFByb2Nlc3NpbmcoZmFsc2UpXG5cbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHN1Ym1pdCBoYW5kbGVyIGNvbWVzIHRocm91Z2ggdmlhIHByb3BzLCBydW4gdGhhdFxuICAgICAgaWYgKG9uU3VibWl0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgLi4ucmVkdWNlRmllbGRzVG9WYWx1ZXMoZmllbGRzLCB0cnVlKSxcbiAgICAgICAgICAuLi5vdmVycmlkZXMsXG4gICAgICAgIH1cblxuICAgICAgICBvblN1Ym1pdChmaWVsZHMsIGRhdGEpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZvcm1EYXRhID0gY29udGV4dFJlZi5jdXJyZW50LmNyZWF0ZUZvcm1EYXRhKG92ZXJyaWRlcylcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgcmVxdWVzdHNbbWV0aG9kVG9Vc2UudG9Mb3dlckNhc2UoKV0oYWN0aW9uVG9Vc2UsIHtcbiAgICAgICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuXG4gICAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuXG4gICAgICAgIGlmICh0eXBlb2YgaGFuZGxlUmVzcG9uc2UgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBoYW5kbGVSZXNwb25zZShyZXMpXG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cblxuICAgICAgICBzZXRQcm9jZXNzaW5nKGZhbHNlKVxuXG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzLmhlYWRlcnMuZ2V0KCdjb250ZW50LXR5cGUnKVxuICAgICAgICBjb25zdCBpc0pTT04gPSBjb250ZW50VHlwZSAmJiBjb250ZW50VHlwZS5pbmRleE9mKCdhcHBsaWNhdGlvbi9qc29uJykgIT09IC0xXG5cbiAgICAgICAgbGV0IGpzb246IGFueSA9IHt9XG5cbiAgICAgICAgaWYgKGlzSlNPTikganNvbiA9IGF3YWl0IHJlcy5qc29uKClcblxuICAgICAgICBpZiAocmVzLnN0YXR1cyA8IDQwMCkge1xuICAgICAgICAgIHNldFN1Ym1pdHRlZChmYWxzZSlcblxuICAgICAgICAgIGlmICh0eXBlb2Ygb25TdWNjZXNzID09PSAnZnVuY3Rpb24nKSBvblN1Y2Nlc3MoanNvbilcblxuICAgICAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICAgICAgY29uc3QgZGVzdGluYXRpb24gPSB7XG4gICAgICAgICAgICAgIHBhdGhuYW1lOiByZWRpcmVjdCxcbiAgICAgICAgICAgICAgc3RhdGU6IHt9LFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodHlwZW9mIGpzb24gPT09ICdvYmplY3QnICYmIGpzb24ubWVzc2FnZSAmJiAhZGlzYWJsZVN1Y2Nlc3NTdGF0dXMpIHtcbiAgICAgICAgICAgICAgZGVzdGluYXRpb24uc3RhdGUgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGpzb24ubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGhpc3RvcnkucHVzaChkZXN0aW5hdGlvbilcbiAgICAgICAgICB9IGVsc2UgaWYgKCFkaXNhYmxlU3VjY2Vzc1N0YXR1cykge1xuICAgICAgICAgICAgdG9hc3Quc3VjY2Vzcyhqc29uLm1lc3NhZ2UgfHwgdCgnc3VibWlzc2lvblN1Y2Nlc3NmdWwnKSwgeyBhdXRvQ2xvc2U6IDMwMDAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5jb250ZXh0UmVmLmN1cnJlbnQgfSAvLyB0cmlnZ2VycyByZXJlbmRlciBvZiBhbGwgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZSB0byBmb3JtXG5cbiAgICAgICAgICBpZiAoanNvbi5tZXNzYWdlKSB7XG4gICAgICAgICAgICB0b2FzdC5lcnJvcihqc29uLm1lc3NhZ2UpXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGpzb24uZXJyb3JzKSkge1xuICAgICAgICAgICAgY29uc3QgW2ZpZWxkRXJyb3JzLCBub25GaWVsZEVycm9yc10gPSBqc29uLmVycm9ycy5yZWR1Y2UoXG4gICAgICAgICAgICAgIChbZmllbGRFcnJzLCBub25GaWVsZEVycnNdLCBlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWVsZEVycnMgPSBbXVxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld05vbkZpZWxkRXJycyA9IFtdXG5cbiAgICAgICAgICAgICAgICBpZiAoZXJyPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICBuZXdOb25GaWVsZEVycnMucHVzaChlcnIpXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZXJyPy5kYXRhKSkge1xuICAgICAgICAgICAgICAgICAgZXJyLmRhdGEuZm9yRWFjaCgoZGF0YUVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhRXJyb3I/LmZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgbmV3RmllbGRFcnJzLnB1c2goZGF0YUVycm9yKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG5ld05vbkZpZWxkRXJycy5wdXNoKGRhdGFFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgWy4uLmZpZWxkRXJycywgLi4ubmV3RmllbGRFcnJzXSxcbiAgICAgICAgICAgICAgICAgIFsuLi5ub25GaWVsZEVycnMsIC4uLm5ld05vbkZpZWxkRXJyc10sXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBbW10sIFtdXSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgZmllbGRFcnJvcnMuZm9yRWFjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnVVBEQVRFJyxcbiAgICAgICAgICAgICAgICAuLi4oY29udGV4dFJlZi5jdXJyZW50Py5maWVsZHM/LltlcnIuZmllbGRdIHx8IHt9KSxcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U6IGVyci5tZXNzYWdlLFxuICAgICAgICAgICAgICAgIHBhdGg6IGVyci5maWVsZCxcbiAgICAgICAgICAgICAgICB2YWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBub25GaWVsZEVycm9ycy5mb3JFYWNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgdG9hc3QuZXJyb3IoZXJyLm1lc3NhZ2UgfHwgdCgnZXJyb3I6dW5rbm93bicpKVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yTWVzc2FnZXNbcmVzLnN0YXR1c10gfHwgdCgnZXJyb3I6dW5rbm93bicpXG5cbiAgICAgICAgICB0b2FzdC5lcnJvcihtZXNzYWdlKVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgc2V0UHJvY2Vzc2luZyhmYWxzZSlcblxuICAgICAgICB0b2FzdC5lcnJvcihlcnIpXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBhY3Rpb24sXG4gICAgICBkaXNhYmxlU3VjY2Vzc1N0YXR1cyxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgZGlzcGF0Y2hGaWVsZHMsXG4gICAgICBmaWVsZHMsXG4gICAgICBoYW5kbGVSZXNwb25zZSxcbiAgICAgIGhpc3RvcnksXG4gICAgICBtZXRob2QsXG4gICAgICBvblN1Ym1pdCxcbiAgICAgIG9uU3VjY2VzcyxcbiAgICAgIHJlZGlyZWN0LFxuICAgICAgdCxcbiAgICAgIGkxOG4sXG4gICAgICB3YWl0Rm9yQXV0b2NvbXBsZXRlLFxuICAgIF0sXG4gIClcblxuICBjb25zdCB0cmF2ZXJzZVJvd0NvbmZpZ3MgPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoe1xuICAgICAgZmllbGRDb25maWcsXG4gICAgICBwYXRoLFxuICAgICAgcGF0aFByZWZpeCxcbiAgICB9OiB7XG4gICAgICBmaWVsZENvbmZpZzogRmllbGRbXVxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgICBwYXRoUHJlZml4Pzogc3RyaW5nXG4gICAgfSkgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gZmllbGRDb25maWdcbiAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IHNwbGl0UGF0aEJ5QXJyYXlGaWVsZHMocGF0aClcbiAgICAgIGNvbnN0IGNvbmZpZ01hcCA9IGJ1aWxkRmllbGRTY2hlbWFNYXAoY29uZmlnKVxuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICBjb25zdCBwYXRoU2VnbWVudCA9IHBhdGhTZWdtZW50c1tpXVxuXG4gICAgICAgIGlmIChpc051bWJlcihwYXRoU2VnbWVudCkpIHtcbiAgICAgICAgICBjb25zdCByb3dJbmRleCA9IHBhcnNlSW50KHBhdGhTZWdtZW50LCAxMClcbiAgICAgICAgICBjb25zdCBwYXJlbnRGaWVsZFBhdGggPSBwYXRoU2VnbWVudHMuc2xpY2UoMCwgaSkuam9pbignLicpXG4gICAgICAgICAgY29uc3QgcmVtYWluaW5nUGF0aCA9IHBhdGhTZWdtZW50cy5zbGljZShpICsgMSkuam9pbignLicpXG4gICAgICAgICAgY29uc3QgYXJyYXlGaWVsZFBhdGggPSBwYXRoUHJlZml4ID8gYCR7cGF0aFByZWZpeH0uJHtwYXJlbnRGaWVsZFBhdGh9YCA6IHBhcmVudEZpZWxkUGF0aFxuICAgICAgICAgIGNvbnN0IHBhcmVudEFycmF5RmllbGQgPSBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RmllbGQoYXJyYXlGaWVsZFBhdGgpXG4gICAgICAgICAgY29uc3Qgcm93RmllbGQgPSBwYXJlbnRBcnJheUZpZWxkLnJvd3Nbcm93SW5kZXhdXG5cbiAgICAgICAgICBpZiAocm93RmllbGQuYmxvY2tUeXBlKSB7XG4gICAgICAgICAgICBjb25zdCBibG9ja0NvbmZpZyA9IGNvbmZpZ01hcC5nZXQoYCR7cGFyZW50RmllbGRQYXRofS4ke3Jvd0ZpZWxkLmJsb2NrVHlwZX1gKVxuICAgICAgICAgICAgaWYgKGJsb2NrQ29uZmlnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVJvd0NvbmZpZ3Moe1xuICAgICAgICAgICAgICAgIGZpZWxkQ29uZmlnOiBibG9ja0NvbmZpZyxcbiAgICAgICAgICAgICAgICBwYXRoOiByZW1haW5pbmdQYXRoLFxuICAgICAgICAgICAgICAgIHBhdGhQcmVmaXg6IGAke2FycmF5RmllbGRQYXRofS4ke3Jvd0luZGV4fWAsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQmxvY2sgY29uZmlnIG5vdCBmb3VuZCBmb3IgJHtyb3dGaWVsZC5ibG9ja1R5cGV9IGF0IHBhdGggJHtwYXRofWApXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVJvd0NvbmZpZ3Moe1xuICAgICAgICAgICAgICBmaWVsZENvbmZpZzogY29uZmlnTWFwLmdldChwYXJlbnRGaWVsZFBhdGgpLFxuICAgICAgICAgICAgICBwYXRoOiByZW1haW5pbmdQYXRoLFxuICAgICAgICAgICAgICBwYXRoUHJlZml4OiBgJHthcnJheUZpZWxkUGF0aH0uJHtyb3dJbmRleH1gLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgIH0sXG4gICAgW10sXG4gIClcblxuICBjb25zdCBnZXRSb3dTY2hlbWFCeVBhdGggPSBSZWFjdC51c2VDYWxsYmFjayhcbiAgICAoeyBibG9ja1R5cGUsIHBhdGggfTogeyBibG9ja1R5cGU/OiBzdHJpbmc7IHBhdGg6IHN0cmluZyB9KSA9PiB7XG4gICAgICBjb25zdCByb3dDb25maWcgPSB0cmF2ZXJzZVJvd0NvbmZpZ3Moe1xuICAgICAgICBmaWVsZENvbmZpZzogY29sbGVjdGlvbj8uZmllbGRzIHx8IGdsb2JhbD8uZmllbGRzLFxuICAgICAgICBwYXRoLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IHJvd0ZpZWxkQ29uZmlncyA9IGJ1aWxkRmllbGRTY2hlbWFNYXAocm93Q29uZmlnKVxuICAgICAgY29uc3QgcGF0aFNlZ21lbnRzID0gc3BsaXRQYXRoQnlBcnJheUZpZWxkcyhwYXRoKVxuICAgICAgY29uc3QgZmllbGRLZXkgPSBwYXRoU2VnbWVudHMuYXQoLTEpXG4gICAgICByZXR1cm4gcm93RmllbGRDb25maWdzLmdldChibG9ja1R5cGUgPyBgJHtmaWVsZEtleX0uJHtibG9ja1R5cGV9YCA6IGZpZWxkS2V5KVxuICAgIH0sXG4gICAgW3RyYXZlcnNlUm93Q29uZmlncywgY29sbGVjdGlvbj8uZmllbGRzLCBnbG9iYWw/LmZpZWxkc10sXG4gIClcblxuICAvLyBBcnJheS9CbG9jayByb3cgbWFuaXB1bGF0aW9uXG4gIGNvbnN0IGFkZEZpZWxkUm93OiBDb250ZXh0WydhZGRGaWVsZFJvdyddID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKHsgZGF0YSwgcGF0aCwgcm93SW5kZXggfSkgPT4ge1xuICAgICAgY29uc3QgcHJlZmVyZW5jZXMgPSBhd2FpdCBnZXREb2NQcmVmZXJlbmNlcygpXG4gICAgICBjb25zdCByb3dTY2hlbWEgPSBnZXRSb3dTY2hlbWFCeVBhdGgoe1xuICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgcGF0aCxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChyb3dTY2hlbWEpIHtcbiAgICAgICAgY29uc3Qgc3ViRmllbGRTdGF0ZSA9IGF3YWl0IGJ1aWxkU3RhdGVGcm9tU2NoZW1hKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBmaWVsZFNjaGVtYTogcm93U2NoZW1hLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgcHJlZmVyZW5jZXMsXG4gICAgICAgICAgdCxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICB9KVxuXG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgIHN1YkZpZWxkU3RhdGUsXG4gICAgICAgICAgdHlwZTogJ0FERF9ST1cnLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzLCBnZXREb2NQcmVmZXJlbmNlcywgaWQsIHVzZXIsIG9wZXJhdGlvbiwgbG9jYWxlLCB0LCBnZXRSb3dTY2hlbWFCeVBhdGgsIGNvbmZpZ10sXG4gIClcblxuICBjb25zdCByZW1vdmVGaWVsZFJvdzogQ29udGV4dFsncmVtb3ZlRmllbGRSb3cnXSA9IHVzZUNhbGxiYWNrKFxuICAgICh7IHBhdGgsIHJvd0luZGV4IH0pID0+IHtcbiAgICAgIGRpc3BhdGNoRmllbGRzKHsgcGF0aCwgcm93SW5kZXgsIHR5cGU6ICdSRU1PVkVfUk9XJyB9KVxuICAgIH0sXG4gICAgW2Rpc3BhdGNoRmllbGRzXSxcbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VGaWVsZFJvdzogQ29udGV4dFsncmVwbGFjZUZpZWxkUm93J10gPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoeyBkYXRhLCBwYXRoLCByb3dJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHJvd1NjaGVtYSA9IGdldFJvd1NjaGVtYUJ5UGF0aCh7XG4gICAgICAgIGJsb2NrVHlwZTogZGF0YT8uYmxvY2tUeXBlLFxuICAgICAgICBwYXRoLFxuICAgICAgfSlcblxuICAgICAgaWYgKHJvd1NjaGVtYSkge1xuICAgICAgICBjb25zdCBzdWJGaWVsZFN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkU2NoZW1hOiByb3dTY2hlbWEsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICBwcmVmZXJlbmNlcyxcbiAgICAgICAgICB0LFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgIH0pXG4gICAgICAgIGRpc3BhdGNoRmllbGRzKHtcbiAgICAgICAgICBibG9ja1R5cGU6IGRhdGE/LmJsb2NrVHlwZSxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIHJvd0luZGV4LFxuICAgICAgICAgIHN1YkZpZWxkU3RhdGUsXG4gICAgICAgICAgdHlwZTogJ1JFUExBQ0VfUk9XJyxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkaXNwYXRjaEZpZWxkcywgZ2V0RG9jUHJlZmVyZW5jZXMsIGlkLCB1c2VyLCBvcGVyYXRpb24sIGxvY2FsZSwgdCwgZ2V0Um93U2NoZW1hQnlQYXRoLCBjb25maWddLFxuICApXG5cbiAgY29uc3QgZ2V0RmllbGRzID0gdXNlQ2FsbGJhY2soKCkgPT4gY29udGV4dFJlZi5jdXJyZW50LmZpZWxkcywgW2NvbnRleHRSZWZdKVxuICBjb25zdCBnZXRGaWVsZCA9IHVzZUNhbGxiYWNrKChwYXRoOiBzdHJpbmcpID0+IGNvbnRleHRSZWYuY3VycmVudC5maWVsZHNbcGF0aF0sIFtjb250ZXh0UmVmXSlcbiAgY29uc3QgZ2V0RGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IHJlZHVjZUZpZWxkc1RvVmFsdWVzKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHRydWUpLFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuICBjb25zdCBnZXRTaWJsaW5nRGF0YSA9IHVzZUNhbGxiYWNrKFxuICAgIChwYXRoOiBzdHJpbmcpID0+IGdldFNpYmxpbmdEYXRhRnVuYyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCBwYXRoKSxcbiAgICBbY29udGV4dFJlZl0sXG4gIClcbiAgY29uc3QgZ2V0RGF0YUJ5UGF0aCA9IHVzZUNhbGxiYWNrPEdldERhdGFCeVBhdGg+KFxuICAgIChwYXRoOiBzdHJpbmcpID0+IGdldERhdGFCeVBhdGhGdW5jKGNvbnRleHRSZWYuY3VycmVudC5maWVsZHMsIHBhdGgpLFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuXG4gIGNvbnN0IGNyZWF0ZUZvcm1EYXRhID0gdXNlQ2FsbGJhY2soXG4gICAgKG92ZXJyaWRlczogYW55ID0ge30pID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSByZWR1Y2VGaWVsZHNUb1ZhbHVlcyhjb250ZXh0UmVmLmN1cnJlbnQuZmllbGRzLCB0cnVlKVxuXG4gICAgICBjb25zdCBmaWxlID0gZGF0YT8uZmlsZVxuXG4gICAgICBpZiAoZmlsZSkge1xuICAgICAgICBkZWxldGUgZGF0YS5maWxlXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFXaXRoT3ZlcnJpZGVzID0ge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICAuLi5vdmVycmlkZXMsXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRhdGFUb1NlcmlhbGl6ZSA9IHtcbiAgICAgICAgX3BheWxvYWQ6IEpTT04uc3RyaW5naWZ5KGRhdGFXaXRoT3ZlcnJpZGVzKSxcbiAgICAgICAgZmlsZSxcbiAgICAgIH1cblxuICAgICAgLy8gbnVsbEFzVW5kZWZpbmVkcyBpcyBpbXBvcnRhbnQgdG8gYWxsb3cgdXBsb2FkcyBhbmQgcmVsYXRpb25zaGlwIGZpZWxkcyB0byBjbGVhciB0aGVtc2VsdmVzXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IHNlcmlhbGl6ZShkYXRhVG9TZXJpYWxpemUsIHsgaW5kaWNlczogdHJ1ZSwgbnVsbHNBc1VuZGVmaW5lZHM6IGZhbHNlIH0pXG4gICAgICByZXR1cm4gZm9ybURhdGFcbiAgICB9LFxuICAgIFtjb250ZXh0UmVmXSxcbiAgKVxuXG4gIGNvbnN0IHJlc2V0ID0gdXNlQ2FsbGJhY2soXG4gICAgYXN5bmMgKGZpZWxkU2NoZW1hOiBGaWVsZFtdLCBkYXRhOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBwcmVmZXJlbmNlcyA9IGF3YWl0IGdldERvY1ByZWZlcmVuY2VzKClcbiAgICAgIGNvbnN0IHN0YXRlID0gYXdhaXQgYnVpbGRTdGF0ZUZyb21TY2hlbWEoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgICBkYXRhLFxuICAgICAgICBmaWVsZFNjaGVtYSxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHByZWZlcmVuY2VzLFxuICAgICAgICB0LFxuICAgICAgICB1c2VyLFxuICAgICAgfSlcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gICAgICBkaXNwYXRjaEZpZWxkcyh7IHN0YXRlLCB0eXBlOiAnUkVQTEFDRV9TVEFURScgfSlcbiAgICB9LFxuICAgIFtpZCwgdXNlciwgb3BlcmF0aW9uLCBsb2NhbGUsIHQsIGRpc3BhdGNoRmllbGRzLCBnZXREb2NQcmVmZXJlbmNlcywgY29uZmlnXSxcbiAgKVxuXG4gIGNvbnN0IHJlcGxhY2VTdGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgIChzdGF0ZTogRmllbGRzKSA9PiB7XG4gICAgICBjb250ZXh0UmVmLmN1cnJlbnQgPSB7IC4uLmluaXRDb250ZXh0U3RhdGUgfSBhcyBGb3JtQ29udGV4dFR5cGVcbiAgICAgIHNldE1vZGlmaWVkKGZhbHNlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZSwgdHlwZTogJ1JFUExBQ0VfU1RBVEUnIH0pXG4gICAgfSxcbiAgICBbZGlzcGF0Y2hGaWVsZHNdLFxuICApXG5cbiAgY29udGV4dFJlZi5jdXJyZW50LnN1Ym1pdCA9IHN1Ym1pdFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RmllbGRzID0gZ2V0RmllbGRzXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXRGaWVsZCA9IGdldEZpZWxkXG4gIGNvbnRleHRSZWYuY3VycmVudC5nZXREYXRhID0gZ2V0RGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0U2libGluZ0RhdGEgPSBnZXRTaWJsaW5nRGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuZ2V0RGF0YUJ5UGF0aCA9IGdldERhdGFCeVBhdGhcbiAgY29udGV4dFJlZi5jdXJyZW50LnZhbGlkYXRlRm9ybSA9IHZhbGlkYXRlRm9ybVxuICBjb250ZXh0UmVmLmN1cnJlbnQuY3JlYXRlRm9ybURhdGEgPSBjcmVhdGVGb3JtRGF0YVxuICBjb250ZXh0UmVmLmN1cnJlbnQuc2V0TW9kaWZpZWQgPSBzZXRNb2RpZmllZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuc2V0UHJvY2Vzc2luZyA9IHNldFByb2Nlc3NpbmdcbiAgY29udGV4dFJlZi5jdXJyZW50LnNldFN1Ym1pdHRlZCA9IHNldFN1Ym1pdHRlZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZGlzYWJsZWQgPSBkaXNhYmxlZFxuICBjb250ZXh0UmVmLmN1cnJlbnQuZm9ybVJlZiA9IGZvcm1SZWZcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlc2V0ID0gcmVzZXRcbiAgY29udGV4dFJlZi5jdXJyZW50LnJlcGxhY2VTdGF0ZSA9IHJlcGxhY2VTdGF0ZVxuICBjb250ZXh0UmVmLmN1cnJlbnQuYnVpbGRSb3dFcnJvcnMgPSBidWlsZFJvd0Vycm9yc1xuICBjb250ZXh0UmVmLmN1cnJlbnQuYWRkRmllbGRSb3cgPSBhZGRGaWVsZFJvd1xuICBjb250ZXh0UmVmLmN1cnJlbnQucmVtb3ZlRmllbGRSb3cgPSByZW1vdmVGaWVsZFJvd1xuICBjb250ZXh0UmVmLmN1cnJlbnQucmVwbGFjZUZpZWxkUm93ID0gcmVwbGFjZUZpZWxkUm93XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHN1Ym1pdHRlZEZyb21Qcm9wcyA9PT0gJ2Jvb2xlYW4nKSBzZXRTdWJtaXR0ZWQoc3VibWl0dGVkRnJvbVByb3BzKVxuICB9LCBbc3VibWl0dGVkRnJvbVByb3BzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsU3RhdGUpIHtcbiAgICAgIGNvbnRleHRSZWYuY3VycmVudCA9IHsgLi4uaW5pdENvbnRleHRTdGF0ZSB9IGFzIEZvcm1Db250ZXh0VHlwZVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZTogaW5pdGlhbFN0YXRlLCB0eXBlOiAnUkVQTEFDRV9TVEFURScgfSlcbiAgICB9XG4gIH0sIFtpbml0aWFsU3RhdGUsIGRpc3BhdGNoRmllbGRzXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpbml0aWFsRGF0YSkge1xuICAgICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5pbml0Q29udGV4dFN0YXRlIH0gYXMgRm9ybUNvbnRleHRUeXBlXG4gICAgICBjb25zdCBidWlsdFN0YXRlID0gYnVpbGRJbml0aWFsU3RhdGUoaW5pdGlhbERhdGEpXG4gICAgICBzZXRGb3JtYXR0ZWRJbml0aWFsRGF0YShidWlsdFN0YXRlKVxuICAgICAgZGlzcGF0Y2hGaWVsZHMoeyBzdGF0ZTogYnVpbHRTdGF0ZSwgdHlwZTogJ1JFUExBQ0VfU1RBVEUnIH0pXG4gICAgfVxuICB9LCBbaW5pdGlhbERhdGEsIGRpc3BhdGNoRmllbGRzXSlcblxuICB1c2VUaHJvdHRsZWRFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgcmVmcmVzaENvb2tpZSgpXG4gICAgfSxcbiAgICAxNTAwMCxcbiAgICBbZmllbGRzXSxcbiAgKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29udGV4dFJlZi5jdXJyZW50ID0geyAuLi5jb250ZXh0UmVmLmN1cnJlbnQgfSAvLyB0cmlnZ2VycyByZXJlbmRlciBvZiBhbGwgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZSB0byBmb3JtXG4gICAgc2V0TW9kaWZpZWQoZmFsc2UpXG4gIH0sIFtsb2NhbGVdKVxuXG4gIGNvbnN0IGNsYXNzZXMgPSBbY2xhc3NOYW1lLCBiYXNlQ2xhc3NdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJylcblxuICByZXR1cm4gKFxuICAgIDxmb3JtXG4gICAgICBhY3Rpb249e2FjdGlvbn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlc31cbiAgICAgIG1ldGhvZD17bWV0aG9kfVxuICAgICAgbm9WYWxpZGF0ZVxuICAgICAgb25TdWJtaXQ9eyhlKSA9PiBjb250ZXh0UmVmLmN1cnJlbnQuc3VibWl0KHt9LCBlKX1cbiAgICAgIHJlZj17Zm9ybVJlZn1cbiAgICA+XG4gICAgICA8Rm9ybUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRSZWYuY3VycmVudH0+XG4gICAgICAgIDxGb3JtV2F0Y2hDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgICAgIC4uLmNvbnRleHRSZWYuY3VycmVudCxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPFN1Ym1pdHRlZENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3N1Ym1pdHRlZH0+XG4gICAgICAgICAgICA8UHJvY2Vzc2luZ0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3Byb2Nlc3Npbmd9PlxuICAgICAgICAgICAgICA8TW9kaWZpZWRDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXttb2RpZmllZH0+XG4gICAgICAgICAgICAgICAgPEZvcm1GaWVsZHNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtmaWVsZHNSZWR1Y2VyfT5cbiAgICAgICAgICAgICAgICAgIDxXYXRjaEZvcm1FcnJvcnMgYnVpbGRSb3dFcnJvcnM9e2J1aWxkUm93RXJyb3JzfSAvPlxuICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgIDwvRm9ybUZpZWxkc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvTW9kaWZpZWRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9Qcm9jZXNzaW5nQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICA8L1N1Ym1pdHRlZENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIDwvRm9ybVdhdGNoQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvRm9ybUNvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9mb3JtPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1cbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJGb3JtIiwicHJvcHMiLCJhY3Rpb24iLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImRpc2FibGVTdWNjZXNzU3RhdHVzIiwiZGlzYWJsZWQiLCJoYW5kbGVSZXNwb25zZSIsImluaXRpYWxEYXRhIiwiaW5pdGlhbFN0YXRlIiwibWV0aG9kIiwib25TdWJtaXQiLCJvblN1Y2Nlc3MiLCJyZWRpcmVjdCIsInN1Ym1pdHRlZCIsInN1Ym1pdHRlZEZyb21Qcm9wcyIsIndhaXRGb3JBdXRvY29tcGxldGUiLCJoaXN0b3J5IiwidXNlSGlzdG9yeSIsImNvZGUiLCJsb2NhbGUiLCJ1c2VMb2NhbGUiLCJpMThuIiwidCIsInVzZVRyYW5zbGF0aW9uIiwicmVmcmVzaENvb2tpZSIsInVzZXIiLCJ1c2VBdXRoIiwiaWQiLCJjb2xsZWN0aW9uIiwiZ2V0RG9jUHJlZmVyZW5jZXMiLCJnbG9iYWwiLCJ1c2VEb2N1bWVudEluZm8iLCJvcGVyYXRpb24iLCJ1c2VPcGVyYXRpb24iLCJjb25maWciLCJ1c2VDb25maWciLCJtb2RpZmllZCIsInNldE1vZGlmaWVkIiwidXNlU3RhdGUiLCJwcm9jZXNzaW5nIiwic2V0UHJvY2Vzc2luZyIsInNldFN1Ym1pdHRlZCIsImZvcm1hdHRlZEluaXRpYWxEYXRhIiwic2V0Rm9ybWF0dGVkSW5pdGlhbERhdGEiLCJidWlsZEluaXRpYWxTdGF0ZSIsImZvcm1SZWYiLCJ1c2VSZWYiLCJjb250ZXh0UmVmIiwiaW5pdGlhbEZpZWxkU3RhdGUiLCJmaWVsZHNSZWR1Y2VyIiwidXNlUmVkdWNlciIsImZpZWxkUmVkdWNlciIsImZpZWxkcyIsImRpc3BhdGNoRmllbGRzIiwiY3VycmVudCIsImJ1aWxkUm93RXJyb3JzIiwidXNlQ2FsbGJhY2siLCJleGlzdGluZ0ZpZWxkUm93cyIsIm5ld0ZpZWxkUm93cyIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwicGF0aCIsImZpZWxkIiwicGF0aFNlZ21lbnRzIiwic3BsaXRQYXRoQnlBcnJheUZpZWxkcyIsImkiLCJsZW5ndGgiLCJmaWVsZFBhdGgiLCJzbGljZSIsImpvaW4iLCJmb3JtRmllbGQiLCJBcnJheSIsImlzQXJyYXkiLCJyb3dzIiwibWFwIiwiZXhpc3RpbmdSb3ciLCJjaGlsZEVycm9yUGF0aHMiLCJTZXQiLCJyb3dJbmRleCIsImNoaWxkRmllbGRQYXRoIiwidmFsaWQiLCJhZGQiLCJuZXdSb3dzIiwic3RhdGVNYXRjaGVzIiwiZXZlcnkiLCJuZXdSb3ciLCJleGlzdGluZ1Jvd0Vycm9yUGF0aHMiLCJzZXRzQXJlRXF1YWwiLCJ0eXBlIiwidmFsaWRhdGVGb3JtIiwidmFsaWRhdGVkRmllbGRTdGF0ZSIsImlzVmFsaWQiLCJkYXRhIiwiZ2V0RGF0YSIsInZhbGlkYXRpb25Qcm9taXNlcyIsInZhbGlkYXRlZEZpZWxkIiwicGFzc2VzQ29uZGl0aW9uIiwidmFsaWRhdGlvblJlc3VsdCIsInZhbGlkYXRlIiwidmFsdWUiLCJzaWJsaW5nRGF0YSIsImdldFNpYmxpbmdEYXRhIiwiZXJyb3JNZXNzYWdlIiwiUHJvbWlzZSIsImFsbCIsImlzRGVlcEVxdWFsIiwic3RhdGUiLCJzdWJtaXQiLCJvcHRpb25zIiwiZSIsImFjdGlvblRvVXNlIiwibWV0aG9kVG9Vc2UiLCJvdmVycmlkZXMiLCJza2lwVmFsaWRhdGlvbiIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwid2FpdCIsInRvYXN0IiwiZXJyb3IiLCJyZWR1Y2VGaWVsZHNUb1ZhbHVlcyIsImZvcm1EYXRhIiwiY3JlYXRlRm9ybURhdGEiLCJyZXMiLCJyZXF1ZXN0cyIsInRvTG93ZXJDYXNlIiwiYm9keSIsImhlYWRlcnMiLCJsYW5ndWFnZSIsImNvbnRlbnRUeXBlIiwiZ2V0IiwiaXNKU09OIiwiaW5kZXhPZiIsImpzb24iLCJzdGF0dXMiLCJkZXN0aW5hdGlvbiIsInBhdGhuYW1lIiwibWVzc2FnZSIsInB1c2giLCJzdWNjZXNzIiwiYXV0b0Nsb3NlIiwiZXJyb3JzIiwiZmllbGRFcnJvcnMiLCJub25GaWVsZEVycm9ycyIsInJlZHVjZSIsImZpZWxkRXJycyIsIm5vbkZpZWxkRXJycyIsImVyciIsIm5ld0ZpZWxkRXJycyIsIm5ld05vbkZpZWxkRXJycyIsImRhdGFFcnJvciIsImVycm9yTWVzc2FnZXMiLCJ0cmF2ZXJzZVJvd0NvbmZpZ3MiLCJSZWFjdCIsImZpZWxkQ29uZmlnIiwicGF0aFByZWZpeCIsImNvbmZpZ01hcCIsImJ1aWxkRmllbGRTY2hlbWFNYXAiLCJwYXRoU2VnbWVudCIsImlzTnVtYmVyIiwicGFyc2VJbnQiLCJwYXJlbnRGaWVsZFBhdGgiLCJyZW1haW5pbmdQYXRoIiwiYXJyYXlGaWVsZFBhdGgiLCJwYXJlbnRBcnJheUZpZWxkIiwiZ2V0RmllbGQiLCJyb3dGaWVsZCIsImJsb2NrVHlwZSIsImJsb2NrQ29uZmlnIiwiRXJyb3IiLCJnZXRSb3dTY2hlbWFCeVBhdGgiLCJyb3dDb25maWciLCJyb3dGaWVsZENvbmZpZ3MiLCJmaWVsZEtleSIsImF0IiwiYWRkRmllbGRSb3ciLCJwcmVmZXJlbmNlcyIsInJvd1NjaGVtYSIsInN1YkZpZWxkU3RhdGUiLCJidWlsZFN0YXRlRnJvbVNjaGVtYSIsImZpZWxkU2NoZW1hIiwicmVtb3ZlRmllbGRSb3ciLCJyZXBsYWNlRmllbGRSb3ciLCJnZXRGaWVsZHMiLCJnZXRTaWJsaW5nRGF0YUZ1bmMiLCJnZXREYXRhQnlQYXRoIiwiZ2V0RGF0YUJ5UGF0aEZ1bmMiLCJmaWxlIiwiZGF0YVdpdGhPdmVycmlkZXMiLCJkYXRhVG9TZXJpYWxpemUiLCJfcGF5bG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZXJpYWxpemUiLCJpbmRpY2VzIiwibnVsbHNBc1VuZGVmaW5lZHMiLCJyZXNldCIsImluaXRDb250ZXh0U3RhdGUiLCJyZXBsYWNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJidWlsdFN0YXRlIiwidXNlVGhyb3R0bGVkRWZmZWN0IiwiY2xhc3NlcyIsImZpbHRlciIsIkJvb2xlYW4iLCJmb3JtIiwibm9WYWxpZGF0ZSIsInJlZiIsIkZvcm1Db250ZXh0IiwiUHJvdmlkZXIiLCJGb3JtV2F0Y2hDb250ZXh0IiwiU3VibWl0dGVkQ29udGV4dCIsIlByb2Nlc3NpbmdDb250ZXh0IiwiTW9kaWZpZWRDb250ZXh0IiwiRm9ybUZpZWxkc0NvbnRleHQiLCJXYXRjaEZvcm1FcnJvcnMiXSwibWFwcGluZ3MiOiJBQUFBLGtFQUFrRTs7OzsrQkF1cUJsRTs7O2VBQUE7OztrRUF0cUJ3QjtrQ0FDRTsrREFDa0Q7OEJBQzdDO2dDQUNKOytCQUNMOzBCQWFHOzhCQUNJO3dDQUNVOzZEQUN0QjtxQkFDUTsyRUFDTTtzQkFDUDt3QkFDRTs4QkFDTTt3QkFDTjttQ0FDRztpQ0FDRztxQ0FDSTswRUFDTjs2RUFDRzt5QkFRMUI7c0VBQ21COzhCQUNHO3NFQUNDO3VFQUNDO3lFQUNGOzZFQUNJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakMsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyxPQUF3QixDQUFDQztJQUM3QixNQUFNLEVBQ0pDLE1BQU0sRUFDTkMsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLG9C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
@@ -21,9 +21,9 @@ const separateRows = (path, fields)=>{
21
21
  const rows = Object.entries(fields).reduce((incomingRows, [fieldPath, field])=>{
22
22
  const newRows = incomingRows;
23
23
  if (fieldPath.indexOf(`${path}.`) === 0) {
24
- const index = Number(fieldPath.replace(`${path}.`, '').split('.')[0]);
25
- if (!newRows[index]) newRows[index] = {};
26
- newRows[index][fieldPath.replace(`${path}.${String(index)}.`, '')] = {
24
+ const [rowIndex] = fieldPath.replace(`${path}.`, '').split('.');
25
+ if (!newRows[rowIndex]) newRows[rowIndex] = {};
26
+ newRows[rowIndex][fieldPath.replace(`${path}.${String(rowIndex)}.`, '')] = {
27
27
  ...field
28
28
  };
29
29
  } else {
@@ -50,4 +50,4 @@ const flattenRows = (path, rows)=>{
50
50
  }), {});
51
51
  };
52
52
 
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vcm93cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkcyB9IGZyb20gJy4vdHlwZXMnXG5cbnR5cGUgUmVzdWx0ID0ge1xuICByZW1haW5pbmdGaWVsZHM6IEZpZWxkc1xuICByb3dzOiBGaWVsZHNbXVxufVxuXG5leHBvcnQgY29uc3Qgc2VwYXJhdGVSb3dzID0gKHBhdGg6IHN0cmluZywgZmllbGRzOiBGaWVsZHMpOiBSZXN1bHQgPT4ge1xuICBjb25zdCByZW1haW5pbmdGaWVsZHM6IEZpZWxkcyA9IHt9XG5cbiAgY29uc3Qgcm93cyA9IE9iamVjdC5lbnRyaWVzKGZpZWxkcykucmVkdWNlKChpbmNvbWluZ1Jvd3MsIFtmaWVsZFBhdGgsIGZpZWxkXSkgPT4ge1xuICAgIGNvbnN0IG5ld1Jvd3MgPSBpbmNvbWluZ1Jvd3NcblxuICAgIGlmIChmaWVsZFBhdGguaW5kZXhPZihgJHtwYXRofS5gKSA9PT0gMCkge1xuICAgICAgY29uc3QgaW5kZXggPSBOdW1iZXIoZmllbGRQYXRoLnJlcGxhY2UoYCR7cGF0aH0uYCwgJycpLnNwbGl0KCcuJylbMF0pXG4gICAgICBpZiAoIW5ld1Jvd3NbaW5kZXhdKSBuZXdSb3dzW2luZGV4XSA9IHt9XG4gICAgICBuZXdSb3dzW2luZGV4XVtmaWVsZFBhdGgucmVwbGFjZShgJHtwYXRofS4ke1N0cmluZyhpbmRleCl9LmAsICcnKV0gPSB7IC4uLmZpZWxkIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVtYWluaW5nRmllbGRzW2ZpZWxkUGF0aF0gPSBmaWVsZFxuICAgIH1cblxuICAgIHJldHVybiBuZXdSb3dzXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgcmVtYWluaW5nRmllbGRzLFxuICAgIHJvd3MsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZsYXR0ZW5Sb3dzID0gKHBhdGg6IHN0cmluZywgcm93czogRmllbGRzW10pOiBGaWVsZHMgPT4ge1xuICByZXR1cm4gcm93cy5yZWR1Y2UoXG4gICAgKGZpZWxkcywgcm93LCBpKSA9PiAoe1xuICAgICAgLi4uZmllbGRzLFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMocm93KS5yZWR1Y2UoKHN1YkZpZWxkcywgW3N1YlBhdGgsIHN1YkZpZWxkXSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN1YkZpZWxkcyxcbiAgICAgICAgICBbYCR7cGF0aH0uJHtpfS4ke3N1YlBhdGh9YF06IHsgLi4uc3ViRmllbGQgfSxcbiAgICAgICAgfVxuICAgICAgfSwge30pLFxuICAgIH0pLFxuICAgIHt9LFxuICApXG59XG4iXSwibmFtZXMiOlsic2VwYXJhdGVSb3dzIiwiZmxhdHRlblJvd3MiLCJwYXRoIiwiZmllbGRzIiwicmVtYWluaW5nRmllbGRzIiwicm93cyIsIk9iamVjdCIsImVudHJpZXMiLCJyZWR1Y2UiLCJpbmNvbWluZ1Jvd3MiLCJmaWVsZFBhdGgiLCJmaWVsZCIsIm5ld1Jvd3MiLCJpbmRleE9mIiwiaW5kZXgiLCJOdW1iZXIiLCJyZXBsYWNlIiwic3BsaXQiLCJTdHJpbmciLCJyb3ciLCJpIiwic3ViRmllbGRzIiwic3ViUGF0aCIsInN1YkZpZWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQU9hQSxZQUFZO2VBQVpBOztJQXVCQUMsV0FBVztlQUFYQTs7O0FBdkJOLE1BQU1ELGVBQWUsQ0FBQ0UsTUFBY0M7SUFDekMsTUFBTUMsa0JBQTBCLENBQUM7SUFFakMsTUFBTUMsT0FBT0MsT0FBT0MsT0FBTyxDQUFDSixRQUFRSyxNQUFNLENBQUMsQ0FBQ0MsY0FBYyxDQUFDQyxXQUFXQyxNQUFNO1FBQzFFLE1BQU1DLFVBQVVIO1FBRWhCLElBQUlDLFVBQVVHLE9BQU8sQ0FBQyxDQUFDLEVBQUVYLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRztZQUN2QyxNQUFNWSxRQUFRQyxPQUFPTCxVQUFVTSxPQUFPLENBQUMsQ0FBQyxFQUFFZCxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUllLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRSxJQUFJLENBQUNMLE9BQU8sQ0FBQ0UsTUFBTSxFQUFFRixPQUFPLENBQUNFLE1BQU0sR0FBRyxDQUFDO1lBQ3ZDRixPQUFPLENBQUNFLE1BQU0sQ0FBQ0osVUFBVU0sT0FBTyxDQUFDLENBQUMsRUFBRWQsS0FBSyxDQUFDLEVBQUVnQixPQUFPSixPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRztnQkFBRSxHQUFHSCxLQUFLO1lBQUM7UUFDbEYsT0FBTztZQUNMUCxlQUFlLENBQUNNLFVBQVUsR0FBR0M7UUFDL0I7UUFFQSxPQUFPQztJQUNULEdBQUcsRUFBRTtJQUVMLE9BQU87UUFDTFI7UUFDQUM7SUFDRjtBQUNGO0FBRU8sTUFBTUosY0FBYyxDQUFDQyxNQUFjRztJQUN4QyxPQUFPQSxLQUFLRyxNQUFNLENBQ2hCLENBQUNMLFFBQVFnQixLQUFLQyxJQUFPLENBQUE7WUFDbkIsR0FBR2pCLE1BQU07WUFDVCxHQUFHRyxPQUFPQyxPQUFPLENBQUNZLEtBQUtYLE1BQU0sQ0FBQyxDQUFDYSxXQUFXLENBQUNDLFNBQVNDLFNBQVM7Z0JBQzNELE9BQU87b0JBQ0wsR0FBR0YsU0FBUztvQkFDWixDQUFDLENBQUMsRUFBRW5CLEtBQUssQ0FBQyxFQUFFa0IsRUFBRSxDQUFDLEVBQUVFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7d0JBQUUsR0FBR0MsUUFBUTtvQkFBQztnQkFDN0M7WUFDRixHQUFHLENBQUMsRUFBRTtRQUNSLENBQUEsR0FDQSxDQUFDO0FBRUwifQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vcm93cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZpZWxkcyB9IGZyb20gJy4vdHlwZXMnXG5cbnR5cGUgUmVzdWx0ID0ge1xuICByZW1haW5pbmdGaWVsZHM6IEZpZWxkc1xuICByb3dzOiBGaWVsZHNbXVxufVxuXG5leHBvcnQgY29uc3Qgc2VwYXJhdGVSb3dzID0gKHBhdGg6IHN0cmluZywgZmllbGRzOiBGaWVsZHMpOiBSZXN1bHQgPT4ge1xuICBjb25zdCByZW1haW5pbmdGaWVsZHM6IEZpZWxkcyA9IHt9XG5cbiAgY29uc3Qgcm93cyA9IE9iamVjdC5lbnRyaWVzKGZpZWxkcykucmVkdWNlKChpbmNvbWluZ1Jvd3MsIFtmaWVsZFBhdGgsIGZpZWxkXSkgPT4ge1xuICAgIGNvbnN0IG5ld1Jvd3MgPSBpbmNvbWluZ1Jvd3NcblxuICAgIGlmIChmaWVsZFBhdGguaW5kZXhPZihgJHtwYXRofS5gKSA9PT0gMCkge1xuICAgICAgY29uc3QgW3Jvd0luZGV4XSA9IGZpZWxkUGF0aC5yZXBsYWNlKGAke3BhdGh9LmAsICcnKS5zcGxpdCgnLicpXG4gICAgICBpZiAoIW5ld1Jvd3Nbcm93SW5kZXhdKSBuZXdSb3dzW3Jvd0luZGV4XSA9IHt9XG4gICAgICBuZXdSb3dzW3Jvd0luZGV4XVtmaWVsZFBhdGgucmVwbGFjZShgJHtwYXRofS4ke1N0cmluZyhyb3dJbmRleCl9LmAsICcnKV0gPSB7IC4uLmZpZWxkIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVtYWluaW5nRmllbGRzW2ZpZWxkUGF0aF0gPSBmaWVsZFxuICAgIH1cblxuICAgIHJldHVybiBuZXdSb3dzXG4gIH0sIFtdKVxuXG4gIHJldHVybiB7XG4gICAgcmVtYWluaW5nRmllbGRzLFxuICAgIHJvd3MsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZsYXR0ZW5Sb3dzID0gKHBhdGg6IHN0cmluZywgcm93czogRmllbGRzW10pOiBGaWVsZHMgPT4ge1xuICByZXR1cm4gcm93cy5yZWR1Y2UoXG4gICAgKGZpZWxkcywgcm93LCBpKSA9PiAoe1xuICAgICAgLi4uZmllbGRzLFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMocm93KS5yZWR1Y2UoKHN1YkZpZWxkcywgW3N1YlBhdGgsIHN1YkZpZWxkXSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnN1YkZpZWxkcyxcbiAgICAgICAgICBbYCR7cGF0aH0uJHtpfS4ke3N1YlBhdGh9YF06IHsgLi4uc3ViRmllbGQgfSxcbiAgICAgICAgfVxuICAgICAgfSwge30pLFxuICAgIH0pLFxuICAgIHt9LFxuICApXG59XG4iXSwibmFtZXMiOlsic2VwYXJhdGVSb3dzIiwiZmxhdHRlblJvd3MiLCJwYXRoIiwiZmllbGRzIiwicmVtYWluaW5nRmllbGRzIiwicm93cyIsIk9iamVjdCIsImVudHJpZXMiLCJyZWR1Y2UiLCJpbmNvbWluZ1Jvd3MiLCJmaWVsZFBhdGgiLCJmaWVsZCIsIm5ld1Jvd3MiLCJpbmRleE9mIiwicm93SW5kZXgiLCJyZXBsYWNlIiwic3BsaXQiLCJTdHJpbmciLCJyb3ciLCJpIiwic3ViRmllbGRzIiwic3ViUGF0aCIsInN1YkZpZWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQU9hQSxZQUFZO2VBQVpBOztJQXVCQUMsV0FBVztlQUFYQTs7O0FBdkJOLE1BQU1ELGVBQWUsQ0FBQ0UsTUFBY0M7SUFDekMsTUFBTUMsa0JBQTBCLENBQUM7SUFFakMsTUFBTUMsT0FBT0MsT0FBT0MsT0FBTyxDQUFDSixRQUFRSyxNQUFNLENBQUMsQ0FBQ0MsY0FBYyxDQUFDQyxXQUFXQyxNQUFNO1FBQzFFLE1BQU1DLFVBQVVIO1FBRWhCLElBQUlDLFVBQVVHLE9BQU8sQ0FBQyxDQUFDLEVBQUVYLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRztZQUN2QyxNQUFNLENBQUNZLFNBQVMsR0FBR0osVUFBVUssT0FBTyxDQUFDLENBQUMsRUFBRWIsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJYyxLQUFLLENBQUM7WUFDM0QsSUFBSSxDQUFDSixPQUFPLENBQUNFLFNBQVMsRUFBRUYsT0FBTyxDQUFDRSxTQUFTLEdBQUcsQ0FBQztZQUM3Q0YsT0FBTyxDQUFDRSxTQUFTLENBQUNKLFVBQVVLLE9BQU8sQ0FBQyxDQUFDLEVBQUViLEtBQUssQ0FBQyxFQUFFZSxPQUFPSCxVQUFVLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRztnQkFBRSxHQUFHSCxLQUFLO1lBQUM7UUFDeEYsT0FBTztZQUNMUCxlQUFlLENBQUNNLFVBQVUsR0FBR0M7UUFDL0I7UUFFQSxPQUFPQztJQUNULEdBQUcsRUFBRTtJQUVMLE9BQU87UUFDTFI7UUFDQUM7SUFDRjtBQUNGO0FBRU8sTUFBTUosY0FBYyxDQUFDQyxNQUFjRztJQUN4QyxPQUFPQSxLQUFLRyxNQUFNLENBQ2hCLENBQUNMLFFBQVFlLEtBQUtDLElBQU8sQ0FBQTtZQUNuQixHQUFHaEIsTUFBTTtZQUNULEdBQUdHLE9BQU9DLE9BQU8sQ0FBQ1csS0FBS1YsTUFBTSxDQUFDLENBQUNZLFdBQVcsQ0FBQ0MsU0FBU0MsU0FBUztnQkFDM0QsT0FBTztvQkFDTCxHQUFHRixTQUFTO29CQUNaLENBQUMsQ0FBQyxFQUFFbEIsS0FBSyxDQUFDLEVBQUVpQixFQUFFLENBQUMsRUFBRUUsUUFBUSxDQUFDLENBQUMsRUFBRTt3QkFBRSxHQUFHQyxRQUFRO29CQUFDO2dCQUM3QztZQUNGLEdBQUcsQ0FBQyxFQUFFO1FBQ1IsQ0FBQSxHQUNBLENBQUM7QUFFTCJ9
@@ -136,7 +136,7 @@ export type Context = {
136
136
  addFieldRow: ({ data, path, rowIndex, }: {
137
137
  data?: Data;
138
138
  path: string;
139
- rowIndex: number;
139
+ rowIndex?: number;
140
140
  }) => Promise<void>;
141
141
  buildRowErrors: () => void;
142
142
  createFormData: CreateFormData;
@@ -155,7 +155,7 @@ export type Context = {
155
155
  removeFieldRow: ({ path, rowIndex }: {
156
156
  path: string;
157
157
  rowIndex: number;
158
- }) => Promise<void>;
158
+ }) => void;
159
159
  replaceFieldRow: ({ data, path, rowIndex, }: {
160
160
  data?: Data;
161
161
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/Form/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/Form/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/field-types/Row/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpC,OAAO,cAAc,CAAA;;AA+BrB,wBAAiC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/field-types/Row/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,OAAO,cAAc,CAAA;;AA6BrB,wBAAiC"}
@@ -12,9 +12,9 @@ const _react = /*#__PURE__*/ _interop_require_default(require("react"));
12
12
  const _createNestedFieldPath = require("../../Form/createNestedFieldPath");
13
13
  const _RenderFields = /*#__PURE__*/ _interop_require_default(require("../../RenderFields"));
14
14
  const _withCondition = /*#__PURE__*/ _interop_require_default(require("../../withCondition"));
15
+ const _shared = require("../shared");
15
16
  require("./index.scss");
16
17
  const _provider = require("./provider");
17
- const _shared = require("../shared");
18
18
  function _interop_require_default(obj) {
19
19
  return obj && obj.__esModule ? obj : {
20
20
  default: obj
@@ -34,11 +34,10 @@ const Row = (props)=>{
34
34
  })),
35
35
  fieldTypes: fieldTypes,
36
36
  indexPath: indexPath,
37
- margins: false,
38
37
  permissions: permissions,
39
38
  readOnly: readOnly
40
39
  }));
41
40
  };
42
41
  const _default = (0, _withCondition.default)(Row);
43
42
 
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1Jvdy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY3JlYXRlTmVzdGVkRmllbGRQYXRoIH0gZnJvbSAnLi4vLi4vRm9ybS9jcmVhdGVOZXN0ZWRGaWVsZFBhdGgnXG5pbXBvcnQgUmVuZGVyRmllbGRzIGZyb20gJy4uLy4uL1JlbmRlckZpZWxkcydcbmltcG9ydCB3aXRoQ29uZGl0aW9uIGZyb20gJy4uLy4uL3dpdGhDb25kaXRpb24nXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcbmltcG9ydCB7IFJvd1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcidcbmltcG9ydCB7IGZpZWxkQmFzZUNsYXNzIH0gZnJvbSAnLi4vc2hhcmVkJ1xuXG5jb25zdCBSb3c6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYWRtaW46IHsgY2xhc3NOYW1lLCByZWFkT25seSB9LFxuICAgIGZpZWxkVHlwZXMsXG4gICAgZmllbGRzLFxuICAgIGluZGV4UGF0aCxcbiAgICBwYXRoLFxuICAgIHBlcm1pc3Npb25zLFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxSb3dQcm92aWRlcj5cbiAgICAgIDxSZW5kZXJGaWVsZHNcbiAgICAgICAgY2xhc3NOYW1lPXtbZmllbGRCYXNlQ2xhc3MsICdyb3cnLCBjbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICAgIGZpZWxkU2NoZW1hPXtmaWVsZHMubWFwKChmaWVsZCkgPT4gKHtcbiAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICBwYXRoOiBjcmVhdGVOZXN0ZWRGaWVsZFBhdGgocGF0aCwgZmllbGQpLFxuICAgICAgICB9KSl9XG4gICAgICAgIGZpZWxkVHlwZXM9e2ZpZWxkVHlwZXN9XG4gICAgICAgIGluZGV4UGF0aD17aW5kZXhQYXRofVxuICAgICAgICBtYXJnaW5zPXtmYWxzZX1cbiAgICAgICAgcGVybWlzc2lvbnM9e3Blcm1pc3Npb25zfVxuICAgICAgICByZWFkT25seT17cmVhZE9ubHl9XG4gICAgICAvPlxuICAgIDwvUm93UHJvdmlkZXI+XG4gIClcbn1cbmV4cG9ydCBkZWZhdWx0IHdpdGhDb25kaXRpb24oUm93KVxuIl0sIm5hbWVzIjpbIlJvdyIsInByb3BzIiwiYWRtaW4iLCJjbGFzc05hbWUiLCJyZWFkT25seSIsImZpZWxkVHlwZXMiLCJmaWVsZHMiLCJpbmRleFBhdGgiLCJwYXRoIiwicGVybWlzc2lvbnMiLCJSb3dQcm92aWRlciIsIlJlbmRlckZpZWxkcyIsImZpZWxkQmFzZUNsYXNzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJmaWVsZFNjaGVtYSIsIm1hcCIsImZpZWxkIiwiY3JlYXRlTmVzdGVkRmllbGRQYXRoIiwibWFyZ2lucyIsIndpdGhDb25kaXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBc0NBOzs7ZUFBQTs7OzhEQXRDa0I7dUNBSW9CO3FFQUNiO3NFQUNDO1FBQ25COzBCQUNxQjt3QkFDRzs7Ozs7O0FBRS9CLE1BQU1BLE1BQXVCLENBQUNDO0lBQzVCLE1BQU0sRUFDSkMsT0FBTyxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsRUFBRSxFQUM5QkMsVUFBVSxFQUNWQyxNQUFNLEVBQ05DLFNBQVMsRUFDVEMsSUFBSSxFQUNKQyxXQUFXLEVBQ1osR0FBR1I7SUFFSixxQkFDRSw2QkFBQ1MscUJBQVcsc0JBQ1YsNkJBQUNDLHFCQUFZO1FBQ1hSLFdBQVc7WUFBQ1Msc0JBQWM7WUFBRTtZQUFPVDtTQUFVLENBQUNVLE1BQU0sQ0FBQ0MsU0FBU0MsSUFBSSxDQUFDO1FBQ25FQyxhQUFhVixPQUFPVyxHQUFHLENBQUMsQ0FBQ0MsUUFBVyxDQUFBO2dCQUNsQyxHQUFHQSxLQUFLO2dCQUNSVixNQUFNVyxJQUFBQSw0Q0FBcUIsRUFBQ1gsTUFBTVU7WUFDcEMsQ0FBQTtRQUNBYixZQUFZQTtRQUNaRSxXQUFXQTtRQUNYYSxTQUFTO1FBQ1RYLGFBQWFBO1FBQ2JMLFVBQVVBOztBQUlsQjtNQUNBLFdBQWVpQixJQUFBQSxzQkFBYSxFQUFDckIifQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1Jvdy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY3JlYXRlTmVzdGVkRmllbGRQYXRoIH0gZnJvbSAnLi4vLi4vRm9ybS9jcmVhdGVOZXN0ZWRGaWVsZFBhdGgnXG5pbXBvcnQgUmVuZGVyRmllbGRzIGZyb20gJy4uLy4uL1JlbmRlckZpZWxkcydcbmltcG9ydCB3aXRoQ29uZGl0aW9uIGZyb20gJy4uLy4uL3dpdGhDb25kaXRpb24nXG5pbXBvcnQgeyBmaWVsZEJhc2VDbGFzcyB9IGZyb20gJy4uL3NoYXJlZCdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHsgUm93UHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVyJ1xuXG5jb25zdCBSb3c6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgYWRtaW46IHsgY2xhc3NOYW1lLCByZWFkT25seSB9LFxuICAgIGZpZWxkVHlwZXMsXG4gICAgZmllbGRzLFxuICAgIGluZGV4UGF0aCxcbiAgICBwYXRoLFxuICAgIHBlcm1pc3Npb25zLFxuICB9ID0gcHJvcHNcblxuICByZXR1cm4gKFxuICAgIDxSb3dQcm92aWRlcj5cbiAgICAgIDxSZW5kZXJGaWVsZHNcbiAgICAgICAgY2xhc3NOYW1lPXtbZmllbGRCYXNlQ2xhc3MsICdyb3cnLCBjbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9XG4gICAgICAgIGZpZWxkU2NoZW1hPXtmaWVsZHMubWFwKChmaWVsZCkgPT4gKHtcbiAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICBwYXRoOiBjcmVhdGVOZXN0ZWRGaWVsZFBhdGgocGF0aCwgZmllbGQpLFxuICAgICAgICB9KSl9XG4gICAgICAgIGZpZWxkVHlwZXM9e2ZpZWxkVHlwZXN9XG4gICAgICAgIGluZGV4UGF0aD17aW5kZXhQYXRofVxuICAgICAgICBwZXJtaXNzaW9ucz17cGVybWlzc2lvbnN9XG4gICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgIC8+XG4gICAgPC9Sb3dQcm92aWRlcj5cbiAgKVxufVxuZXhwb3J0IGRlZmF1bHQgd2l0aENvbmRpdGlvbihSb3cpXG4iXSwibmFtZXMiOlsiUm93IiwicHJvcHMiLCJhZG1pbiIsImNsYXNzTmFtZSIsInJlYWRPbmx5IiwiZmllbGRUeXBlcyIsImZpZWxkcyIsImluZGV4UGF0aCIsInBhdGgiLCJwZXJtaXNzaW9ucyIsIlJvd1Byb3ZpZGVyIiwiUmVuZGVyRmllbGRzIiwiZmllbGRCYXNlQ2xhc3MiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImZpZWxkU2NoZW1hIiwibWFwIiwiZmllbGQiLCJjcmVhdGVOZXN0ZWRGaWVsZFBhdGgiLCJ3aXRoQ29uZGl0aW9uIl0sIm1hcHBpbmdzIjoiOzs7OytCQXFDQTs7O2VBQUE7Ozs4REFyQ2tCO3VDQUlvQjtxRUFDYjtzRUFDQzt3QkFDSztRQUN4QjswQkFDcUI7Ozs7OztBQUU1QixNQUFNQSxNQUF1QixDQUFDQztJQUM1QixNQUFNLEVBQ0pDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUUsRUFDOUJDLFVBQVUsRUFDVkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLElBQUksRUFDSkMsV0FBVyxFQUNaLEdBQUdSO0lBRUoscUJBQ0UsNkJBQUNTLHFCQUFXLHNCQUNWLDZCQUFDQyxxQkFBWTtRQUNYUixXQUFXO1lBQUNTLHNCQUFjO1lBQUU7WUFBT1Q7U0FBVSxDQUFDVSxNQUFNLENBQUNDLFNBQVNDLElBQUksQ0FBQztRQUNuRUMsYUFBYVYsT0FBT1csR0FBRyxDQUFDLENBQUNDLFFBQVcsQ0FBQTtnQkFDbEMsR0FBR0EsS0FBSztnQkFDUlYsTUFBTVcsSUFBQUEsNENBQXFCLEVBQUNYLE1BQU1VO1lBQ3BDLENBQUE7UUFDQWIsWUFBWUE7UUFDWkUsV0FBV0E7UUFDWEUsYUFBYUE7UUFDYkwsVUFBVUE7O0FBSWxCO01BQ0EsV0FBZWdCLElBQUFBLHNCQUFhLEVBQUNwQiJ9