@cloudbase/storage 2.25.5-alpha.1 → 2.25.6

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.
package/dist/cjs/index.js CHANGED
@@ -67,4 +67,3 @@ try {
67
67
  window.registerStorage = registerStorage;
68
68
  }
69
69
  catch (e) { }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEscUNBQStFO0FBQy9FLHVDQUF1RDtBQUl2RCxJQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFnQixFQUFFLENBQUE7QUFDdEMsSUFBTSxTQUFTLEdBQXdCO0lBQ3JDLElBQUksRUFBRSx3QkFBYztJQUNwQixNQUFNLEVBQUU7UUFDTixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7UUFDOUIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztRQUN0QyxZQUFZLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDbEMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQjtRQUM1QyxRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7UUFDMUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1FBQ2hDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztLQUM3QjtDQUNGLENBQUE7QUFFRCxJQUFNLGlCQUFpQixHQUF3QjtJQUM3QyxJQUFJLEVBQUUsVUFBRyx3QkFBYyxjQUFXO0lBQ2xDLElBQUksRUFBRSxJQUFJO0lBQ1YsTUFBTTtRQUtKLElBQU0sWUFBWSxHQUFHLElBQUksT0FBTyxFQUFtQyxDQUFBO1FBR25FLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUU7WUFDL0MsR0FBRztnQkFJRCxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtpQkFDOUI7Z0JBSUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFBO2dCQUVyQixJQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBb0IsRUFBdUIsRUFBRTtvQkFDcEUsR0FBRyxFQUFFLFVBQUMsT0FBTyxFQUFFLElBQUk7d0JBQ2pCLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTs0QkFDckIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFBO3lCQUN2Qjt3QkFDRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7NEJBQ3RCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQTt5QkFDeEI7d0JBQ0QsT0FBTyxTQUFTLENBQUE7b0JBQ2xCLENBQUM7aUJBQ0YsQ0FBQyxDQUFBO2dCQUdGLElBQU0sT0FBTyxHQUFHLElBQUkscUNBQTBCLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3ZELFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUMvQixPQUFPLE9BQU8sQ0FBQTtZQUNoQixDQUFDO1lBQ0QsWUFBWSxFQUFFLElBQUk7WUFDbEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGLENBQUE7QUFFRCxJQUFJO0lBQ0YsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3RDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0NBQy9DO0FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtBQUVkLFNBQWdCLGVBQWUsQ0FBQyxHQUEwQztJQUN4RSxJQUFJO1FBQ0YsR0FBRyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ2hDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0tBQ3pDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0tBQ2hCO0FBQ0gsQ0FBQztBQVBELDBDQU9DO0FBRUQsSUFBSTtJQUNELE1BQWMsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFBO0NBQ2xEO0FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDbG91ZGJhc2UgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgQ2xvdWRiYXNlU3RvcmFnZSwgQ09NUE9ORU5UX05BTUUsIElDbG91ZGJhc2VDb250ZXh0IH0gZnJvbSAnLi9zdG9yYWdlJ1xuaW1wb3J0IHsgU3VwYWJhc2VGaWxlQVBJTGlrZVN0b3JhZ2UgfSBmcm9tICcuL3N1cGFiYXNlJ1xuXG5kZWNsYXJlIGNvbnN0IGNsb3VkYmFzZTogSUNsb3VkYmFzZVxuXG5jb25zdCBzdG9yYWdlID0gbmV3IENsb3VkYmFzZVN0b3JhZ2UoKVxuY29uc3QgY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50ID0ge1xuICBuYW1lOiBDT01QT05FTlRfTkFNRSxcbiAgZW50aXR5OiB7XG4gICAgdXBsb2FkRmlsZTogc3RvcmFnZS51cGxvYWRGaWxlLFxuICAgIGRlbGV0ZUZpbGU6IHN0b3JhZ2UuZGVsZXRlRmlsZSxcbiAgICBnZXRUZW1wRmlsZVVSTDogc3RvcmFnZS5nZXRUZW1wRmlsZVVSTCxcbiAgICBkb3dubG9hZEZpbGU6IHN0b3JhZ2UuZG93bmxvYWRGaWxlLFxuICAgIGdldFVwbG9hZE1ldGFkYXRhOiBzdG9yYWdlLmdldFVwbG9hZE1ldGFkYXRhLFxuICAgIGNvcHlGaWxlOiBzdG9yYWdlLmNvcHlGaWxlLFxuICAgIGdldEZpbGVJbmZvOiBzdG9yYWdlLmdldEZpbGVJbmZvLFxuICAgIGlzR2F0ZVdheTogc3RvcmFnZS5pc0dhdGVXYXksXG4gIH0sXG59XG5cbmNvbnN0IHN1cGFiYXNlQ29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50ID0ge1xuICBuYW1lOiBgJHtDT01QT05FTlRfTkFNRX0vc3VwYWJhc2VgLFxuICBJSUZFOiB0cnVlLFxuICBlbnRpdHkoKSB7XG4gICAgLy8g5ZyoIElJRkUg5Lit77yMdGhpcyDmmK8gQ2xvdWRiYXNlIOexu++8iOaehOmAoOWHveaVsO+8ie+8jOS4jeaYr+WunuS+i1xuICAgIC8vIOaJgOS7peaIkeS7rOmcgOimgeS9v+eUqCBnZXR0ZXIg5p2l5bu26L+f6I635Y+W5a6e5L6L55qEIGNvbmZpZyDlkowgcmVxdWVzdFxuXG4gICAgLy8g5L2/55SoIFdlYWtNYXAg57yT5a2Y5q+P5Liq5a6e5L6L55qEIHN0b3JhZ2Ug5a+56LGhXG4gICAgY29uc3Qgc3RvcmFnZUNhY2hlID0gbmV3IFdlYWtNYXA8YW55LCBTdXBhYmFzZUZpbGVBUElMaWtlU3RvcmFnZT4oKVxuXG4gICAgLy8g5a6a5LmJIHN0b3JhZ2Ug5bGe5oCn55qEIGdldHRlcu+8jOavj+S4quWunuS+i+WPquWIm+W7uuS4gOasoVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnByb3RvdHlwZSwgJ3N0b3JhZ2UnLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIC8vIOi/memHjOeahCB0aGlzIOaYryBjbG91ZGJhc2Ug5a6e5L6LXG5cbiAgICAgICAgLy8g5aaC5p6c5bey57uP5Yib5bu66L+H77yM55u05o6l6L+U5Zue57yT5a2Y55qE5a6e5L6LXG4gICAgICAgIGlmIChzdG9yYWdlQ2FjaGUuaGFzKHRoaXMpKSB7XG4gICAgICAgICAgcmV0dXJuIHN0b3JhZ2VDYWNoZS5nZXQodGhpcylcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIOWIm+W7uuWKqOaAgSBjb250ZXh077yM5LuO5b2T5YmN5a6e5L6L6I635Y+WIGNvbmZpZyDlkowgcmVxdWVzdFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgICAgICAgY29uc3QgY29udGV4dCA9IG5ldyBQcm94eTxJQ2xvdWRiYXNlQ29udGV4dD4oe30gYXMgSUNsb3VkYmFzZUNvbnRleHQsIHtcbiAgICAgICAgICBnZXQ6IChfdGFyZ2V0LCBwcm9wKSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ2NvbmZpZycpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmNvbmZpZ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHByb3AgPT09ICdyZXF1ZXN0Jykge1xuICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVxdWVzdFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8g5Yib5bu65paw55qEIHN0b3JhZ2Ug5a6e5L6L5bm257yT5a2YXG4gICAgICAgIGNvbnN0IHN0b3JhZ2UgPSBuZXcgU3VwYWJhc2VGaWxlQVBJTGlrZVN0b3JhZ2UoY29udGV4dClcbiAgICAgICAgc3RvcmFnZUNhY2hlLnNldCh0aGlzLCBzdG9yYWdlKVxuICAgICAgICByZXR1cm4gc3RvcmFnZVxuICAgICAgfSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgfSlcbiAgfSxcbn1cblxudHJ5IHtcbiAgY2xvdWRiYXNlLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbiAgY2xvdWRiYXNlLnJlZ2lzdGVyQ29tcG9uZW50KHN1cGFiYXNlQ29tcG9uZW50KVxufSBjYXRjaCAoZSkge31cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyU3RvcmFnZShhcHA6IFBpY2s8SUNsb3VkYmFzZSwgJ3JlZ2lzdGVyQ29tcG9uZW50Jz4pIHtcbiAgdHJ5IHtcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICAgIGFwcC5yZWdpc3RlckNvbXBvbmVudChzdXBhYmFzZUNvbXBvbmVudClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybihlKVxuICB9XG59XG5cbnRyeSB7XG4gICh3aW5kb3cgYXMgYW55KS5yZWdpc3RlclN0b3JhZ2UgPSByZWdpc3RlclN0b3JhZ2Vcbn0gY2F0Y2ggKGUpIHt9XG4iXX0=
@@ -698,4 +698,3 @@ var CloudbaseStorage = exports.CloudbaseStorage = (function () {
698
698
  ], CloudbaseStorage.prototype, "copyFile", null);
699
699
  return CloudbaseStorage;
700
700
  }());
701
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQWdFO0FBa0JoRSxJQUFLLGFBR0o7QUFIRCxXQUFLLGFBQWE7SUFDaEIsNEJBQVcsQ0FBQTtJQUNYLDhCQUFhLENBQUE7QUFDZixDQUFDLEVBSEksYUFBYSxLQUFiLGFBQWEsUUFHakI7QUFXTyxJQUFBLFVBQVUsR0FBaUMscUJBQVMsV0FBMUMsRUFBRSxNQUFNLEdBQXlCLHFCQUFTLE9BQWxDLEVBQUUsa0JBQWtCLEdBQUsscUJBQVMsbUJBQWQsQ0FBYztBQUNwRCxJQUFBLE9BQU8sR0FBNEMsaUJBQUssUUFBakQsRUFBRSxRQUFRLEdBQWtDLGlCQUFLLFNBQXZDLEVBQUUsYUFBYSxHQUFtQixpQkFBSyxjQUF4QixFQUFFLFlBQVksR0FBSyxpQkFBSyxhQUFWLENBQVU7QUFDeEQsSUFBQSxvQkFBb0IsR0FBSyxtQkFBTyxxQkFBWixDQUFZO0FBRTNCLFFBQUEsY0FBYyxHQUFHLFNBQVMsQ0FBQTtBQVF2QyxJQUFNLGNBQWMsR0FBRztJQUNyQixhQUFhLEVBQUUsVUFDYixPQUFPLEVBQ1AsTUFBMEQsRUFDMUQsYUFBMEQ7Ozs7O3dCQUVoRCxXQUFNLE9BQU8sQ0FBQyxPQUFPLENBQzdCO3dCQUNFLElBQUksRUFBRSxVQUFVO3dCQUNoQixJQUFJLEVBQUUseUJBQXlCO3dCQUMvQixJQUFJLEVBQUU7dUNBRUYsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQ2xCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7eUJBRTlEO3FCQUNGLEVBQ0QsYUFBYSxDQUNkLEVBQUE7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QUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7aURBR1csUUFBUTs7d0RBZ0NwQjtJQWVZO1FBZFosb0JBQW9CLENBQUM7WUFDcEIsVUFBVSxFQUFFO2dCQUNWLFNBQVMsRUFBRSxXQUFXO2dCQUN0QixVQUFVLEVBQUUsVUFBVTthQUN2QjtZQUNELEtBQUssRUFBRSxRQUFRO1lBQ2YsUUFBUSxFQUFFO2dCQUNSLFVBQVU7Z0JBQ1YsZ0NBQWdDO2dCQUNoQyx1RUFBdUU7Z0JBQ3ZFLDRCQUE0QjtnQkFDNUIsc0tBQTZCLGtCQUFrQixDQUFFO2FBQ2xEO1NBQ0YsQ0FBQzs7aURBQ2lFLFFBQVE7O29EQTJEMUU7SUFzRkgsdUJBQUM7Q0FBQSxBQTNmRCxJQTJmQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cywgdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcblxuaW1wb3J0IHtcbiAgSUNsb3VkYmFzZUZpbGVNZXRhRGF0YVJlcyxcbiAgSUNsb3VkYmFzZUZpbGVJbmZvLFxuICBJQ2xvdWRiYXNlVXBsb2FkRmlsZVBhcmFtcyxcbiAgSUNsb3VkYmFzZVVwbG9hZEZpbGVSZXN1bHQsXG4gIElDbG91ZGJhc2VHZXRVcGxvYWRNZXRhZGF0YVBhcmFtcyxcbiAgSUNsb3VkYmFzZURlbGV0ZUZpbGVQYXJhbXMsXG4gIElDbG91ZGJhc2VEZWxldGVGaWxlUmVzdWx0LFxuICBJQ2xvdWRiYXNlR2V0VGVtcEZpbGVVUkxSZXN1bHQsXG4gIElDbG91ZGJhc2VHZXRUZW1wRmlsZVVSTFBhcmFtcyxcbiAgSUNsb3VkYmFzZURvd25sb2FkRmlsZVJlc3VsdCxcbiAgSUNsb3VkYmFzZURvd25sb2FkRmlsZVBhcmFtcyxcbiAgSUNsb3VkYmFzZUNvcHlGaWxlUGFyYW1zLFxuICBJQ2xvdWRiYXNlQ29weUZpbGVSZXN1bHQsXG59IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvc3RvcmFnZSdcblxuZW51bSBFVXBsb2FkTWV0aG9kIHtcbiAgcHV0ID0gJ3B1dCcsXG4gIHBvc3QgPSAncG9zdCcsXG59XG5cbmludGVyZmFjZSBJVXBsb2FkTWV0YWRhdGEge1xuICB1cmw6IHN0cmluZ1xuICB0b2tlbjogc3RyaW5nXG4gIGF1dGhvcml6YXRpb246IHN0cmluZ1xuICBmaWxlSWQ6IHN0cmluZ1xuICBjb3NGaWxlSWQ6IHN0cmluZ1xuICBkb3dubG9hZF91cmw/OiBzdHJpbmdcbn1cblxuY29uc3QgeyBnZXRTZGtOYW1lLCBFUlJPUlMsIENPTU1VTklUWV9TSVRFX1VSTCB9ID0gY29uc3RhbnRzXG5jb25zdCB7IGlzQXJyYXksIGlzU3RyaW5nLCBpc1BhbGluT2JqZWN0LCBleGVjQ2FsbGJhY2sgfSA9IHV0aWxzXG5jb25zdCB7IGNhdGNoRXJyb3JzRGVjb3JhdG9yIH0gPSBoZWxwZXJzXG5cbmV4cG9ydCBjb25zdCBDT01QT05FTlRfTkFNRSA9ICdzdG9yYWdlJ1xuXG4vLyBmdW5jdGlvbiBiYXNlbmFtZShwYXRoKSB7XG4vLyAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gcGF0aC5sYXN0SW5kZXhPZignLycpXG4vLyAgIGlmIChsYXN0U2xhc2hJbmRleCA9PT0gLTEpIHJldHVybiBwYXRoXG4vLyAgIHJldHVybiBwYXRoLnNsaWNlKGxhc3RTbGFzaEluZGV4ICsgMSlcbi8vIH1cblxuY29uc3Qgc3RvcmFnZUdhdGVXYXkgPSB7XG4gIGdldFVwbG9hZEluZm86IGFzeW5jIChcbiAgICByZXF1ZXN0LFxuICAgIHBhcmFtczogeyBwYXRoOiBzdHJpbmc7IGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IH0sXG4gICAgY3VzdG9tUmVxT3B0czogSUNsb3VkYmFzZVVwbG9hZEZpbGVQYXJhbXNbJ2N1c3RvbVJlcU9wdHMnXSxcbiAgKSA9PiB7XG4gICAgbGV0IHJlcyA9IGF3YWl0IHJlcXVlc3QuZ2F0ZVdheShcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3N0b3JhZ2VzJyxcbiAgICAgICAgbmFtZTogJ2dldC1vYmplY3RzLXVwbG9hZC1pbmZvJyxcbiAgICAgICAgZGF0YTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9iamVjdElkOiBwYXJhbXMucGF0aCxcbiAgICAgICAgICAgIC4uLihwYXJhbXMuaGVhZGVycyA/IHsgc2lnbmVkSGVhZGVyOiBwYXJhbXMuaGVhZGVycyB9IDoge30pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAgY3VzdG9tUmVxT3B0cyxcbiAgICApXG4gICAgY29uc3QgZGF0YSA9IHJlcy5kYXRhPy5bMF0gfHwge31cblxuICAgIHJlcyA9IHtcbiAgICAgIC4uLnJlcyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4uKGRhdGEuY29kZSA/IHsgLi4uZGF0YSB9IDoge30pLFxuICAgICAgICBhdXRob3JpemF0aW9uOiBkYXRhLmF1dGhvcml6YXRpb24sXG4gICAgICAgIHRva2VuOiBkYXRhLnRva2VuLFxuICAgICAgICB1cmw6IGRhdGEudXBsb2FkVXJsLFxuICAgICAgICBmaWxlSWQ6IGRhdGEuY2xvdWRPYmplY3RJZCxcbiAgICAgICAgY29zRmlsZUlkOiBkYXRhLmNsb3VkT2JqZWN0TWV0YSxcbiAgICAgICAgZG93bmxvYWRfdXJsOiBkYXRhLmRvd25sb2FkVXJsLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzXG4gIH0sXG4gIGdldERvd25Mb2FkSW5mbzogYXN5bmMgKFxuICAgIHJlcXVlc3QsXG4gICAgcGFyYW1zOiB7IGNvbnZlcnRlZEZpbGVMaXN0OiBBcnJheTx7IGZpbGVpZDogc3RyaW5nIH0+IH0sXG4gICAgY3VzdG9tUmVxT3B0czogSUNsb3VkYmFzZVVwbG9hZEZpbGVQYXJhbXNbJ2N1c3RvbVJlcU9wdHMnXSxcbiAgKSA9PiB7XG4gICAgbGV0IHJlcyA9IGF3YWl0IHJlcXVlc3QuZ2F0ZVdheShcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3N0b3JhZ2VzJyxcbiAgICAgICAgbmFtZTogJ2dldC1vYmplY3RzLWRvd25sb2FkLWluZm8nLFxuICAgICAgICBkYXRhOiBwYXJhbXMuY29udmVydGVkRmlsZUxpc3QubWFwKCh2OiBhbnkpID0+ICh7IGNsb3VkT2JqZWN0SWQ6IHYuZmlsZWlkIH0pKSxcbiAgICAgIH0sXG4gICAgICBjdXN0b21SZXFPcHRzLFxuICAgIClcbiAgICByZXMgPSB7XG4gICAgICAuLi5yZXMsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGRvd25sb2FkX2xpc3Q6IHJlcy5kYXRhPy5tYXAodiA9PiAoe1xuICAgICAgICAgIGNvZGU6IHYuY29kZSB8fCAnU1VDQ0VTUycsXG4gICAgICAgICAgbWVzc2FnZTogdi5tZXNzYWdlLFxuICAgICAgICAgIGZpbGVpZDogdi5jbG91ZE9iamVjdElkLFxuICAgICAgICAgIGRvd25sb2FkX3VybDogdi5kb3dubG9hZFVybCxcbiAgICAgICAgICBmaWxlSUQ6IHYuY2xvdWRPYmplY3RJZCxcbiAgICAgICAgICB0ZW1wRmlsZVVSTDogdi5kb3dubG9hZFVybCxcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzXG4gIH0sXG4gIGRlbGV0ZTogYXN5bmMgKFxuICAgIHJlcXVlc3QsXG4gICAgcGFyYW1zOiB7IGZpbGVMaXN0OiBBcnJheTxzdHJpbmc+IH0sXG4gICAgY3VzdG9tUmVxT3B0czogSUNsb3VkYmFzZVVwbG9hZEZpbGVQYXJhbXNbJ2N1c3RvbVJlcU9wdHMnXSxcbiAgKSA9PiB7XG4gICAgbGV0IHJlcyA9IGF3YWl0IHJlcXVlc3QuZ2F0ZVdheShcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ3N0b3JhZ2VzJyxcbiAgICAgICAgbmFtZTogJ2RlbGV0ZS1vYmplY3RzJyxcbiAgICAgICAgZGF0YTogcGFyYW1zLmZpbGVMaXN0Lm1hcCh2ID0+ICh7IGNsb3VkT2JqZWN0SWQ6IHYgfSkpLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbVJlcU9wdHMsXG4gICAgKVxuICAgIHJlcyA9IHtcbiAgICAgIC4uLnJlcyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgZGVsZXRlX2xpc3Q6IHJlcy5kYXRhPy5tYXAodiA9PiAoe1xuICAgICAgICAgIGNvZGU6IHYuY29kZSB8fCAnU1VDQ0VTUycsXG4gICAgICAgICAgZmlsZUlEOiB2LmNsb3VkT2JqZWN0SWQsXG4gICAgICAgICAgbWVzc2FnZTogdi5tZXNzYWdlLFxuICAgICAgICB9KSksXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiByZXNcbiAgfSxcbiAgY29weUZpbGU6IGFzeW5jIChcbiAgICByZXF1ZXN0LFxuICAgIHBhcmFtczoge1xuICAgICAgY29udmVydGVkRmlsZUxpc3Q6IEFycmF5PHsgc3JjX3BhdGg6IHN0cmluZzsgZHN0X3BhdGg6IHN0cmluZzsgb3ZlcndyaXRlOiBib29sZWFuOyByZW1vdmVfb3JpZ2luYWw6IGJvb2xlYW4gfT5cbiAgICB9LFxuICAgIGN1c3RvbVJlcU9wdHM6IElDbG91ZGJhc2VVcGxvYWRGaWxlUGFyYW1zWydjdXN0b21SZXFPcHRzJ10sXG4gICkgPT4ge1xuICAgIGxldCByZXMgPSBhd2FpdCByZXF1ZXN0LmdhdGVXYXkoXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdzdG9yYWdlcycsXG4gICAgICAgIG5hbWU6ICdjb3B5LW9iamVjdHMnLFxuICAgICAgICBkYXRhOiBwYXJhbXMuY29udmVydGVkRmlsZUxpc3QubWFwKCh2OiBhbnkpID0+ICh7XG4gICAgICAgICAgc3JjUGF0aDogdi5zcmNfcGF0aCxcbiAgICAgICAgICBkc3RQYXRoOiB2LmRzdF9wYXRoLFxuICAgICAgICAgIG92ZXJ3cml0ZTogdi5vdmVyd3JpdGUsXG4gICAgICAgICAgcmVtb3ZlT3JpZ2luYWw6IHYucmVtb3ZlX29yaWdpbmFsLFxuICAgICAgICB9KSksXG4gICAgICB9LFxuICAgICAgY3VzdG9tUmVxT3B0cyxcbiAgICApXG4gICAgcmVzID0ge1xuICAgICAgLi4ucmVzLFxuICAgICAgZGF0YToge1xuICAgICAgICBjb3B5X2xpc3Q6IHJlcy5kYXRhPy5tYXAodiA9PiAoe1xuICAgICAgICAgIGNvZGU6IHYuY29kZSB8fCAnU1VDQ0VTUycsXG4gICAgICAgICAgZmlsZUlEOiB2LmNsb3VkT2JqZWN0SWQsXG4gICAgICAgICAgbWVzc2FnZTogdi5tZXNzYWdlLFxuICAgICAgICB9KSksXG4gICAgICB9LFxuICAgIH1cblxuICAgIHJldHVybiByZXNcbiAgfSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ2xvdWRiYXNlQ29udGV4dCB7XG4gIGNvbmZpZzogYW55XG4gIHJlcXVlc3Q6IGFueVxufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRiYXNlU3RvcmFnZSB7XG4gIHB1YmxpYyBpc0dhdGVXYXkoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgY29uZmlnIH0gPSB0aGlzXG4gICAgY29uc3QgZW5kUG9pbnRNb2RlID0gY29uZmlnLmVuZFBvaW50TW9kZSB8fCAnQ0xPVURfQVBJJ1xuXG4gICAgcmV0dXJuIGVuZFBvaW50TW9kZSA9PT0gJ0dBVEVXQVknXG4gIH1cblxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIGN1c3RvbUluZm86IHtcbiAgICAgIGNsYXNzTmFtZTogJ0Nsb3VkYmFzZScsXG4gICAgICBtZXRob2ROYW1lOiAndXBsb2FkRmlsZScsXG4gICAgfSxcbiAgICB0aXRsZTogJ+S4iuS8oOaWh+S7tuWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCB1cGxvYWRGaWxlKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlvZPliY3ln5/lkI3mmK/lkKblnKjlronlhajln5/lkI3liJfooajkuK3vvJpodHRwczovL2NvbnNvbGUuY2xvdWQudGVuY2VudC5jb20vdGNiL2Vudi9zYWZldHknLFxuICAgICAgJyAgMyAtIOS6keWtmOWCqOWuieWFqOinhOWImeaYr+WQpumZkOWItuS6huW9k+WJjeeZu+W9leeKtuaAgeiuv+mXricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgdXBsb2FkRmlsZShcbiAgICBwYXJhbXM6IE9taXQ8SUNsb3VkYmFzZVVwbG9hZEZpbGVQYXJhbXMsICdmaWxlUGF0aCc+ICYgeyBmaWxlUGF0aD86IHN0cmluZyB9LFxuICAgIGNhbGxiYWNrPzogRnVuY3Rpb24sXG4gICk6IFByb21pc2U8SUNsb3VkYmFzZVVwbG9hZEZpbGVSZXN1bHQ+IHtcbiAgICBjb25zdCB7IGNsb3VkUGF0aCwgZmlsZVBhdGgsIG9uVXBsb2FkUHJvZ3Jlc3MsIG1ldGhvZCA9ICdwdXQnLCBoZWFkZXJzID0ge30sIGZpbGVDb250ZW50IH0gPSBwYXJhbXNcbiAgICBpZiAoIWlzU3RyaW5nKGNsb3VkUGF0aCkgfHwgKCFmaWxlUGF0aCAmJiAhZmlsZUNvbnRlbnQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS51cGxvYWRGaWxlXSBpbnZhbGlkIHBhcmFtc2AsXG4gICAgICB9KSwpXG4gICAgfVxuICAgIGNvbnN0IHVwbG9hZE1ldGhvZCA9ICAgICAgeyBwdXQ6IEVVcGxvYWRNZXRob2QucHV0LCBwb3N0OiBFVXBsb2FkTWV0aG9kLnBvc3QgfVttZXRob2QudG9Mb2NhbGVMb3dlckNhc2UoKV0gfHwgRVVwbG9hZE1ldGhvZC5wdXRcblxuICAgIC8vIOiwg+eUqCBnZXRVcGxvYWRNZXRhZGF0YSDojrflj5bkuIrkvKDlhYPmlbDmja5cbiAgICBjb25zdCBtZXRhZGF0YVJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0VXBsb2FkTWV0YWRhdGEoe1xuICAgICAgY2xvdWRQYXRoLFxuICAgICAgbWV0aG9kOiB1cGxvYWRNZXRob2QsXG4gICAgICBoZWFkZXJzOiB1cGxvYWRNZXRob2QgPT09IEVVcGxvYWRNZXRob2QucHV0ID8gaGVhZGVycyA6IHVuZGVmaW5lZCxcbiAgICAgIGN1c3RvbVJlcU9wdHM6IHBhcmFtcy5jdXN0b21SZXFPcHRzLFxuICAgIH0pXG5cbiAgICBjb25zdCB7IGRhdGE6IG1ldGFkYXRhLCByZXF1ZXN0SWQgfSA9IG1ldGFkYXRhUmVzdWx0XG4gICAgY29uc3QgeyB1cmwsIGF1dGhvcml6YXRpb24sIHRva2VuLCBmaWxlSWQsIGNvc0ZpbGVJZCwgZG93bmxvYWRfdXJsOiBkb3dubG9hZFVybCB9ID0gbWV0YWRhdGFcblxuICAgIGNvbnN0IGNvbW1vblBhcmFtcyA9IHtcbiAgICAgIHVybCxcbiAgICAgIGZpbGU6IGZpbGVQYXRoLFxuICAgICAgbmFtZTogY2xvdWRQYXRoLFxuICAgICAgb25VcGxvYWRQcm9ncmVzcyxcbiAgICAgIGZpbGVDb250ZW50LFxuICAgICAgZmlsZUlkLFxuICAgICAgcmVxdWVzdElkLFxuICAgIH1cblxuICAgIGNvbnN0IHB1dFBhcmFtcyA9IHtcbiAgICAgIC4uLmNvbW1vblBhcmFtcyxcbiAgICAgIG1ldGhvZDogRVVwbG9hZE1ldGhvZC5wdXQsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICAgIGF1dGhvcml6YXRpb24sXG4gICAgICAgICd4LWNvcy1tZXRhLWZpbGVpZCc6IGNvc0ZpbGVJZCxcbiAgICAgICAgJ3gtY29zLXNlY3VyaXR5LXRva2VuJzogdG9rZW4sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHBvc3RQYXJhbXMgPSB7XG4gICAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgICBtZXRob2Q6IEVVcGxvYWRNZXRob2QucG9zdCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAga2V5OiBjbG91ZFBhdGgsXG4gICAgICAgIHNpZ25hdHVyZTogYXV0aG9yaXphdGlvbixcbiAgICAgICAgJ3gtY29zLW1ldGEtZmlsZWlkJzogY29zRmlsZUlkLFxuICAgICAgICBzdWNjZXNzX2FjdGlvbl9zdGF0dXM6ICcyMDEnLFxuICAgICAgICAneC1jb3Mtc2VjdXJpdHktdG9rZW4nOiB0b2tlbixcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgY29uc3QgdXBsb2FkQ29uZmlnID0ge1xuICAgICAgW0VVcGxvYWRNZXRob2QucHV0XToge1xuICAgICAgICBwYXJhbXM6IHB1dFBhcmFtcyxcbiAgICAgICAgaXNTdWNjZXNzOiAoY29kZTogbnVtYmVyKSA9PiBjb2RlID49IDIwMCAmJiBjb2RlIDwgMzAwLFxuICAgICAgfSxcbiAgICAgIFtFVXBsb2FkTWV0aG9kLnBvc3RdOiB7XG4gICAgICAgIHBhcmFtczogcG9zdFBhcmFtcyxcbiAgICAgICAgaXNTdWNjZXNzOiAoY29kZTogbnVtYmVyKSA9PiBjb2RlID09PSAyMDEsXG4gICAgICB9LFxuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcXVlc3QudXBsb2FkKHVwbG9hZENvbmZpZ1t1cGxvYWRNZXRob2RdLnBhcmFtcylcblxuICAgIGlmICh1cGxvYWRDb25maWdbdXBsb2FkTWV0aG9kXS5pc1N1Y2Nlc3MocmVzLnN0YXR1c0NvZGUpKSB7XG4gICAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBudWxsLCB7XG4gICAgICAgIGZpbGVJRDogZmlsZUlkLFxuICAgICAgICBkb3dubG9hZF91cmw6IGRvd25sb2FkVXJsLFxuICAgICAgICByZXF1ZXN0SWQsXG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gZXhlY0NhbGxiYWNrKFxuICAgICAgY2FsbGJhY2ssXG4gICAgICBuZXcgRXJyb3IoYFske2dldFNka05hbWUoKX1dWyR7RVJST1JTLk9QRVJBVElPTl9GQUlMfV1bJHtDT01QT05FTlRfTkFNRX1dOiR7cmVzLmRhdGF9YCksXG4gICAgKVxuICB9XG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgY3VzdG9tSW5mbzoge1xuICAgICAgY2xhc3NOYW1lOiAnQ2xvdWRiYXNlJyxcbiAgICAgIG1ldGhvZE5hbWU6ICdnZXRVcGxvYWRNZXRhZGF0YScsXG4gICAgfSxcbiAgICB0aXRsZTogJ+iOt+WPluS4iuS8oOWFg+S/oeaBr+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBnZXRVcGxvYWRNZXRhZGF0YSgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5b2T5YmN5Z+f5ZCN5piv5ZCm5Zyo5a6J5YWo5Z+f5ZCN5YiX6KGo5Lit77yaaHR0cHM6Ly9jb25zb2xlLmNsb3VkLnRlbmNlbnQuY29tL3RjYi9lbnYvc2FmZXR5JyxcbiAgICAgICcgIDMgLSDkupHlrZjlgqjlronlhajop4TliJnmmK/lkKbpmZDliLbkuoblvZPliY3nmbvlvZXnirbmgIHorr/pl64nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGdldFVwbG9hZE1ldGFkYXRhKFxuICAgIHBhcmFtczogSUNsb3VkYmFzZUdldFVwbG9hZE1ldGFkYXRhUGFyYW1zICYge1xuICAgICAgbWV0aG9kPzogRVVwbG9hZE1ldGhvZFxuICAgICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgICB9LFxuICAgIGNhbGxiYWNrPzogRnVuY3Rpb24sXG4gICk6IFByb21pc2U8eyBkYXRhOiBJVXBsb2FkTWV0YWRhdGE7IHJlcXVlc3RJZDogc3RyaW5nIH0+IHtcbiAgICBjb25zdCB7IGNsb3VkUGF0aCwgbWV0aG9kLCBoZWFkZXJzIH0gPSBwYXJhbXNcbiAgICBpZiAoIWlzU3RyaW5nKGNsb3VkUGF0aCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmdldFVwbG9hZE1ldGFkYXRhXSBpbnZhbGlkIGNsb3VkUGF0aGAsXG4gICAgICB9KSwpXG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IHRoaXNcbiAgICBjb25zdCBhY3Rpb24gPSAnc3RvcmFnZS5nZXRVcGxvYWRNZXRhZGF0YSdcblxuICAgIHRyeSB7XG4gICAgICBsZXQgbWV0YURhdGE6IElDbG91ZGJhc2VGaWxlTWV0YURhdGFSZXNcblxuICAgICAgY29uc3QgbWV0YURhdGFQYXJhbToge1xuICAgICAgICBwYXRoOiBzdHJpbmdcbiAgICAgICAgbWV0aG9kPzogRVVwbG9hZE1ldGhvZFxuICAgICAgICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgICAgfSA9IHsgcGF0aDogY2xvdWRQYXRoIH1cblxuICAgICAgaWYgKG1ldGhvZCkge1xuICAgICAgICBtZXRhRGF0YVBhcmFtLm1ldGhvZCA9IG1ldGhvZFxuICAgICAgfVxuICAgICAgaWYgKG1ldGhvZCA9PT0gRVVwbG9hZE1ldGhvZC5wdXQgJiYgaGVhZGVycykge1xuICAgICAgICBtZXRhRGF0YVBhcmFtLmhlYWRlcnMgPSBoZWFkZXJzXG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzR2F0ZVdheSgpKSB7XG4gICAgICAgIG1ldGFEYXRhID0gYXdhaXQgc3RvcmFnZUdhdGVXYXkuZ2V0VXBsb2FkSW5mbyhyZXF1ZXN0LCBtZXRhRGF0YVBhcmFtLCBwYXJhbXMuY3VzdG9tUmVxT3B0cylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1ldGFEYXRhID0gYXdhaXQgcmVxdWVzdC5zZW5kKGFjdGlvbiwgbWV0YURhdGFQYXJhbSwgcGFyYW1zLmN1c3RvbVJlcU9wdHMpXG4gICAgICB9XG4gICAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBudWxsLCBtZXRhRGF0YSlcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIGVycilcbiAgICB9XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBjdXN0b21JbmZvOiB7XG4gICAgICBjbGFzc05hbWU6ICdDbG91ZGJhc2UnLFxuICAgICAgbWV0aG9kTmFtZTogJ2RlbGV0ZUZpbGUnLFxuICAgIH0sXG4gICAgdGl0bGU6ICfliKDpmaTmlofku7blpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggZGVsZXRlRmlsZSgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5b2T5YmN5Z+f5ZCN5piv5ZCm5Zyo5a6J5YWo5Z+f5ZCN5YiX6KGo5Lit77yaaHR0cHM6Ly9jb25zb2xlLmNsb3VkLnRlbmNlbnQuY29tL3RjYi9lbnYvc2FmZXR5JyxcbiAgICAgICcgIDMgLSDkupHlrZjlgqjlronlhajop4TliJnmmK/lkKbpmZDliLbkuoblvZPliY3nmbvlvZXnirbmgIHorr/pl64nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGRlbGV0ZUZpbGUoXG4gICAgcGFyYW1zOiBJQ2xvdWRiYXNlRGVsZXRlRmlsZVBhcmFtcyxcbiAgICBjYWxsYmFjaz86IEZ1bmN0aW9uLFxuICApOiBQcm9taXNlPElDbG91ZGJhc2VEZWxldGVGaWxlUmVzdWx0PiB7XG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gcGFyYW1zXG5cbiAgICBpZiAoIWZpbGVMaXN0IHx8ICFpc0FycmF5KGZpbGVMaXN0KSB8fCBmaWxlTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmRlbGV0ZUZpbGVdIGZpbGVMaXN0IG11c3Qgbm90IGJlIGVtcHR5YCxcbiAgICAgIH0pLClcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpbGVJZCBvZiBmaWxlTGlzdCkge1xuICAgICAgaWYgKCFmaWxlSWQgfHwgIWlzU3RyaW5nKGZpbGVJZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmRlbGV0ZUZpbGVdIGZpbGVJRCBtdXN0IGJlIHN0cmluZ2AsXG4gICAgICAgIH0pLClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb24gPSAnc3RvcmFnZS5iYXRjaERlbGV0ZUZpbGUnXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gdGhpc1xuICAgIGxldCByZXM6IGFueSA9IHt9XG5cbiAgICBpZiAodGhpcy5pc0dhdGVXYXkoKSkge1xuICAgICAgcmVzID0gYXdhaXQgc3RvcmFnZUdhdGVXYXkuZGVsZXRlKHJlcXVlc3QsIHsgZmlsZUxpc3QgfSwgcGFyYW1zLmN1c3RvbVJlcU9wdHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IGF3YWl0IHJlcXVlc3Quc2VuZChcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICB7XG4gICAgICAgICAgZmlsZWlkX2xpc3Q6IGZpbGVMaXN0LFxuICAgICAgICB9LFxuICAgICAgICBwYXJhbXMuY3VzdG9tUmVxT3B0cyxcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocmVzLmNvZGUpIHtcbiAgICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIHJlcylcbiAgICB9XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGZpbGVMaXN0OiByZXMuZGF0YS5kZWxldGVfbGlzdCxcbiAgICAgIHJlcXVlc3RJZDogcmVzLnJlcXVlc3RJZCxcbiAgICB9XG4gICAgcmV0dXJuIGV4ZWNDYWxsYmFjayhjYWxsYmFjaywgbnVsbCwgZGF0YSlcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIGN1c3RvbUluZm86IHtcbiAgICAgIGNsYXNzTmFtZTogJ0Nsb3VkYmFzZScsXG4gICAgICBtZXRob2ROYW1lOiAnZ2V0VGVtcEZpbGVVUkwnLFxuICAgIH0sXG4gICAgdGl0bGU6ICfojrflj5bmlofku7bkuIvovb3pk77mjqUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggZ2V0VGVtcEZpbGVVUkwoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeWfn+WQjeaYr+WQpuWcqOWuieWFqOWfn+WQjeWIl+ihqOS4re+8mmh0dHBzOi8vY29uc29sZS5jbG91ZC50ZW5jZW50LmNvbS90Y2IvZW52L3NhZmV0eScsXG4gICAgICAnICAzIC0g5LqR5a2Y5YKo5a6J5YWo6KeE5YiZ5piv5ZCm6ZmQ5Yi25LqG5b2T5YmN55m75b2V54q25oCB6K6/6ZeuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBnZXRUZW1wRmlsZVVSTChcbiAgICBwYXJhbXM6IElDbG91ZGJhc2VHZXRUZW1wRmlsZVVSTFBhcmFtcyxcbiAgICBjYWxsYmFjaz86IEZ1bmN0aW9uLFxuICApOiBQcm9taXNlPElDbG91ZGJhc2VHZXRUZW1wRmlsZVVSTFJlc3VsdD4ge1xuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHBhcmFtc1xuXG4gICAgaWYgKCFmaWxlTGlzdCB8fCAhaXNBcnJheShmaWxlTGlzdCkgfHwgZmlsZUxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5nZXRUZW1wRmlsZVVSTF0gZmlsZUxpc3QgbXVzdCBub3QgYmUgZW1wdHlgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnZlcnRlZEZpbGVMaXN0ID0gW11cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZUxpc3QpIHtcbiAgICAgIGlmIChpc1BhbGluT2JqZWN0KGZpbGUpKSB7XG4gICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGZpbGUsICdmaWxlSUQnKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uZ2V0VGVtcEZpbGVVUkxdIGZpbGUgaW5mbyBtdXN0IGluY2x1ZGUgZmlsZUlEYCxcbiAgICAgICAgICB9KSwpXG4gICAgICAgIH1cblxuICAgICAgICBjb252ZXJ0ZWRGaWxlTGlzdC5wdXNoKHtcbiAgICAgICAgICBmaWxlaWQ6IChmaWxlIGFzIElDbG91ZGJhc2VGaWxlSW5mbykuZmlsZUlELFxuICAgICAgICAgIG1heF9hZ2U6IChmaWxlIGFzIElDbG91ZGJhc2VGaWxlSW5mbykubWF4QWdlIHx8IDcyMDAsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKGZpbGUpKSB7XG4gICAgICAgIGNvbnZlcnRlZEZpbGVMaXN0LnB1c2goe1xuICAgICAgICAgIGZpbGVpZDogZmlsZSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5nZXRUZW1wRmlsZVVSTF0gaW52YWxpZCBmaWxlTGlzdGAsXG4gICAgICAgIH0pLClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhY3Rpb24gPSAnc3RvcmFnZS5iYXRjaEdldERvd25sb2FkVXJsJ1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IHRoaXNcbiAgICBsZXQgcmVzOiBhbnkgPSB7fVxuXG4gICAgaWYgKHRoaXMuaXNHYXRlV2F5KCkpIHtcbiAgICAgIHJlcyA9IGF3YWl0IHN0b3JhZ2VHYXRlV2F5LmdldERvd25Mb2FkSW5mbyhyZXF1ZXN0LCB7IGNvbnZlcnRlZEZpbGVMaXN0IH0sIHBhcmFtcy5jdXN0b21SZXFPcHRzKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSBhd2FpdCByZXF1ZXN0LnNlbmQoYWN0aW9uLCB7IGZpbGVfbGlzdDogY29udmVydGVkRmlsZUxpc3QgfSwgcGFyYW1zLmN1c3RvbVJlcU9wdHMpXG4gICAgfVxuXG4gICAgaWYgKHJlcy5jb2RlKSB7XG4gICAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBudWxsLCByZXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGV4ZWNDYWxsYmFjayhjYWxsYmFjaywgbnVsbCwge1xuICAgICAgZmlsZUxpc3Q6IHJlcy5kYXRhLmRvd25sb2FkX2xpc3QsXG4gICAgICByZXF1ZXN0SWQ6IHJlcy5yZXF1ZXN0SWQsXG4gICAgfSlcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIGN1c3RvbUluZm86IHtcbiAgICAgIGNsYXNzTmFtZTogJ0Nsb3VkYmFzZScsXG4gICAgICBtZXRob2ROYW1lOiAnZG93bmxvYWRGaWxlJyxcbiAgICB9LFxuICAgIHRpdGxlOiAn5LiL6L295paH5Lu25aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGRvd25sb2FkRmlsZSgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5b2T5YmN5Z+f5ZCN5piv5ZCm5Zyo5a6J5YWo5Z+f5ZCN5YiX6KGo5Lit77yaaHR0cHM6Ly9jb25zb2xlLmNsb3VkLnRlbmNlbnQuY29tL3RjYi9lbnYvc2FmZXR5JyxcbiAgICAgICcgIDMgLSDkupHlrZjlgqjlronlhajop4TliJnmmK/lkKbpmZDliLbkuoblvZPliY3nmbvlvZXnirbmgIHorr/pl64nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIGRvd25sb2FkRmlsZShcbiAgICBwYXJhbXM6IElDbG91ZGJhc2VEb3dubG9hZEZpbGVQYXJhbXMsXG4gICAgY2FsbGJhY2s/OiBGdW5jdGlvbixcbiAgKTogUHJvbWlzZTxJQ2xvdWRiYXNlRG93bmxvYWRGaWxlUmVzdWx0PiB7XG4gICAgY29uc3QgeyBmaWxlSUQgfSA9IHBhcmFtc1xuICAgIGlmICghaXNTdHJpbmcoZmlsZUlEKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uZ2V0VGVtcEZpbGVVUkxdIGZpbGVJRCBtdXN0IGJlIHN0cmluZ2AsXG4gICAgICB9KSwpXG4gICAgfVxuXG4gICAgY29uc3QgdG1wVXJsUmVzID0gYXdhaXQgdGhpcy5nZXRUZW1wRmlsZVVSTC5jYWxsKHRoaXMsIHtcbiAgICAgIGZpbGVMaXN0OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBmaWxlSUQsXG4gICAgICAgICAgbWF4QWdlOiA2MDAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgY3VzdG9tUmVxT3B0czogcGFyYW1zLmN1c3RvbVJlcU9wdHMsXG4gICAgfSlcblxuICAgIGNvbnN0IHJlcyA9IHRtcFVybFJlcy5maWxlTGlzdFswXVxuXG4gICAgaWYgKHJlcy5jb2RlICE9PSAnU1VDQ0VTUycpIHtcbiAgICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIHJlcylcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gdGhpc1xuXG4gICAgY29uc3QgdG1wVXJsID0gZW5jb2RlVVJJKHJlcy5kb3dubG9hZF91cmwpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXF1ZXN0LmRvd25sb2FkKHsgdXJsOiB0bXBVcmwsIHRlbXBGaWxlUGF0aDogcGFyYW1zLnRlbXBGaWxlUGF0aCB9KVxuICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIHJlc3VsdClcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIGN1c3RvbUluZm86IHtcbiAgICAgIGNsYXNzTmFtZTogJ0Nsb3VkYmFzZScsXG4gICAgICBtZXRob2ROYW1lOiAnY29weUZpbGUnLFxuICAgIH0sXG4gICAgdGl0bGU6ICfmibnph4/lpI3liLbmlofku7YnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggY29weUZpbGUoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeWfn+WQjeaYr+WQpuWcqOWuieWFqOWfn+WQjeWIl+ihqOS4re+8mmh0dHBzOi8vY29uc29sZS5jbG91ZC50ZW5jZW50LmNvbS90Y2IvZW52L3NhZmV0eScsXG4gICAgICAnICAzIC0g5LqR5a2Y5YKo5a6J5YWo6KeE5YiZ5piv5ZCm6ZmQ5Yi25LqG5b2T5YmN55m75b2V54q25oCB6K6/6ZeuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBjb3B5RmlsZShwYXJhbXM6IElDbG91ZGJhc2VDb3B5RmlsZVBhcmFtcywgY2FsbGJhY2s/OiBGdW5jdGlvbik6IFByb21pc2U8SUNsb3VkYmFzZUNvcHlGaWxlUmVzdWx0PiB7XG4gICAgY29uc3QgeyBmaWxlTGlzdCB9ID0gcGFyYW1zXG5cbiAgICBpZiAoIWZpbGVMaXN0IHx8ICFpc0FycmF5KGZpbGVMaXN0KSB8fCBmaWxlTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmNvcHlGaWxlXSBmaWxlTGlzdCBtdXN0IG5vdCBiZSBlbXB0eWAsXG4gICAgICB9KSwpXG4gICAgfVxuXG4gICAgY29uc3QgY29udmVydGVkRmlsZUxpc3QgPSBbXVxuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVMaXN0KSB7XG4gICAgICBjb25zdCB7IHNyY1BhdGgsIGRzdFBhdGggfSA9IGZpbGVcbiAgICAgIGlmICghc3JjUGF0aCB8fCAhZHN0UGF0aCB8fCB0eXBlb2Ygc3JjUGF0aCAhPT0gJ3N0cmluZycgfHwgdHlwZW9mIGRzdFBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5jb3B5RmlsZV0gc3JjUGF0aCBhbmQgZHN0UGF0aCBtYXkgbm90IGJlIGVtcHR5YCxcbiAgICAgICAgfSksKVxuICAgICAgfVxuICAgICAgaWYgKHNyY1BhdGggPT09IGRzdFBhdGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmNvcHlGaWxlXSBzcmNQYXRoIGFuZCBkc3RQYXRoIGNhbiBub3QgYmUgdGhlIHNhbWVgLFxuICAgICAgICB9KSwpXG4gICAgICB9XG4gICAgICAvLyAgIGlmIChiYXNlbmFtZShzcmNQYXRoKSAhPT0gYmFzZW5hbWUoZHN0UGF0aCkpIHtcbiAgICAgIC8vICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgLy8gICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgLy8gICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmNvcHlGaWxlXSBzcmNQYXRoIGFuZCBkc3RQYXRoIGZpbGUgbmFtZSBtdXN0IGJlIHRoZSBzYW1lYCxcbiAgICAgIC8vICAgICB9KSwpXG4gICAgICAvLyAgIH1cbiAgICAgIGNvbnZlcnRlZEZpbGVMaXN0LnB1c2goe1xuICAgICAgICBzcmNfcGF0aDogc3JjUGF0aCxcbiAgICAgICAgZHN0X3BhdGg6IGRzdFBhdGgsXG4gICAgICAgIG92ZXJ3cml0ZTogZmlsZS5vdmVyd3JpdGUsXG4gICAgICAgIHJlbW92ZV9vcmlnaW5hbDogZmlsZS5yZW1vdmVPcmlnaW5hbCxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gdGhpc1xuICAgIGxldCByZXM6IGFueSA9IHt9XG5cbiAgICBpZiAodGhpcy5pc0dhdGVXYXkoKSkge1xuICAgICAgcmVzID0gYXdhaXQgc3RvcmFnZUdhdGVXYXkuY29weUZpbGUocmVxdWVzdCwgeyBjb252ZXJ0ZWRGaWxlTGlzdCB9LCBwYXJhbXMuY3VzdG9tUmVxT3B0cylcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYWN0aW9uID0gJ3N0b3JhZ2UuYmF0Y2hDb3B5RmlsZSdcbiAgICAgIHJlcyA9IGF3YWl0IHJlcXVlc3Quc2VuZChhY3Rpb24sIHsgZmlsZV9saXN0OiBjb252ZXJ0ZWRGaWxlTGlzdCB9LCBwYXJhbXMuY3VzdG9tUmVxT3B0cylcbiAgICB9XG5cbiAgICBpZiAocmVzLmNvZGUpIHtcbiAgICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIHJlcylcbiAgICB9XG5cbiAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBudWxsLCB7XG4gICAgICBmaWxlTGlzdDogcmVzLmRhdGEuY29weV9saXN0LFxuICAgICAgcmVxdWVzdElkOiByZXMucmVxdWVzdElkLFxuICAgIH0pXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0RmlsZUluZm8ocGFyYW1zOiBJQ2xvdWRiYXNlR2V0VGVtcEZpbGVVUkxQYXJhbXMpOiBQcm9taXNlPHtcbiAgICBmaWxlTGlzdDogKFBpY2s8SUNsb3VkYmFzZUdldFRlbXBGaWxlVVJMUmVzdWx0WydmaWxlTGlzdCddWzBdLCAnY29kZScgfCAnZmlsZUlEJyB8ICd0ZW1wRmlsZVVSTCcgfCAnbWVzc2FnZSc+ICYge1xuICAgICAgZmlsZU5hbWU/OiBzdHJpbmdcbiAgICAgIGNsb3VkSWQ/OiBJQ2xvdWRiYXNlR2V0VGVtcEZpbGVVUkxSZXN1bHRbJ2ZpbGVMaXN0J11bMF1bJ2ZpbGVJRCddXG4gICAgICBjb250ZW50VHlwZT86IHN0cmluZ1xuICAgICAgbWltZT86IHN0cmluZ1xuICAgICAgc2l6ZT86IG51bWJlclxuICAgICAgY2FjaGVDb250cm9sPzogc3RyaW5nXG4gICAgICBsYXN0TW9kaWZpZWQ/OiBzdHJpbmdcbiAgICAgIGV0YWc/OiBzdHJpbmdcbiAgICB9KVtdXG4gICAgcmVxdWVzdElkOiBzdHJpbmdcbiAgfT4ge1xuICAgIGNvbnN0IGZpbGVJbmZvID0gYXdhaXQgdGhpcy5nZXRUZW1wRmlsZVVSTChwYXJhbXMpXG5cbiAgICBpZiAoZmlsZUluZm8/LmZpbGVMaXN0ICYmIGZpbGVJbmZvPy5maWxlTGlzdD8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZmlsZUxpc3QgPSBhd2FpdCBQcm9taXNlLmFsbChmaWxlSW5mby5maWxlTGlzdC5tYXAoYXN5bmMgKGl0ZW06IElDbG91ZGJhc2VHZXRUZW1wRmlsZVVSTFJlc3VsdFsnZmlsZUxpc3QnXVswXSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5jb2RlICE9PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29kZTogaXRlbS5jb2RlLFxuICAgICAgICAgICAgZmlsZUlEOiBpdGVtLmZpbGVJRCxcbiAgICAgICAgICAgIHRlbXBGaWxlVVJMOiBpdGVtLnRlbXBGaWxlVVJMLFxuICAgICAgICAgICAgbWVzc2FnZTogaXRlbS5tZXNzYWdlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIGNvbnN0IHsgcmVxdWVzdCB9ID0gdGhpc1xuICAgICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHJlcXVlc3QuZmV0Y2goeyB1cmw6IGl0ZW0udGVtcEZpbGVVUkwsIG1ldGhvZDogJ0hFQUQnIH0pXG4gICAgICAgICAgbGV0IHsgaGVhZGVyIH0gPSByZXNcblxuICAgICAgICAgIGlmIChIZWFkZXJzICYmIGhlYWRlciBpbnN0YW5jZW9mIEhlYWRlcnMpIHtcbiAgICAgICAgICAgIGhlYWRlciA9IE9iamVjdC5mcm9tRW50cmllcyhyZXMuaGVhZGVyLmVudHJpZXMoKSlcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJhZGl4XG4gICAgICAgICAgY29uc3QgZmlsZVNpemUgPSBwYXJzZUludChoZWFkZXJbJ2NvbnRlbnQtbGVuZ3RoJ10pIHx8IDBcbiAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IGhlYWRlclsnY29udGVudC10eXBlJ10gfHwgJydcblxuICAgICAgICAgIGlmIChbNDAwLCA0MDRdLmluY2x1ZGVzKE51bWJlcihyZXMuc3RhdHVzQ29kZSkpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBjb2RlOiAnRklMRV9OT1RfRk9VTkQnLFxuICAgICAgICAgICAgICBmaWxlSUQ6IGl0ZW0uZmlsZUlELFxuICAgICAgICAgICAgICB0ZW1wRmlsZVVSTDogaXRlbS50ZW1wRmlsZVVSTCxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ2ZpbGUgbm90IGZvdW5kJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmaWxlSW5mbyA9IHtcbiAgICAgICAgICAgIGNvZGU6IGl0ZW0uY29kZSxcbiAgICAgICAgICAgIGZpbGVJRDogaXRlbS5maWxlSUQsXG4gICAgICAgICAgICB0ZW1wRmlsZVVSTDogaXRlbS50ZW1wRmlsZVVSTCxcbiAgICAgICAgICAgIGNsb3VkSWQ6IGl0ZW0uZmlsZUlELFxuICAgICAgICAgICAgZmlsZU5hbWU6IGl0ZW0uZmlsZUlELnNwbGl0KCcvJykucG9wKCksXG4gICAgICAgICAgICBjb250ZW50VHlwZSxcbiAgICAgICAgICAgIG1pbWU6IGNvbnRlbnRUeXBlLnNwbGl0KCc7JylbMF0udHJpbSgpLFxuICAgICAgICAgICAgc2l6ZTogZmlsZVNpemUsXG4gICAgICAgICAgICBldGFnOiBoZWFkZXIuZXRhZyB8fCAnJyxcbiAgICAgICAgICAgIGxhc3RNb2RpZmllZDogaGVhZGVyWydsYXN0LW1vZGlmaWVkJ10gfHwgJycsXG4gICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGhlYWRlclsnY2FjaGUtY29udHJvbCddIHx8ICcnLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWxlSW5mb1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGU6ICdGRVRDSF9GSUxFX0lORk9fRVJST1InLFxuICAgICAgICAgICAgZmlsZUlEOiBpdGVtLmZpbGVJRCxcbiAgICAgICAgICAgIHRlbXBGaWxlVVJMOiBpdGVtLnRlbXBGaWxlVVJMLFxuICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSksKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBmaWxlTGlzdCxcbiAgICAgICAgcmVxdWVzdElkOiBmaWxlSW5mby5yZXF1ZXN0SWQsXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVMaXN0OiBbXSxcbiAgICAgIHJlcXVlc3RJZDogZmlsZUluZm8ucmVxdWVzdElkLFxuICAgIH1cbiAgfVxufVxuIl19
@@ -62,4 +62,3 @@ var StorageUnknownError = (function (_super) {
62
62
  return StorageUnknownError;
63
63
  }(StorageError));
64
64
  exports.StorageUnknownError = StorageUnknownError;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N1cGFiYXNlL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtJQUFrQyxnQ0FBSztJQUdyQyxzQkFBWSxPQUFlO1FBQTNCLFlBQ0Usa0JBQU0sT0FBTyxDQUFDLFNBRWY7UUFMUyxzQkFBZ0IsR0FBRyxJQUFJLENBQUE7UUFJL0IsS0FBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUE7O0lBQzVCLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFQRCxDQUFrQyxLQUFLLEdBT3RDO0FBUFksb0NBQVk7QUFTekIsU0FBZ0IsY0FBYyxDQUFDLEtBQWM7SUFDM0MsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxrQkFBa0IsSUFBSSxLQUFLLENBQUE7QUFDbkYsQ0FBQztBQUZELHdDQUVDO0FBRUQ7SUFBcUMsbUNBQVk7SUFJL0MseUJBQVksT0FBZSxFQUFFLE1BQWMsRUFBRSxVQUFrQjtRQUEvRCxZQUNFLGtCQUFNLE9BQU8sQ0FBQyxTQUlmO1FBSEMsS0FBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQTtRQUM3QixLQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixLQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTs7SUFDOUIsQ0FBQztJQUVELGdDQUFNLEdBQU47UUFDRSxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQTtJQUNILENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFuQkQsQ0FBcUMsWUFBWSxHQW1CaEQ7QUFuQlksMENBQWU7QUFxQjVCO0lBQXlDLHVDQUFZO0lBR25ELDZCQUFZLE9BQWUsRUFBRSxhQUFzQjtRQUFuRCxZQUNFLGtCQUFNLE9BQU8sQ0FBQyxTQUdmO1FBRkMsS0FBSSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQTtRQUNqQyxLQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQTs7SUFDcEMsQ0FBQztJQUNILDBCQUFDO0FBQUQsQ0FBQyxBQVJELENBQXlDLFlBQVksR0FRcEQ7QUFSWSxrREFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU3RvcmFnZUVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBwcm90ZWN0ZWQgX19pc1N0b3JhZ2VFcnJvciA9IHRydWVcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdTdG9yYWdlRXJyb3InXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RvcmFnZUVycm9yKGVycm9yOiB1bmtub3duKTogZXJyb3IgaXMgU3RvcmFnZUVycm9yIHtcbiAgcmV0dXJuIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgZXJyb3IgIT09IG51bGwgJiYgJ19faXNTdG9yYWdlRXJyb3InIGluIGVycm9yXG59XG5cbmV4cG9ydCBjbGFzcyBTdG9yYWdlQXBpRXJyb3IgZXh0ZW5kcyBTdG9yYWdlRXJyb3Ige1xuICBzdGF0dXM6IG51bWJlclxuICBzdGF0dXNDb2RlOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YXR1czogbnVtYmVyLCBzdGF0dXNDb2RlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlKVxuICAgIHRoaXMubmFtZSA9ICdTdG9yYWdlQXBpRXJyb3InXG4gICAgdGhpcy5zdGF0dXMgPSBzdGF0dXNcbiAgICB0aGlzLnN0YXR1c0NvZGUgPSBzdGF0dXNDb2RlXG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZSxcbiAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICBzdGF0dXNDb2RlOiB0aGlzLnN0YXR1c0NvZGUsXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTdG9yYWdlVW5rbm93bkVycm9yIGV4dGVuZHMgU3RvcmFnZUVycm9yIHtcbiAgb3JpZ2luYWxFcnJvcjogdW5rbm93blxuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgb3JpZ2luYWxFcnJvcjogdW5rbm93bikge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ1N0b3JhZ2VVbmtub3duRXJyb3InXG4gICAgdGhpcy5vcmlnaW5hbEVycm9yID0gb3JpZ2luYWxFcnJvclxuICB9XG59XG4iXX0=
@@ -703,4 +703,3 @@ var SupabaseFileAPILikeStorage = (function (_super) {
703
703
  return SupabaseFileAPILikeStorage;
704
704
  }(storage_1.CloudbaseStorage));
705
705
  exports.SupabaseFileAPILikeStorage = SupabaseFileAPILikeStorage;
706
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3VwYWJhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0Q7QUFFaEQsc0NBQWdGO0FBR2hGLG1DQUF1RDtBQUUvQyxJQUFBLE1BQU0sR0FBSyxxQkFBUyxPQUFkLENBQWM7QUFFNUI7SUFBZ0QsOENBQWdCO0lBSzlELG9DQUFZLE9BQTJCO1FBQXZDLFlBQ0UsaUJBQU8sU0FFUjtRQVBPLHdCQUFrQixHQUFHLEtBQUssQ0FBQTtRQUMxQixjQUFRLEdBQUcsRUFBRSxDQUFBO1FBS25CLEtBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBOztJQUN4QixDQUFDO0lBRUQsc0JBQUksOENBQU07YUFBVjs7WUFFRSxPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsTUFBTSxDQUFBO1FBQzdCLENBQUM7OztPQUFBO0lBRUQsc0JBQUksK0NBQU87YUFBWDs7WUFFRSxPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsT0FBTyxDQUFBO1FBQzlCLENBQUM7OztPQUFBO0lBRUQsaURBQVksR0FBWjtRQUNFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUE7UUFDOUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQseUNBQUksR0FBSixVQUFLLE1BQWU7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO1FBQzVCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVLLDJDQUFNLEdBQVosVUFDRSxJQUFZLEVBQ1osUUFBa0IsRUFDbEIsV0FBeUI7Ozs7Ozt3QkFJbkIsT0FBTyxjQUFLLE1BQU0sRUFBRSxJQUFJLElBQUssV0FBVyxDQUFFLENBQUE7d0JBQ3hDLFlBQVksR0FBNEIsT0FBTyxhQUFuQyxFQUFFLFdBQVcsR0FBZSxPQUFPLFlBQXRCLEVBQUUsUUFBUSxHQUFLLE9BQU8sU0FBWixDQUFZOzs7O3dCQUUvQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDcEMsZ0JBQWdCLEdBQWtEOzRCQUN0RSxTQUFTLFdBQUE7NEJBQ1QsUUFBUSxFQUFFLFFBQWU7eUJBQzFCLENBQUE7d0JBRUQsSUFBSSxZQUFZLElBQUksV0FBVyxJQUFJLFFBQVEsRUFBRTs0QkFDckMsT0FBTyxHQUFHLEVBQUUsQ0FBQTs0QkFDbEIsSUFBSSxZQUFZLEVBQUU7Z0NBQ2hCLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxZQUFZLENBQUE7NkJBQ3hDOzRCQUNELElBQUksV0FBVyxFQUFFO2dDQUNmLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXLENBQUE7NkJBQ3RDOzRCQUVELElBQUksUUFBUSxFQUFFO2dDQUNaLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBOzZCQUM3RTs0QkFFRCxnQkFBZ0IsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO3lCQUNuQzt3QkFFYyxXQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBQTs7d0JBQWhELE1BQU0sR0FBRyxTQUF1Qzt3QkFHdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7NEJBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQ0FDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxjQUFjO2dDQUMzQixHQUFHLEVBQUUsV0FBSSx3QkFBYyxnQ0FBNkI7NkJBQ3JELENBQUMsQ0FBRSxDQUFBO3lCQUNMO3dCQUVELFdBQU87Z0NBQ0wsSUFBSSxFQUFFO29DQUNKLEVBQUUsRUFBRSxNQUFNLENBQUMsTUFBTTtvQ0FDakIsSUFBSSxNQUFBO29DQUNKLFFBQVEsRUFBRSxJQUFJO2lDQUNmO2dDQUNELEtBQUssRUFBRSxJQUFJOzZCQUNaLEVBQUE7Ozt3QkFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7NEJBQUUsTUFBTSxPQUFLLENBQUE7d0JBQ3hDLElBQUksSUFBQSx1QkFBYyxFQUFDLE9BQUssQ0FBQyxFQUFFOzRCQUN6QixXQUFPO29DQUNMLElBQUksRUFBRSxJQUFJO29DQUNWLEtBQUssU0FBQTtpQ0FDTixFQUFBO3lCQUNGO3dCQUNELE1BQU0sT0FBSyxDQUFBOzs7OztLQUVkO0lBRUssc0RBQWlCLEdBQXZCLFVBQ0UsSUFBWSxFQUNaLE1BQWMsRUFDZCxRQUFrQixFQUNsQixXQUF5Qjs7O2dCQUl6QixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBQTs7O0tBQ2hEO0lBRUssMERBQXFCLEdBQTNCLFVBQTRCLElBQVk7Ozs7Ozs7d0JBaUI5QixTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFFZixXQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFNBQVMsV0FBQSxFQUFFLENBQUMsRUFBQTs7d0JBQXhELFFBQVEsR0FBSyxDQUFBLFNBQTJDLENBQUEsS0FBaEQ7d0JBRXRCLFdBQU87Z0NBQ0wsSUFBSSxFQUFFO29DQUNKLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRztvQ0FDdkIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO29DQUNyQixJQUFJLE1BQUE7b0NBRUosYUFBYSxFQUFFLFFBQVEsQ0FBQyxhQUFhO29DQUNyQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU07b0NBQ25CLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztvQ0FDN0IsV0FBVyxFQUFFLFFBQVEsQ0FBQyxZQUFZO2lDQUNuQztnQ0FDRCxLQUFLLEVBQUUsSUFBSTs2QkFDWixFQUFBOzs7d0JBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCOzRCQUFFLE1BQU0sT0FBSyxDQUFBO3dCQUN4QyxXQUFPO2dDQUNMLElBQUksRUFBRSxJQUFJO2dDQUNWLEtBQUssRUFBRSxPQUFLLFlBQVkscUJBQVksQ0FBQyxDQUFDLENBQUMsT0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLHFCQUFZLENBQUMsT0FBSyxDQUFDLE9BQU8sQ0FBQzs2QkFDL0UsRUFBQTs7Ozs7S0FFSjtJQUVLLDJDQUFNLEdBQVosVUFDRSxJQUFZLEVBQ1osUUFBa0IsRUFDbEIsV0FBeUI7OztnQkFJekIsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLHdCQUFPLFdBQVcsS0FBRSxNQUFNLEVBQUUsSUFBSSxJQUFHLEVBQUE7OztLQUNyRTtJQUVLLHlDQUFJLEdBQVYsVUFDRSxRQUFnQixFQUNoQixNQUFjOzs7Ozs7O3dCQUlHLFdBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztnQ0FDakMsUUFBUSxFQUFFO29DQUNSO3dDQUNFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQzt3Q0FDckMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO3dDQUNuQyxTQUFTLEVBQUUsSUFBSTt3Q0FDZixjQUFjLEVBQUUsSUFBSTtxQ0FDckI7aUNBQ0Y7NkJBQ0YsQ0FBQyxFQUFBOzt3QkFUSSxNQUFNLEdBQUcsU0FTYjt3QkFFRixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTs0QkFDcEUsTUFBTSxJQUFJLHFCQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksYUFBYSxDQUFDLENBQUE7eUJBQ3BFO3dCQUVELFdBQU87Z0NBQ0wsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLDBCQUFtQixRQUFRLGlCQUFPLE1BQU0sQ0FBRSxFQUFFO2dDQUM3RCxLQUFLLEVBQUUsSUFBSTs2QkFDWixFQUFBOzs7d0JBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCOzRCQUFFLE1BQU0sT0FBSyxDQUFBO3dCQUN4QyxJQUFJLElBQUEsdUJBQWMsRUFBQyxPQUFLLENBQUMsRUFBRTs0QkFDekIsV0FBTztvQ0FDTCxJQUFJLEVBQUUsSUFBSTtvQ0FDVixLQUFLLFNBQUE7aUNBQ04sRUFBQTt5QkFDRjt3QkFDRCxNQUFNLE9BQUssQ0FBQTs7Ozs7S0FFZDtJQUVLLHlDQUFJLEdBQVYsVUFDRSxRQUFnQixFQUNoQixNQUFjOzs7Ozs7O3dCQUlHLFdBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQztnQ0FDakMsUUFBUSxFQUFFO29DQUNSO3dDQUNFLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQzt3Q0FDckMsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO3dDQUNuQyxTQUFTLEVBQUUsSUFBSTt3Q0FDZixjQUFjLEVBQUUsS0FBSztxQ0FDdEI7aUNBQ0Y7NkJBQ0YsQ0FBQyxFQUFBOzt3QkFUSSxNQUFNLEdBQUcsU0FTYjt3QkFFRixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTs0QkFDcEUsTUFBTSxJQUFJLHFCQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksYUFBYSxDQUFDLENBQUE7eUJBQ3BFO3dCQUVELFdBQU87Z0NBQ0wsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0NBQzFDLEtBQUssRUFBRSxJQUFJOzZCQUNaLEVBQUE7Ozt3QkFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7NEJBQUUsTUFBTSxPQUFLLENBQUE7d0JBQ3hDLElBQUksSUFBQSx1QkFBYyxFQUFDLE9BQUssQ0FBQyxFQUFFOzRCQUN6QixXQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLFNBQUEsRUFBRSxFQUFBO3lCQUM3Qjt3QkFDRCxNQUFNLE9BQUssQ0FBQTs7Ozs7S0FFZDtJQUVLLG9EQUFlLEdBQXJCLFVBQ0UsSUFBWSxFQUNaLFNBQWlCLEVBQ2pCLE9BR0M7Ozs7Ozs7d0JBR08sU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQTt3QkFDL0IsV0FBTSxJQUFJLENBQUMsY0FBYyxDQUFDO2dDQUN2QyxRQUFRLEVBQUU7b0NBQ1I7d0NBQ0UsTUFBTSxFQUFFLFNBQVM7d0NBQ2pCLE1BQU0sRUFBRSxTQUFTO3FDQUNsQjtpQ0FDRjs2QkFDRixDQUFDLEVBQUE7O3dCQVBJLE1BQU0sR0FBRyxTQU9iO3dCQUdGLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFOzRCQUN6QyxNQUFNLElBQUkscUJBQVksQ0FBQyx3Q0FBaUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGVBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsQ0FBQyxDQUFBO3lCQUNqSDt3QkFFRyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUE7d0JBR3pDLFdBQVcsR0FBYSxFQUFFLENBQUE7d0JBR2hDLElBQUksQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsUUFBUSxNQUFLLFNBQVMsRUFBRTs0QkFDbkMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO2dDQUV4QyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFZLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBRSxDQUFDLENBQUE7NkJBQ3JFO2lDQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0NBRXBDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUE7NkJBQ2xDO3lCQUNGO3dCQUdELElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFNBQVMsRUFBRTs0QkFDaEIsY0FBYyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7NEJBQzFFLElBQUksY0FBYyxFQUFFO2dDQUNsQixXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBOzZCQUNqQzt5QkFDRjt3QkFHRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUNwQixTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUE7NEJBQ3JELFNBQVMsR0FBRyxVQUFHLFNBQVMsU0FBRyxTQUFTLFNBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBRSxDQUFBO3lCQUMvRDt3QkFFRCxXQUFPO2dDQUNMLElBQUksRUFBRSxFQUFFLFNBQVMsV0FBQSxFQUFFO2dDQUNuQixLQUFLLEVBQUUsSUFBSTs2QkFDWixFQUFBOzs7d0JBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCOzRCQUFFLE1BQU0sT0FBSyxDQUFBO3dCQUN4QyxJQUFJLElBQUEsdUJBQWMsRUFBQyxPQUFLLENBQUMsRUFBRTs0QkFDekIsV0FBTztvQ0FDTCxJQUFJLEVBQUUsSUFBSTtvQ0FDVixLQUFLLFNBQUE7aUNBQ04sRUFBQTt5QkFDRjt3QkFDRCxNQUFNLE9BQUssQ0FBQTs7Ozs7S0FFZDtJQUVLLHFEQUFnQixHQUF0QixVQUNFLEtBQWUsRUFDZixTQUFpQjs7Ozs7Ozs7d0JBU1QsUUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDOzRCQUMvQixNQUFNLEVBQUUsS0FBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQzs0QkFDakMsTUFBTSxFQUFFLFNBQVM7eUJBQ2xCLENBQUMsRUFIOEIsQ0FHOUIsQ0FBQyxDQUFBO3dCQUVZLFdBQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsVUFBQSxFQUFFLENBQUMsRUFBQTs7d0JBQWhELE1BQU0sR0FBRyxTQUF1Qzt3QkFFdEQsV0FBTztnQ0FDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBQyxJQUFTLEVBQUUsS0FBYSxJQUFLLE9BQUEsQ0FBQztvQ0FDdkQsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7b0NBQ2xCLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUU7b0NBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztpQ0FDckQsQ0FBQyxFQUpzRCxDQUl0RCxDQUFDO2dDQUNILEtBQUssRUFBRSxJQUFJOzZCQUNaLEVBQUE7Ozt3QkFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7NEJBQUUsTUFBTSxPQUFLLENBQUE7d0JBQ3hDLElBQUksSUFBQSx1QkFBYyxFQUFDLE9BQUssQ0FBQyxFQUFFOzRCQUN6QixXQUFPO29DQUNMLElBQUksRUFBRSxJQUFJO29DQUNWLEtBQUssU0FBQTtpQ0FDTixFQUFBO3lCQUNGO3dCQUNELE1BQU0sT0FBSyxDQUFBOzs7OztLQUVkO0lBRUssNkNBQVEsR0FBZCxVQUNFLElBQVksRUFDWixPQUEwQjs7Ozs7Ozs7Ozt3QkFPaEIsV0FBTSxDQUFDOzs7OztnREFDYSxXQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFBOzs0Q0FBL0UsZUFBZSxHQUFHLFNBQTZEOzRDQUNyRixJQUFJLGVBQWUsQ0FBQyxLQUFLLEVBQUU7Z0RBQ3pCLE1BQU0sZUFBZSxDQUFDLEtBQUssQ0FBQTs2Q0FDNUI7NENBQ0ssTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFBLGVBQWUsQ0FBQyxJQUFJLDBDQUFFLFNBQVMsQ0FBQyxDQUFBOzRDQUV4QyxXQUFPLElBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztvREFDeEQsR0FBRyxFQUFFLE1BQU07b0RBQ1gsT0FBTyxFQUFFLEVBQUU7b0RBQ1gsWUFBWSxFQUFFLE1BQU07aURBQ3JCLENBQUMsRUFBQTs7NENBSk0sSUFBSSxHQUFLLENBQUEsU0FJZixDQUFBLEtBSlU7NENBTVosSUFBSSxDQUFDLElBQUksRUFBRTtnREFDVCxNQUFNLElBQUkscUJBQVksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBOzZDQUMzRDs0Q0FHRCxXQUFPLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQTs7O2lDQUN4QixDQUFDLEVBQUUsRUFBQTs0QkFwQk4sWUFDRSxPQUFJLEdBQUUsU0FtQkY7NEJBQ0osUUFBSyxHQUFFLElBQUk7aUNBQ1o7Ozt3QkFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7NEJBQUUsTUFBTSxPQUFLLENBQUE7d0JBQ3hDLElBQUksSUFBQSx1QkFBYyxFQUFDLE9BQUssQ0FBQyxFQUFFOzRCQUN6QixXQUFPO29DQUNMLElBQUksRUFBRSxJQUFJO29DQUNWLEtBQUssU0FBQTtpQ0FDTixFQUFBO3lCQUNGO3dCQUNELE1BQU0sT0FBSyxDQUFBOzs7OztLQUVkO0lBaUJLLHlDQUFJLEdBQVYsVUFBVyxZQUFvQjs7Ozs7Ozt3QkFHckIsUUFBUSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7d0JBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFBO3dCQUNqRixRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUE7d0JBRXRFLFdBQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQztnQ0FDdEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDOzZCQUNqRCxDQUFDLEVBQUE7O3dCQUZJLFFBQVEsR0FBRyxTQUVmO3dCQUVJLElBQUksR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO3dCQUVqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFOzRCQUMzQixNQUFNLElBQUkscUJBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7eUJBQ3JDO3dCQUVLLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO3dCQUM5QixZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTt3QkFDakcsV0FBTztnQ0FDTCxJQUFJLEVBQUU7b0NBQ0osRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNO29DQUNmLE9BQU8sRUFBRSxHQUFHO29DQUNaLElBQUksRUFBRSxXQUFXO29DQUNqQixRQUFRLFVBQUE7b0NBQ1IsU0FBUyxFQUFFLFlBQVk7b0NBQ3ZCLFNBQVMsRUFBRSxZQUFZO29DQUN2QixjQUFjLEVBQUUsR0FBRztvQ0FDbkIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO29DQUNmLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtvQ0FDL0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29DQUM3QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0NBQ2YsWUFBWSxjQUFBO29DQUNaLFFBQVEsRUFBRSxFQUFFO2lDQUNiO2dDQUNELEtBQUssRUFBRSxJQUFJOzZCQUNaLEVBQUE7Ozt3QkFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0I7NEJBQUUsTUFBTSxPQUFLLENBQUE7d0JBQ3hDLFdBQU87Z0NBQ0wsSUFBSSxFQUFFLElBQUk7Z0NBQ1YsS0FBSyxFQUFFLE9BQUssWUFBWSxxQkFBWSxDQUFDLENBQUMsQ0FBQyxPQUFLLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQVksQ0FBQyxPQUFLLENBQUMsT0FBTyxDQUFDOzZCQUMvRSxFQUFBOzs7OztLQUVKO0lBRUssMkNBQU0sR0FBWixVQUFhLFlBQW9COzs7Ozs7O3dCQUdaLFdBQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQztnQ0FDdEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDOzZCQUNqRCxDQUFDLEVBQUE7O3dCQUZJLFFBQVEsR0FBRyxTQUVmO3dCQUVJLElBQUksR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO3dCQUVqQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7NEJBQ2xDLFdBQU87b0NBQ0wsSUFBSSxFQUFFLEtBQUs7b0NBQ1gsS0FBSyxFQUFFLElBQUk7aUNBQ1osRUFBQTt5QkFDRjt3QkFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFOzRCQUMzQixNQUFNLElBQUkscUJBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7eUJBQ3JDO3dCQUVELFdBQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBQTs7O3dCQUVsQyxJQUFJLElBQUksQ0FBQyxrQkFBa0I7NEJBQUUsTUFBTSxPQUFLLENBQUE7d0JBQ3hDLE1BQU0sT0FBSyxDQUFBOzs7OztLQUVkO0lBRUssaURBQVksR0FBbEIsVUFDRSxJQUFZLEVBQ1osT0FHQzs7Ozs7NEJBT1csV0FBTSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQUE7O3dCQUFwRCxHQUFHLEdBQUcsU0FBOEM7d0JBRTFELElBQUksR0FBRyxDQUFDLElBQUksRUFBRTs0QkFDWixXQUFPO29DQUNMLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtpQ0FDeEMsRUFBQTt5QkFDRjt3QkFFRCxXQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQXFCLEVBQUUsRUFBQTs7OztLQUN4RDtJQUVLLDJDQUFNLEdBQVosVUFBYSxLQUFlOzs7Ozs7Ozt3QkFHbEIsY0FBWSxFQUFFLENBQUE7d0JBQ2QsVUFBVSxHQUFlLEVBQUUsQ0FBQTt3QkFDakMsS0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxXQUFTLEVBQUU7NEJBQ2hELFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVMsQ0FBQyxDQUFDLENBQUE7eUJBQy9DO3dCQUd1QixXQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFBLEtBQUssSUFBSSxPQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLEtBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUMsRUFBL0MsQ0FBK0MsQ0FBQyxDQUFFLEVBQUE7O3dCQUE5RyxlQUFlLEdBQUcsU0FBNEY7d0JBRzlHLGdCQUFjLElBQUksR0FBRyxFQUFrQyxDQUFBO3dCQUM3RCxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQUMsTUFBTSxFQUFFLEtBQUs7NEJBQzNDLElBQUksTUFBTSxDQUFDLElBQUksRUFBRTtnQ0FDZixhQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxXQUFTLENBQUMsR0FBRyxXQUFTLEdBQUcsQ0FBQyxLQUFLLEdBQUcsV0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUE7NkJBQ3JHO3dCQUNILENBQUMsQ0FBQyxDQUFBO3dCQUdJLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUF6QixDQUF5QixDQUFDLENBQUE7d0JBQzNDLFdBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsVUFBQSxFQUFFLENBQUMsRUFBQTs7d0JBQTVDLE1BQU0sR0FBRyxTQUFtQzt3QkFHNUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQXZCLENBQXVCLENBQUMsQ0FBQTt3QkFDM0UsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTs0QkFDMUIsTUFBTSxJQUFJLHFCQUFZLENBQUMsNEJBQXFCLFdBQVcsQ0FBQyxNQUFNLGFBQVUsQ0FBQyxDQUFBO3lCQUMxRTt3QkFFSyxRQUFNLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7d0JBR3BDLFdBQU87Z0NBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBQyxDQUFDO29DQUNoQixJQUFNLElBQUksR0FBRyxhQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO29DQUUvQixPQUFPO3dDQUNMLElBQUksRUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSTt3Q0FDaEIsRUFBRSxFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxFQUFFO3dDQUNaLFNBQVMsRUFBRSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUTt3Q0FDekIsS0FBSyxFQUFFLFNBQVM7d0NBQ2hCLFVBQVUsRUFBRSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxTQUFTLEtBQUksS0FBRzt3Q0FDbEMsVUFBVSxFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxTQUFTO3dDQUMzQixnQkFBZ0IsRUFBRSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxjQUFjLEtBQUksS0FBRzt3Q0FDN0MsUUFBUSxFQUFFLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsS0FBSSxFQUFFO3dDQUk5QixPQUFPLEVBQUU7NENBQ1AsRUFBRSxFQUFFLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFROzRDQUNsQixJQUFJLEVBQUUsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVE7NENBQ3BCLEtBQUssRUFBRSxTQUFTOzRDQUNoQixNQUFNLEVBQUUsS0FBSzs0Q0FDYixVQUFVLEVBQUUsRUFBRTs0Q0FDZCxVQUFVLEVBQUUsS0FBRzt5Q0FDaEI7cUNBQ0YsQ0FBQTtnQ0FDSCxDQUFDLENBQUM7Z0NBQ0YsS0FBSyxFQUFFLElBQUk7NkJBQ1osRUFBQTs7O3dCQUVELElBQUksSUFBSSxDQUFDLGtCQUFrQjs0QkFBRSxNQUFNLFFBQUssQ0FBQTt3QkFDeEMsSUFBSSxJQUFBLHVCQUFjLEVBQUMsUUFBSyxDQUFDLEVBQUU7NEJBQ3pCLFdBQU87b0NBQ0wsSUFBSSxFQUFFLElBQUk7b0NBQ1YsS0FBSyxVQUFBO2lDQUNOLEVBQUE7eUJBQ0Y7d0JBQ0QsTUFBTSxRQUFLLENBQUE7Ozs7O0tBRWQ7SUFFSyx5Q0FBSSxHQUFWOzs7Z0JBQ0UsTUFBTSxJQUFJLHFCQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQTs7O0tBQzFDO0lBRU8sa0RBQWEsR0FBckIsVUFBc0IsSUFBWTtRQUVoQyxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBR25FLE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFTyxzREFBaUIsR0FBekIsVUFBMEIsSUFBWTs7UUFFcEMsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFBO1NBQ1o7UUFDRCxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRzFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUVqQixJQUFNLEtBQUssR0FBRyxDQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsR0FBRyxLQUFJLEVBQUUsQ0FBQTtZQUNwQyxJQUFJLEtBQUssRUFBRTtnQkFDVCxPQUFPLGtCQUFXLEtBQUssY0FBSSxJQUFJLENBQUMsUUFBUSxjQUFJLFNBQVMsQ0FBRSxDQUFBO2FBQ3hEO1NBQ0Y7YUFBTTtZQUNMLE1BQU0sSUFBSSxxQkFBWSxDQUFDLHFCQUFxQixDQUFDLENBQUE7U0FDOUM7SUFDSCxDQUFDO0lBRU8sNkNBQVEsR0FBaEIsVUFBaUIsSUFBWTtRQUMzQixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUNqQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1NBQzVDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDbkIsQ0FBQztJQW9CTyxnRUFBMkIsR0FBbkMsVUFBb0MsU0FBMkI7UUFDN0QsSUFBTSxNQUFNLEdBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUd2QyxJQUFJLFNBQVMsQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUN2QyxJQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQTtZQUNuQyxJQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQTtZQUdyQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO2dCQUUvQixNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFhLEtBQUssY0FBSSxNQUFNLE1BQUcsQ0FBQyxDQUFBO2FBQzdDO2lCQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBRXpDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQWEsS0FBSyxjQUFJLE1BQU0sQ0FBRSxDQUFDLENBQUE7YUFDNUM7aUJBQU07Z0JBR0wsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBYSxLQUFLLGNBQUksTUFBTSxNQUFHLENBQUMsQ0FBQTthQUM3QztTQUNGO1FBSUQsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQVUsU0FBUyxDQUFDLE1BQU0sQ0FBRSxDQUFDLENBQUE7U0FDMUM7UUFHRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFO1lBRW5DLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1lBQzdELE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQVcsT0FBTyxDQUFFLENBQUMsQ0FBQTtTQUNsQztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBaUJPLDJEQUFzQixHQUE5QixVQUErQixNQUFjO1FBTTNDLElBQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBR3pELElBQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFeEMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUVwQixPQUFPLE1BQU0sQ0FBQTtTQUNkO1FBR0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBaUJPLDZEQUF3QixHQUFoQyxVQUFpQyxNQUFjO1FBSzdDLElBQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBR3pELElBQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFeEMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUVwQixPQUFPLEVBQUUsQ0FBQTtTQUNWO1FBSUQsSUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRzdCLElBQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFMUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFFbkIsT0FBTyxZQUFZLENBQUE7U0FDcEI7UUFHRCxPQUFPLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzdDLENBQUM7SUFDSCxpQ0FBQztBQUFELENBQUMsQUFodUJELENBQWdELDBCQUFnQixHQWd1Qi9EO0FBaHVCWSxnRUFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdGFudHMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcblxuaW1wb3J0IHsgQ2xvdWRiYXNlU3RvcmFnZSwgQ09NUE9ORU5UX05BTUUsIElDbG91ZGJhc2VDb250ZXh0IH0gZnJvbSAnLi4vc3RvcmFnZSdcblxuaW1wb3J0IHsgQ2FtZWxpemUsIEZpbGVCb2R5LCBGaWxlT2JqZWN0LCBGaWxlT2JqZWN0VjIsIEZpbGVPcHRpb25zLCBUcmFuc2Zvcm1PcHRpb25zIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IGlzU3RvcmFnZUVycm9yLCBTdG9yYWdlRXJyb3IgfSBmcm9tICcuL2Vycm9ycydcblxuY29uc3QgeyBFUlJPUlMgfSA9IGNvbnN0YW50c1xuXG5leHBvcnQgY2xhc3MgU3VwYWJhc2VGaWxlQVBJTGlrZVN0b3JhZ2UgZXh0ZW5kcyBDbG91ZGJhc2VTdG9yYWdlIHtcbiAgcHJpdmF0ZSBzaG91bGRUaHJvd09uRXJyb3IgPSBmYWxzZVxuICBwcml2YXRlIGJ1Y2tldElkID0gJydcbiAgcHJpdmF0ZSBjb250ZXh0OiBJQ2xvdWRiYXNlQ29udGV4dFxuXG4gIGNvbnN0cnVjdG9yKGNvbnRleHQ/OiBJQ2xvdWRiYXNlQ29udGV4dCkge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0XG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0Py5jb25maWdcbiAgfVxuXG4gIGdldCByZXF1ZXN0KCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0Py5yZXF1ZXN0XG4gIH1cblxuICB0aHJvd09uRXJyb3IoKTogdGhpcyB7XG4gICAgdGhpcy5zaG91bGRUaHJvd09uRXJyb3IgPSB0cnVlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGZyb20oYnVja2V0Pzogc3RyaW5nKSB7XG4gICAgdGhpcy5idWNrZXRJZCA9IGJ1Y2tldCB8fCAnJ1xuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBhc3luYyB1cGxvYWQoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGZpbGVCb2R5OiBGaWxlQm9keSxcbiAgICBmaWxlT3B0aW9ucz86IEZpbGVPcHRpb25zLFxuICApOiBQcm9taXNlPFxuICAgIHsgZGF0YTogeyBpZDogc3RyaW5nOyBwYXRoOiBzdHJpbmc7IGZ1bGxQYXRoOiBzdHJpbmcgfTsgZXJyb3I6IG51bGwgfSB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9XG4gICAgPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHsgdXBzZXJ0OiB0cnVlLCAuLi5maWxlT3B0aW9ucyB9XG4gICAgY29uc3QgeyBjYWNoZUNvbnRyb2wsIGNvbnRlbnRUeXBlLCBtZXRhZGF0YSB9ID0gb3B0aW9uc1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjbG91ZFBhdGggPSB0aGlzLl9nZXRDbG91ZFBhdGgocGF0aClcbiAgICAgIGNvbnN0IHVwbG9hZEZpbGVQYXJhbXM6IFBhcmFtZXRlcnM8Q2xvdWRiYXNlU3RvcmFnZVsndXBsb2FkRmlsZSddPlswXSA9IHtcbiAgICAgICAgY2xvdWRQYXRoLFxuICAgICAgICBmaWxlUGF0aDogZmlsZUJvZHkgYXMgYW55LFxuICAgICAgfVxuXG4gICAgICBpZiAoY2FjaGVDb250cm9sIHx8IGNvbnRlbnRUeXBlIHx8IG1ldGFkYXRhKSB7XG4gICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7fVxuICAgICAgICBpZiAoY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgaGVhZGVyc1snY2FjaGUtY29udHJvbCddID0gY2FjaGVDb250cm9sXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbnRlbnRUeXBlKSB7XG4gICAgICAgICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSBjb250ZW50VHlwZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICAgICAgaGVhZGVyc1sneC1jb3MtbWV0YWRhdGEtbWV0YWRhdGEnXSA9IHRoaXMudG9CYXNlNjQoSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpKVxuICAgICAgICB9XG5cbiAgICAgICAgdXBsb2FkRmlsZVBhcmFtcy5oZWFkZXJzID0gaGVhZGVyc1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnVwbG9hZEZpbGUodXBsb2FkRmlsZVBhcmFtcylcblxuICAgICAgLy8gSVVwbG9hZEZpbGVSZXMg5rKh5pyJIGNvZGUg5a2X5q6177yM5aaC5p6c5rKh5pyJIGZpbGVJRCDliJnooajnpLrlpLHotKVcbiAgICAgIGlmICghcmVzdWx0LmZpbGVJRCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNvZGU6IEVSUk9SUy5PUEVSQVRJT05fRkFJTCxcbiAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0udXBkYXRlXSBubyBmaWxlSUQgcmV0dXJuZWRgLFxuICAgICAgICB9KSwpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpZDogcmVzdWx0LmZpbGVJRCxcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIGZ1bGxQYXRoOiBwYXRoLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGxvYWRUb1NpZ25lZFVybChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgX3Rva2VuOiBzdHJpbmcsXG4gICAgZmlsZUJvZHk6IEZpbGVCb2R5LFxuICAgIGZpbGVPcHRpb25zPzogRmlsZU9wdGlvbnMsXG4gICk6IFByb21pc2U8XG4gICAgeyBkYXRhOiB7IGlkOiBzdHJpbmc7IHBhdGg6IHN0cmluZzsgZnVsbFBhdGg6IHN0cmluZyB9OyBlcnJvcjogbnVsbCB9IHwgeyBkYXRhOiBudWxsOyBlcnJvcjogU3RvcmFnZUVycm9yIH1cbiAgICA+IHtcbiAgICByZXR1cm4gdGhpcy51cGxvYWQocGF0aCwgZmlsZUJvZHksIGZpbGVPcHRpb25zKVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlU2lnbmVkVXBsb2FkVXJsKHBhdGg6IHN0cmluZyk6IFByb21pc2U8XG4gIHwge1xuICAgIGRhdGE6IHtcbiAgICAgIHNpZ25lZFVybDogc3RyaW5nXG4gICAgICB0b2tlbjogc3RyaW5nXG4gICAgICBwYXRoOiBzdHJpbmdcbiAgICAgIC8vIENsb3VkQmFzZSDpop3lpJbnmoTlhYPmlbDmja7lrZfmrrVcbiAgICAgIGF1dGhvcml6YXRpb24/OiBzdHJpbmdcbiAgICAgIGlkPzogc3RyaW5nXG4gICAgICBjb3NGaWxlSWQ/OiBzdHJpbmdcbiAgICAgIGRvd25sb2FkVXJsPzogc3RyaW5nXG4gICAgfVxuICAgIGVycm9yOiBudWxsXG4gIH1cbiAgfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfVxuICA+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2xvdWRQYXRoID0gdGhpcy5fZ2V0Q2xvdWRQYXRoKHBhdGgpXG5cbiAgICAgIGNvbnN0IHsgZGF0YTogbWV0YWRhdGEgfSA9IGF3YWl0IHRoaXMuZ2V0VXBsb2FkTWV0YWRhdGEoeyBjbG91ZFBhdGggfSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHNpZ25lZFVybDogbWV0YWRhdGEudXJsLFxuICAgICAgICAgIHRva2VuOiBtZXRhZGF0YS50b2tlbixcbiAgICAgICAgICBwYXRoLFxuICAgICAgICAgIC8vIOi/lOWbniBDbG91ZEJhc2Ug55qE6aKd5aSW5YWD5pWw5o2u77yM5L6bIHVwbG9hZFRvU2lnbmVkVXJsIOS9v+eUqFxuICAgICAgICAgIGF1dGhvcml6YXRpb246IG1ldGFkYXRhLmF1dGhvcml6YXRpb24sXG4gICAgICAgICAgaWQ6IG1ldGFkYXRhLmZpbGVJZCxcbiAgICAgICAgICBjb3NGaWxlSWQ6IG1ldGFkYXRhLmNvc0ZpbGVJZCxcbiAgICAgICAgICBkb3dubG9hZFVybDogbWV0YWRhdGEuZG93bmxvYWRfdXJsLFxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IgPyBlcnJvciA6IG5ldyBTdG9yYWdlRXJyb3IoZXJyb3IubWVzc2FnZSksXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdXBkYXRlKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBmaWxlQm9keTogRmlsZUJvZHksXG4gICAgZmlsZU9wdGlvbnM/OiBGaWxlT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxcbiAgICB7IGRhdGE6IHsgaWQ6IHN0cmluZzsgcGF0aDogc3RyaW5nOyBmdWxsUGF0aDogc3RyaW5nIH07IGVycm9yOiBudWxsIH0gfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfVxuICAgID4ge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZChwYXRoLCBmaWxlQm9keSwgeyAuLi5maWxlT3B0aW9ucywgdXBzZXJ0OiB0cnVlIH0pXG4gIH1cblxuICBhc3luYyBtb3ZlKFxuICAgIGZyb21QYXRoOiBzdHJpbmcsXG4gICAgdG9QYXRoOiBzdHJpbmcsXG4gICAgLy8gb3B0aW9ucz86IERlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogUHJvbWlzZTx7IGRhdGE6IHsgbWVzc2FnZTogc3RyaW5nIH07IGVycm9yOiBudWxsIH0gfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvcHlGaWxlKHtcbiAgICAgICAgZmlsZUxpc3Q6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzcmNQYXRoOiB0aGlzLl9nZXRDbG91ZFBhdGgoZnJvbVBhdGgpLFxuICAgICAgICAgICAgZHN0UGF0aDogdGhpcy5fZ2V0Q2xvdWRQYXRoKHRvUGF0aCksXG4gICAgICAgICAgICBvdmVyd3JpdGU6IHRydWUsXG4gICAgICAgICAgICByZW1vdmVPcmlnaW5hbDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSlcblxuICAgICAgaWYgKHJlc3VsdC5maWxlTGlzdFswXS5jb2RlICYmIHJlc3VsdC5maWxlTGlzdFswXS5jb2RlICE9PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcihyZXN1bHQuZmlsZUxpc3RbMF0ubWVzc2FnZSB8fCAnTW92ZSBmYWlsZWQnKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiB7IG1lc3NhZ2U6IGBGaWxlIG1vdmVkIGZyb20gJHtmcm9tUGF0aH0gdG8gJHt0b1BhdGh9YCB9LFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICBhc3luYyBjb3B5KFxuICAgIGZyb21QYXRoOiBzdHJpbmcsXG4gICAgdG9QYXRoOiBzdHJpbmcsXG4gICAgLy8gb3B0aW9ucz86IERlc3RpbmF0aW9uT3B0aW9ucyxcbiAgKTogUHJvbWlzZTx7IGRhdGE6IHsgcGF0aDogc3RyaW5nIH07IGVycm9yOiBudWxsIH0gfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvcHlGaWxlKHtcbiAgICAgICAgZmlsZUxpc3Q6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzcmNQYXRoOiB0aGlzLl9nZXRDbG91ZFBhdGgoZnJvbVBhdGgpLFxuICAgICAgICAgICAgZHN0UGF0aDogdGhpcy5fZ2V0Q2xvdWRQYXRoKHRvUGF0aCksXG4gICAgICAgICAgICBvdmVyd3JpdGU6IHRydWUsXG4gICAgICAgICAgICByZW1vdmVPcmlnaW5hbDogZmFsc2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pXG5cbiAgICAgIGlmIChyZXN1bHQuZmlsZUxpc3RbMF0uY29kZSAmJiByZXN1bHQuZmlsZUxpc3RbMF0uY29kZSAhPT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgIHRocm93IG5ldyBTdG9yYWdlRXJyb3IocmVzdWx0LmZpbGVMaXN0WzBdLm1lc3NhZ2UgfHwgJ0NvcHkgZmFpbGVkJylcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogeyBwYXRoOiB0aGlzLl9nZXRDbG91ZFBhdGgodG9QYXRoKSB9LFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY3JlYXRlU2lnbmVkVXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBleHBpcmVzSW46IG51bWJlcixcbiAgICBvcHRpb25zPzoge1xuICAgICAgZG93bmxvYWQ/OiBzdHJpbmcgfCBib29sZWFuXG4gICAgICB0cmFuc2Zvcm0/OiBUcmFuc2Zvcm1PcHRpb25zXG4gICAgfSxcbiAgKTogUHJvbWlzZTx7IGRhdGE6IHsgc2lnbmVkVXJsOiBzdHJpbmcgfTsgZXJyb3I6IG51bGwgfSB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsb3VkUGF0aCA9IHRoaXMuX25vcm1hbGl6ZUNsb3VkSWQocGF0aClcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0VGVtcEZpbGVVUkwoe1xuICAgICAgICBmaWxlTGlzdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpbGVJRDogY2xvdWRQYXRoLFxuICAgICAgICAgICAgbWF4QWdlOiBleHBpcmVzSW4sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pXG5cbiAgICAgIC8vIElHZXRGaWxlVXJsSXRlbSDmnIkgY29kZSDlrZfmrrXkvYbmsqHmnIkgbWVzc2FnZSDlrZfmrrVcbiAgICAgIGlmIChyZXN1bHQuZmlsZUxpc3RbMF0uY29kZSAhPT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgIHRocm93IG5ldyBTdG9yYWdlRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgc2lnbmVkIFVSTDogWyR7cmVzdWx0LmZpbGVMaXN0WzBdLmNvZGV9XSAke3Jlc3VsdC5maWxlTGlzdFswXS5maWxlSUR9YClcbiAgICAgIH1cblxuICAgICAgbGV0IHNpZ25lZFVybCA9IHJlc3VsdC5maWxlTGlzdFswXS5kb3dubG9hZF91cmxcblxuICAgICAgLy8g5p6E5bu65p+l6K+i5Y+C5pWwXG4gICAgICBjb25zdCBxdWVyeVBhcmFtczogc3RyaW5nW10gPSBbXVxuXG4gICAgICAvLyDlpoLmnpzmnIkgZG93bmxvYWQg5Y+C5pWw77yM5re75Yqg5YiwIFVSTCDkuK1cbiAgICAgIGlmIChvcHRpb25zPy5kb3dubG9hZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5kb3dubG9hZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyBkb3dubG9hZCDmmK/mlofku7blkI1cbiAgICAgICAgICBxdWVyeVBhcmFtcy5wdXNoKGBkb3dubG9hZD0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLmRvd25sb2FkKX1gKVxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuZG93bmxvYWQgPT09IHRydWUpIHtcbiAgICAgICAgICAvLyBkb3dubG9hZCDmmK8gdHJ1Ze+8jOS9v+eUqOWOn+aWh+S7tuWQjeaIlum7mOiupOWAvFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goJ2Rvd25sb2FkPXRydWUnKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIOWmguaenOacieWbvueJh+i9rOaNouWPguaVsO+8jOa3u+WKoOWIsCBVUkwg5LitXG4gICAgICBpZiAob3B0aW9ucz8udHJhbnNmb3JtKSB7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybVF1ZXJ5ID0gdGhpcy5fdHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmcob3B0aW9ucy50cmFuc2Zvcm0pXG4gICAgICAgIGlmICh0cmFuc2Zvcm1RdWVyeSkge1xuICAgICAgICAgIHF1ZXJ5UGFyYW1zLnB1c2godHJhbnNmb3JtUXVlcnkpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8g5ou85o6l5omA5pyJ5p+l6K+i5Y+C5pWwXG4gICAgICBpZiAocXVlcnlQYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBzZXBhcmF0b3IgPSBzaWduZWRVcmwuaW5jbHVkZXMoJz8nKSA/ICcmJyA6ICc/J1xuICAgICAgICBzaWduZWRVcmwgPSBgJHtzaWduZWRVcmx9JHtzZXBhcmF0b3J9JHtxdWVyeVBhcmFtcy5qb2luKCcmJyl9YFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiB7IHNpZ25lZFVybCB9LFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVTaWduZWRVcmxzKFxuICAgIHBhdGhzOiBzdHJpbmdbXSxcbiAgICBleHBpcmVzSW46IG51bWJlcixcbiAgICAvLyBvcHRpb25zPzoge1xuICAgIC8vICAgZG93bmxvYWQ/OiBzdHJpbmcgfCBib29sZWFuXG4gICAgLy8gfSxcbiAgKTogUHJvbWlzZTxcbiAgICB8IHsgZGF0YTogQXJyYXk8eyBwYXRoOiBzdHJpbmc7IHNpZ25lZFVybDogc3RyaW5nOyBlcnJvcjogc3RyaW5nIHwgbnVsbCB9PjsgZXJyb3I6IG51bGwgfVxuICAgIHwgeyBkYXRhOiBudWxsOyBlcnJvcjogU3RvcmFnZUVycm9yIH1cbiAgICA+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZmlsZUxpc3QgPSBwYXRocy5tYXAocCA9PiAoe1xuICAgICAgICBmaWxlSUQ6IHRoaXMuX25vcm1hbGl6ZUNsb3VkSWQocCksXG4gICAgICAgIG1heEFnZTogZXhwaXJlc0luLFxuICAgICAgfSkpXG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0VGVtcEZpbGVVUkwoeyBmaWxlTGlzdCB9KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiByZXN1bHQuZmlsZUxpc3QubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+ICh7XG4gICAgICAgICAgcGF0aDogcGF0aHNbaW5kZXhdLFxuICAgICAgICAgIHNpZ25lZFVybDogaXRlbS50ZW1wRmlsZVVSTCB8fCAnJyxcbiAgICAgICAgICBlcnJvcjogaXRlbS5jb2RlID09PSAnU1VDQ0VTUycgPyBudWxsIDogaXRlbS5tZXNzYWdlLFxuICAgICAgICB9KSksXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRvd25sb2FkKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBvcHRpb25zPzogVHJhbnNmb3JtT3B0aW9ucyxcbiAgKTogUHJvbWlzZTx7XG4gICAgICBkYXRhOiBCbG9iXG4gICAgICBlcnJvcjogU3RvcmFnZUVycm9yIHwgbnVsbFxuICAgIH0+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBzaWduZWRVcmxSZXN1bHQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNpZ25lZFVybChwYXRoLCA2MDAsIHsgdHJhbnNmb3JtOiBvcHRpb25zIH0pXG4gICAgICAgICAgaWYgKHNpZ25lZFVybFJlc3VsdC5lcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgc2lnbmVkVXJsUmVzdWx0LmVycm9yXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHRtcFVybCA9IGVuY29kZVVSSShzaWduZWRVcmxSZXN1bHQuZGF0YT8uc2lnbmVkVXJsKVxuXG4gICAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCAodGhpcyBhcyBhbnkpLnJlcXVlc3QucmVxQ2xhc3MuZ2V0KHtcbiAgICAgICAgICAgIHVybDogdG1wVXJsLFxuICAgICAgICAgICAgaGVhZGVyczoge30sIC8vIOS4i+i9vei1hOa6kOivt+axguS4jee7j+i/h3NlcnZpY2XvvIxoZWFkZXLmuIXnqbpcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBTdG9yYWdlRXJyb3IoJ0Rvd25sb2FkIGZhaWxlZDogbm8gZmlsZSBjb250ZW50JylcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyDlsIYgQnVmZmVyIOi9rOaNouS4uiBVaW50OEFycmF5IOS7peWFvOWuuSBCbG9iXG4gICAgICAgICAgcmV0dXJuIG5ldyBCbG9iKFtkYXRhXSlcbiAgICAgICAgfSkoKSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yKSB0aHJvdyBlcnJvclxuICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluaWh+S7tuS/oeaBr1xuICAgKlxuICAgKiBAcGFyYW0gcGF0aE9yRmlsZUlkIC0g55u45a+56Lev5b6E77yI5aaCICdpbWFnZXMvcGhvdG8uanBnJ++8ieaIliBDbG91ZEJhc2UgZmlsZUlE77yI5LulICdjbG91ZDovLycg5byA5aS077yJXG4gICAqIEByZXR1cm5zIOaWh+S7tuS/oeaBr+WvueixoVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIC8vIOS9v+eUqOebuOWvuei3r+W+hFxuICAgKiBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGJ1Y2tldC5pbmZvKCdpbWFnZXMvcGhvdG8uanBnJylcbiAgICpcbiAgICogLy8g5L2/55SoIENsb3VkQmFzZSBmaWxlSURcbiAgICogY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBidWNrZXQuaW5mbygnY2xvdWQ6Ly9lbnYtaWQueHh4eC14eHh4L2ltYWdlcy9waG90by5qcGcnKVxuICAgKiBgYGBcbiAgICovXG4gIGFzeW5jIGluZm8ocGF0aE9yRmlsZUlkOiBzdHJpbmcsKTogUHJvbWlzZTx7IGRhdGE6IENhbWVsaXplPEZpbGVPYmplY3RWMj47IGVycm9yOiBudWxsIH0gfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyDliKTmlq3mmK8gZmlsZUlEIOi/mOaYr+ebuOWvuei3r+W+hFxuICAgICAgY29uc3QgaXNGaWxlSWQgPSBwYXRoT3JGaWxlSWQuc3RhcnRzV2l0aCgnY2xvdWQ6Ly8nKVxuICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSBpc0ZpbGVJZCA/IHRoaXMuX2V4dHJhY3RQYXRoRnJvbUZpbGVJZChwYXRoT3JGaWxlSWQpIDogcGF0aE9yRmlsZUlkXG4gICAgICBjb25zdCBidWNrZXRJZCA9IGlzRmlsZUlkID8gdGhpcy5fZXh0cmFjdEJ1Y2tldEZyb21GaWxlSWQocGF0aE9yRmlsZUlkKSA6IHRoaXMuYnVja2V0SWRcblxuICAgICAgY29uc3QgZmlsZUluZm8gPSBhd2FpdCB0aGlzLmdldEZpbGVJbmZvKHtcbiAgICAgICAgZmlsZUxpc3Q6IFt0aGlzLl9ub3JtYWxpemVDbG91ZElkKHBhdGhPckZpbGVJZCldLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgaXRlbSA9IGZpbGVJbmZvLmZpbGVMaXN0WzBdXG5cbiAgICAgIGlmIChpdGVtLmNvZGUgIT09ICdTVUNDRVNTJykge1xuICAgICAgICB0aHJvdyBuZXcgU3RvcmFnZUVycm9yKGl0ZW0ubWVzc2FnZSlcbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG4gICAgICBjb25zdCBsYXN0TW9kaWZpZWQgPSAoaXRlbS5sYXN0TW9kaWZpZWQgPyBuZXcgRGF0ZShpdGVtLmxhc3RNb2RpZmllZCkgOiBuZXcgRGF0ZSgpKS50b0lTT1N0cmluZygpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgaWQ6IGl0ZW0uZmlsZUlELFxuICAgICAgICAgIHZlcnNpb246ICcxJyxcbiAgICAgICAgICBuYW1lOiBkaXNwbGF5TmFtZSxcbiAgICAgICAgICBidWNrZXRJZCxcbiAgICAgICAgICB1cGRhdGVkQXQ6IGxhc3RNb2RpZmllZCxcbiAgICAgICAgICBjcmVhdGVkQXQ6IGxhc3RNb2RpZmllZCxcbiAgICAgICAgICBsYXN0QWNjZXNzZWRBdDogbm93LFxuICAgICAgICAgIHNpemU6IGl0ZW0uc2l6ZSxcbiAgICAgICAgICBjYWNoZUNvbnRyb2w6IGl0ZW0uY2FjaGVDb250cm9sLFxuICAgICAgICAgIGNvbnRlbnRUeXBlOiBpdGVtLmNvbnRlbnRUeXBlLFxuICAgICAgICAgIGV0YWc6IGl0ZW0uZXRhZyxcbiAgICAgICAgICBsYXN0TW9kaWZpZWQsXG4gICAgICAgICAgbWV0YWRhdGE6IHt9LFxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICBlcnJvcjogZXJyb3IgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IgPyBlcnJvciA6IG5ldyBTdG9yYWdlRXJyb3IoZXJyb3IubWVzc2FnZSksXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZXhpc3RzKHBhdGhPckZpbGVJZDogc3RyaW5nKTogUHJvbWlzZTx7IGRhdGE6IGJvb2xlYW47IGVycm9yOiBudWxsIH0gfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyDliKTmlq3mmK8gZmlsZUlEIOi/mOaYr+ebuOWvuei3r+W+hFxuICAgICAgY29uc3QgZmlsZUluZm8gPSBhd2FpdCB0aGlzLmdldEZpbGVJbmZvKHtcbiAgICAgICAgZmlsZUxpc3Q6IFt0aGlzLl9ub3JtYWxpemVDbG91ZElkKHBhdGhPckZpbGVJZCldLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgaXRlbSA9IGZpbGVJbmZvLmZpbGVMaXN0WzBdXG5cbiAgICAgIGlmIChpdGVtLmNvZGUgPT09ICdGSUxFX05PVF9GT1VORCcpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBmYWxzZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbS5jb2RlICE9PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcihpdGVtLm1lc3NhZ2UpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7IGRhdGE6IHRydWUsIGVycm9yOiBudWxsIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldFB1YmxpY1VybChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGRvd25sb2FkPzogc3RyaW5nIHwgYm9vbGVhblxuICAgICAgdHJhbnNmb3JtPzogVHJhbnNmb3JtT3B0aW9uc1xuICAgIH0sXG4gICk6IFByb21pc2U8XG4gICAgfCB7XG4gICAgICBkYXRhOiB7IHB1YmxpY1VybDogc3RyaW5nIH1cbiAgICB9XG4gICAgfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfVxuICAgID4ge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuY3JlYXRlU2lnbmVkVXJsKHBhdGgsIDYwMCwgb3B0aW9ucylcblxuICAgIGlmIChyZXMuZGF0YSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogeyBwdWJsaWNVcmw6IHJlcy5kYXRhLnNpZ25lZFVybCB9LFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGRhdGE6IG51bGwsIGVycm9yOiByZXMuZXJyb3IgYXMgU3RvcmFnZUVycm9yIH1cbiAgfVxuXG4gIGFzeW5jIHJlbW92ZShwYXRoczogc3RyaW5nW10pOiBQcm9taXNlPHsgZGF0YTogRmlsZU9iamVjdFtdOyBlcnJvcjogbnVsbCB9IHwgeyBkYXRhOiBudWxsOyBlcnJvcjogU3RvcmFnZUVycm9yIH0+IHtcbiAgICB0cnkge1xuICAgICAgLy8g5YiG57uE6I635Y+W5paH5Lu25L+h5oGv77yM5q+P57uE5pyA5aSaMTDkuKpcbiAgICAgIGNvbnN0IGNodW5rU2l6ZSA9IDEwXG4gICAgICBjb25zdCBwYXRoQ2h1bmtzOiBzdHJpbmdbXVtdID0gW11cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aHMubGVuZ3RoOyBpICs9IGNodW5rU2l6ZSkge1xuICAgICAgICBwYXRoQ2h1bmtzLnB1c2gocGF0aHMuc2xpY2UoaSwgaSArIGNodW5rU2l6ZSkpXG4gICAgICB9XG5cbiAgICAgIC8vIOW5tuihjOiOt+WPluaJgOacieWIhue7hOeahOaWh+S7tuS/oeaBr1xuICAgICAgY29uc3QgZmlsZUluZm9SZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocGF0aENodW5rcy5tYXAoY2h1bmsgPT4gUHJvbWlzZS5hbGwoY2h1bmsubWFwKHBhdGggPT4gdGhpcy5pbmZvKHBhdGgpKSkpLClcblxuICAgICAgLy8g5ZCI5bm25omA5pyJ5paH5Lu25L+h5oGv5bm25p6E5bu65pig5bCE6KGo77yIcGF0aCAtPiBmaWxlSW5mb++8iVxuICAgICAgY29uc3QgZmlsZUluZm9NYXAgPSBuZXcgTWFwPHN0cmluZywgQ2FtZWxpemU8RmlsZU9iamVjdFYyPj4oKVxuICAgICAgZmlsZUluZm9SZXN1bHRzLmZsYXQoKS5mb3JFYWNoKChyZXN1bHQsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQuZGF0YSkge1xuICAgICAgICAgIGZpbGVJbmZvTWFwLnNldChwYXRoc1tNYXRoLmZsb29yKGluZGV4IC8gY2h1bmtTaXplKSAqIGNodW5rU2l6ZSArIChpbmRleCAlIGNodW5rU2l6ZSldLCByZXN1bHQuZGF0YSlcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgLy8g5omn6KGM5Yig6Zmk5pON5L2cXG4gICAgICBjb25zdCBmaWxlTGlzdCA9IHBhdGhzLm1hcChwID0+IHRoaXMuX25vcm1hbGl6ZUNsb3VkSWQocCkpXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmRlbGV0ZUZpbGUoeyBmaWxlTGlzdCB9KVxuXG4gICAgICAvLyBJRGVsZXRlRmlsZVJlcyDnmoQgZmlsZUxpc3Qg5pWw57uE5Lit5q+P5Liq6aG55pyJIGNvZGUg5a2X5q61XG4gICAgICBjb25zdCBmYWlsZWRGaWxlcyA9IHJlc3VsdC5maWxlTGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmNvZGUgIT09ICdTVUNDRVNTJylcbiAgICAgIGlmIChmYWlsZWRGaWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBTdG9yYWdlRXJyb3IoYERlbGV0ZSBmYWlsZWQgZm9yICR7ZmFpbGVkRmlsZXMubGVuZ3RofSBmaWxlKHMpYClcbiAgICAgIH1cblxuICAgICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpXG5cbiAgICAgIC8vIOS9v+eUqOiOt+WPluWIsOeahOaWh+S7tuS/oeaBr+aehOW7uui/lOWbnuaVsOaNrlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YTogcGF0aHMubWFwKChwKSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5mbyA9IGZpbGVJbmZvTWFwLmdldChwKVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGluZm8/Lm5hbWUsXG4gICAgICAgICAgICBpZDogaW5mbz8uaWQsXG4gICAgICAgICAgICBidWNrZXRfaWQ6IGluZm8/LmJ1Y2tldElkLFxuICAgICAgICAgICAgb3duZXI6IHVuZGVmaW5lZCwgLy8g5peg5rOV6K6h566Xb3duZXJcbiAgICAgICAgICAgIHVwZGF0ZWRfYXQ6IGluZm8/LnVwZGF0ZWRBdCB8fCBub3csXG4gICAgICAgICAgICBjcmVhdGVkX2F0OiBpbmZvPy5jcmVhdGVkQXQsXG4gICAgICAgICAgICBsYXN0X2FjY2Vzc2VkX2F0OiBpbmZvPy5sYXN0QWNjZXNzZWRBdCB8fCBub3csXG4gICAgICAgICAgICBtZXRhZGF0YTogaW5mbz8ubWV0YWRhdGEgfHwge30sXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAqIFRPRE86IOiOt+WPluihpeWFqCBCdWNrZXQg5L+h5oGvXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIGJ1Y2tldHM6IHtcbiAgICAgICAgICAgICAgaWQ6IGluZm8/LmJ1Y2tldElkLFxuICAgICAgICAgICAgICBuYW1lOiBpbmZvPy5idWNrZXRJZCxcbiAgICAgICAgICAgICAgb3duZXI6IHVuZGVmaW5lZCwgLy8g5peg5rOV6K6h566Xb3duZXJcbiAgICAgICAgICAgICAgcHVibGljOiBmYWxzZSwgLy8g5pyq55+lXG4gICAgICAgICAgICAgIGNyZWF0ZWRfYXQ6ICcnLCAvLyDmnKrnn6VcbiAgICAgICAgICAgICAgdXBkYXRlZF9hdDogbm93LCAvLyDmnKrnn6VcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yKSB0aHJvdyBlcnJvclxuICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbGlzdCgpIHtcbiAgICB0aHJvdyBuZXcgU3RvcmFnZUVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q2xvdWRQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8g5riF55CG6Lev5b6E77ya56e76Zmk6aaW5bC+5pac5p2g77yM5ZCI5bm25aSa5Liq5pac5p2gXG4gICAgY29uc3QgY2xlYW5QYXRoID0gcGF0aC5yZXBsYWNlKC9eXFwvfFxcLyQvZywgJycpLnJlcGxhY2UoL1xcLysvZywgJy8nKVxuXG4gICAgLy8g5ZCm5YiZ6L+U5Zue5riF55CG5ZCO55qE55u45a+56Lev5b6EXG4gICAgcmV0dXJuIGNsZWFuUGF0aFxuICB9XG5cbiAgcHJpdmF0ZSBfbm9ybWFsaXplQ2xvdWRJZChwYXRoOiBzdHJpbmcpIHtcbiAgICAvLyDlpoLmnpzlt7Lnu4/mmK8gY2xvdWQ6Ly8g5qC85byP77yM55u05o6l6L+U5ZueXG4gICAgaWYgKC9eY2xvdWQ6XFwvXFwvLy50ZXN0KHBhdGgpKSB7XG4gICAgICByZXR1cm4gcGF0aFxuICAgIH1cbiAgICBjb25zdCBjbGVhblBhdGggPSB0aGlzLl9nZXRDbG91ZFBhdGgocGF0aClcblxuICAgIC8vIOWmguaenOiuvue9ruS6hiBidWNrZXRJZO+8jOaehOW7uuWujOaVtOeahCBjbG91ZDovLyDot6/lvoRcbiAgICBpZiAodGhpcy5idWNrZXRJZCkge1xuICAgICAgLy8g6I635Y+W546v5aKDIElEXG4gICAgICBjb25zdCBlbnZJZCA9IHRoaXMuY29uZmlnPy5lbnYgfHwgJydcbiAgICAgIGlmIChlbnZJZCkge1xuICAgICAgICByZXR1cm4gYGNsb3VkOi8vJHtlbnZJZH0uJHt0aGlzLmJ1Y2tldElkfS8ke2NsZWFuUGF0aH1gXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBTdG9yYWdlRXJyb3IoJ2J1Y2tldElkIGlzIG5vdCBzZXQnKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdG9CYXNlNjQoZGF0YTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBCdWZmZXIgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20oZGF0YSkudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgfVxuICAgIHJldHVybiBidG9hKGRhdGEpXG4gIH1cblxuICAvKipcbiAgICog5bCGIFRyYW5zZm9ybU9wdGlvbnMg6L2s5o2i5Li66IW+6K6v5LqR5pWw5o2u5LiH6LGh55qEIGltYWdlTW9ncjIg5p+l6K+i5a2X56ym5LiyXG4gICAqXG4gICAqIOiFvuiur+S6keaVsOaNruS4h+ixoeS9v+eUqCBpbWFnZU1vZ3IyIOaOpeWPo+i/m+ihjOWbvueJh+WkhOeQhu+8jOaUr+aMgeS7peS4i+WPguaVsO+8mlxuICAgKiAtIC90aHVtYm5haWwvPFdpZHRoPng8SGVpZ2h0PiAtIOe8qeaUvlxuICAgKiAtIC9mb3JtYXQvPEZvcm1hdD4gLSDmoLzlvI/ovazmjaJcbiAgICogLSAvcXVhbGl0eS88UXVhbGl0eT4gLSDotKjph4/osIPmlbRcbiAgICogLSAvcnF1YWxpdHkvPFF1YWxpdHk+IC0g55u45a+56LSo6YePXG4gICAqXG4gICAqIEBwYXJhbSB0cmFuc2Zvcm0gLSBTdXBhYmFzZSBUcmFuc2Zvcm1PcHRpb25zXG4gICAqIEByZXR1cm5zIOiFvuiur+S6keaVsOaNruS4h+ixoeeahOafpeivouWtl+espuS4slxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIF90cmFuc2Zvcm1PcHRzVG9RdWVyeVN0cmluZyh7IHdpZHRoOiAzMDAsIGhlaWdodDogMjAwLCBxdWFsaXR5OiA4MCwgZm9ybWF0OiAnb3JpZ2luJyB9KVxuICAgKiAvLyDov5Tlm546ICdpbWFnZU1vZ3IyL3RodW1ibmFpbC8zMDB4MjAwL3F1YWxpdHkvODAnXG4gICAqIGBgYFxuICAgKi9cbiAgcHJpdmF0ZSBfdHJhbnNmb3JtT3B0c1RvUXVlcnlTdHJpbmcodHJhbnNmb3JtOiBUcmFuc2Zvcm1PcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJhbXM6IHN0cmluZ1tdID0gWydpbWFnZU1vZ3IyJ11cblxuICAgIC8vIOWkhOeQhue8qeaUvuWPguaVsFxuICAgIGlmICh0cmFuc2Zvcm0ud2lkdGggfHwgdHJhbnNmb3JtLmhlaWdodCkge1xuICAgICAgY29uc3Qgd2lkdGggPSB0cmFuc2Zvcm0ud2lkdGggfHwgJydcbiAgICAgIGNvbnN0IGhlaWdodCA9IHRyYW5zZm9ybS5oZWlnaHQgfHwgJydcblxuICAgICAgLy8g5qC55o2uIHJlc2l6ZSDmqKHlvI/pgInmi6nkuI3lkIznmoTnvKnmlL7mlrnlvI9cbiAgICAgIGlmICh0cmFuc2Zvcm0ucmVzaXplID09PSAnZmlsbCcpIHtcbiAgICAgICAgLy8gZmlsbDog5by65Yi257yp5pS+5Yiw5oyH5a6a5bC65a+477yM5Y+v6IO95Y+Y5b2iXG4gICAgICAgIHBhcmFtcy5wdXNoKGB0aHVtYm5haWwvJHt3aWR0aH14JHtoZWlnaHR9IWApXG4gICAgICB9IGVsc2UgaWYgKHRyYW5zZm9ybS5yZXNpemUgPT09ICdjb250YWluJykge1xuICAgICAgICAvLyBjb250YWluOiDnrYnmr5TnvKnmlL7vvIzlrozmlbTmmL7npLrlnKjmjIflrprlsLrlr7jlhoVcbiAgICAgICAgcGFyYW1zLnB1c2goYHRodW1ibmFpbC8ke3dpZHRofXgke2hlaWdodH1gKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gY292ZXIgKOm7mOiupCk6IOetieavlOe8qeaUvu+8jOWhq+WFheaMh+WumuWwuuWvuO+8jOWPr+iDveijgeWJqlxuICAgICAgICAvLyDkvb/nlKggL3RodW1ibmFpbC88V2lkdGg+eDxIZWlnaHQ+XiDooajnpLrloavlhYXmqKHlvI9cbiAgICAgICAgcGFyYW1zLnB1c2goYHRodW1ibmFpbC8ke3dpZHRofXgke2hlaWdodH1eYClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyDlpITnkIbmoLzlvI/ovazmjaJcbiAgICAvLyBmb3JtYXQ6ICdvcmlnaW4nIOihqOekuuS/neaMgeWOn+agvOW8j++8jOS4jeS8oOatpOWPguaVsFxuICAgIGlmICh0cmFuc2Zvcm0uZm9ybWF0ICYmIHRyYW5zZm9ybS5mb3JtYXQgIT09ICdvcmlnaW4nKSB7XG4gICAgICBwYXJhbXMucHVzaChgZm9ybWF0LyR7dHJhbnNmb3JtLmZvcm1hdH1gKVxuICAgIH1cblxuICAgIC8vIOWkhOeQhui0qOmHj+WPguaVsFxuICAgIGlmICh0cmFuc2Zvcm0ucXVhbGl0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyDohb7orq/kupHmlbDmja7kuIfosaHnmoQgcXVhbGl0eSDlj4LmlbDojIPlm7TmmK8gMS0xMDBcbiAgICAgIGNvbnN0IHF1YWxpdHkgPSBNYXRoLm1heCgxLCBNYXRoLm1pbigxMDAsIHRyYW5zZm9ybS5xdWFsaXR5KSlcbiAgICAgIHBhcmFtcy5wdXNoKGBxdWFsaXR5LyR7cXVhbGl0eX1gKVxuICAgIH1cblxuICAgIHJldHVybiBwYXJhbXMuam9pbignLycpXG4gIH1cblxuICAvKipcbiAgICog5LuOIENsb3VkQmFzZSBmaWxlSUQg5Lit5o+Q5Y+W5paH5Lu26Lev5b6EXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlSWQgLSBDbG91ZEJhc2UgZmlsZUlEICjmoLzlvI86IGNsb3VkOi8vZW52LWlkLmJ1Y2tldC9wYXRoL3RvL2ZpbGUuanBnKVxuICAgKiBAcmV0dXJucyDmj5Dlj5bnmoTmlofku7bot6/lvoRcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBfZXh0cmFjdFBhdGhGcm9tRmlsZUlkKCdjbG91ZDovL3Rlc3QtZW52LnRlc3QtYnVja2V0L2ltYWdlcy9waG90by5qcGcnKVxuICAgKiAvLyDov5Tlm546ICdpbWFnZXMvcGhvdG8uanBnJ1xuICAgKlxuICAgKiBfZXh0cmFjdFBhdGhGcm9tRmlsZUlkKCdjbG91ZDovL3Rlc3QtZW52LnRlc3QtYnVja2V0L2ZpbGUudHh0JylcbiAgICogLy8g6L+U5ZueOiAnZmlsZS50eHQnXG4gICAqIGBgYFxuICAgKi9cbiAgcHJpdmF0ZSBfZXh0cmFjdFBhdGhGcm9tRmlsZUlkKGZpbGVJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyBmaWxlSUQg5qC85byPOiBjbG91ZDovL2Vudi1pZC5idWNrZXQvcGF0aC90by9maWxlLmpwZ1xuICAgIC8vIOmcgOimgeaPkOWPluesrOS4gOS4qiAvIOWQjumdoueahOaJgOacieWGheWuue+8iOWMheaLrCBidWNrZXQg5ZKM6Lev5b6E77yJXG4gICAgLy8g54S25ZCO5YaN5o+Q5Y+WIGJ1Y2tldCDlkI7pnaLnmoTot6/lvoTpg6jliIZcblxuICAgIC8vIOenu+mZpCBjbG91ZDovLyDliY3nvIBcbiAgICBjb25zdCB3aXRob3V0UHJvdG9jb2wgPSBmaWxlSWQucmVwbGFjZSgvXmNsb3VkOlxcL1xcLy8sICcnKVxuXG4gICAgLy8g5YiG5Ymy5Li6IFtlbnYtaWQuYnVja2V0LCBwYXRoLCB0bywgZmlsZS5qcGddXG4gICAgY29uc3QgcGFydHMgPSB3aXRob3V0UHJvdG9jb2wuc3BsaXQoJy8nKVxuXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgIC8vIOWmguaenOaXoOazleino+aekO+8jOi/lOWbnuWujOaVtOeahCBmaWxlSURcbiAgICAgIHJldHVybiBmaWxlSWRcbiAgICB9XG5cbiAgICAvLyDnp7vpmaTnrKzkuIDpg6jliIbvvIhlbnYtaWQuYnVja2V077yJ77yM6L+U5Zue5Ymp5L2Z6Lev5b6EXG4gICAgcmV0dXJuIHBhcnRzLnNsaWNlKDEpLmpvaW4oJy8nKVxuICB9XG5cbiAgLyoqXG4gICAqIOS7jiBDbG91ZEJhc2UgZmlsZUlEIOS4reaPkOWPliBidWNrZXQg5ZCN56ewXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlSWQgLSBDbG91ZEJhc2UgZmlsZUlEICjmoLzlvI86IGNsb3VkOi8vZW52LWlkLmJ1Y2tldC9wYXRoL3RvL2ZpbGUuanBnKVxuICAgKiBAcmV0dXJucyDmj5Dlj5bnmoQgYnVja2V0IOWQjeensFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIF9leHRyYWN0QnVja2V0RnJvbUZpbGVJZCgnY2xvdWQ6Ly90ZXN0LWVudi50ZXN0LWJ1Y2tldC9pbWFnZXMvcGhvdG8uanBnJylcbiAgICogLy8g6L+U5ZueOiAndGVzdC1idWNrZXQnXG4gICAqXG4gICAqIF9leHRyYWN0QnVja2V0RnJvbUZpbGVJZCgnY2xvdWQ6Ly9wcm9kLWVudi5teS1idWNrZXQvZmlsZS50eHQnKVxuICAgKiAvLyDov5Tlm546ICdteS1idWNrZXQnXG4gICAqIGBgYFxuICAgKi9cbiAgcHJpdmF0ZSBfZXh0cmFjdEJ1Y2tldEZyb21GaWxlSWQoZmlsZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIGZpbGVJRCDmoLzlvI86IGNsb3VkOi8vZW52LWlkLmJ1Y2tldC9wYXRoL3RvL2ZpbGUuanBnXG4gICAgLy8g6ZyA6KaB5o+Q5Y+WIGVudi1pZC5idWNrZXQg5Lit55qEIGJ1Y2tldCDpg6jliIZcblxuICAgIC8vIOenu+mZpCBjbG91ZDovLyDliY3nvIBcbiAgICBjb25zdCB3aXRob3V0UHJvdG9jb2wgPSBmaWxlSWQucmVwbGFjZSgvXmNsb3VkOlxcL1xcLy8sICcnKVxuXG4gICAgLy8g5YiG5Ymy5Li6IFtlbnYtaWQuYnVja2V0LCBwYXRoLCB0bywgZmlsZS5qcGddXG4gICAgY29uc3QgcGFydHMgPSB3aXRob3V0UHJvdG9jb2wuc3BsaXQoJy8nKVxuXG4gICAgaWYgKHBhcnRzLmxlbmd0aCA8IDEpIHtcbiAgICAgIC8vIOWmguaenOaXoOazleino+aekO+8jOi/lOWbnum7mOiupCBidWNrZXRcbiAgICAgIHJldHVybiAnJ1xuICAgIH1cblxuICAgIC8vIOesrOS4gOmDqOWIhuaYryBlbnYtaWQuYnVja2V077yM5o+Q5Y+WIGJ1Y2tldCDpg6jliIZcbiAgICAvLyDmoLzlvI86IGVudi1pZC5idWNrZXQg5oiWIGVudi1pZC5idWNrZXQtbmFtZVxuICAgIGNvbnN0IGVudkFuZEJ1Y2tldCA9IHBhcnRzWzBdXG5cbiAgICAvLyDmn6Xmib7nrKzkuIDkuKrngrnnmoTkvY3nva5cbiAgICBjb25zdCBkb3RJbmRleCA9IGVudkFuZEJ1Y2tldC5pbmRleE9mKCcuJylcblxuICAgIGlmIChkb3RJbmRleCA9PT0gLTEpIHtcbiAgICAgIC8vIOWmguaenOayoeacieeCue+8jOi/lOWbnuaVtOS4quWtl+espuS4slxuICAgICAgcmV0dXJuIGVudkFuZEJ1Y2tldFxuICAgIH1cblxuICAgIC8vIOi/lOWbnueCueWQjumdoueahOmDqOWIhu+8iGJ1Y2tldCDlkI3np7DvvIlcbiAgICByZXR1cm4gZW52QW5kQnVja2V0LnN1YnN0cmluZyhkb3RJbmRleCArIDEpXG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3VwYWJhc2UvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpbGVCb2R5ID1cbiAgfCBBcnJheUJ1ZmZlclxuICB8IEFycmF5QnVmZmVyVmlld1xuICB8IEJsb2JcbiAgfCBCdWZmZXJcbiAgfCBGaWxlXG4gIHwgRm9ybURhdGFcbiAgfCBOb2RlSlMuUmVhZGFibGVTdHJlYW1cbiAgfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PlxuICB8IFVSTFNlYXJjaFBhcmFtc1xuICB8IHN0cmluZ1xuXG4vKipcbiAqIFR5cGUgb2Ygc3RvcmFnZSBidWNrZXRcbiAqIC0gU1RBTkRBUkQ6IFJlZ3VsYXIgZmlsZSBzdG9yYWdlIGJ1Y2tldHNcbiAqIC0gQU5BTFlUSUNTOiBJY2ViZXJnIHRhYmxlLWJhc2VkIGJ1Y2tldHMgZm9yIGFuYWx5dGljYWwgd29ya2xvYWRzXG4gKi9cbmV4cG9ydCB0eXBlIEJ1Y2tldFR5cGUgPSAnU1RBTkRBUkQnIHwgJ0FOQUxZVElDUydcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXQge1xuICBpZDogc3RyaW5nXG4gIHR5cGU/OiBCdWNrZXRUeXBlXG4gIG5hbWU6IHN0cmluZ1xuICBvd25lcjogc3RyaW5nXG4gIGZpbGVfc2l6ZV9saW1pdD86IG51bWJlclxuICBhbGxvd2VkX21pbWVfdHlwZXM/OiBzdHJpbmdbXVxuICBjcmVhdGVkX2F0OiBzdHJpbmdcbiAgdXBkYXRlZF9hdDogc3RyaW5nXG4gIHB1YmxpYzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVPYmplY3Qge1xuICBuYW1lOiBzdHJpbmdcbiAgYnVja2V0X2lkOiBzdHJpbmdcbiAgb3duZXI6IHN0cmluZ1xuICBpZDogc3RyaW5nXG4gIHVwZGF0ZWRfYXQ6IHN0cmluZ1xuICBjcmVhdGVkX2F0OiBzdHJpbmdcbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIGxhc3RfYWNjZXNzZWRfYXQ6IHN0cmluZ1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICBidWNrZXRzOiBCdWNrZXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlT2JqZWN0VjIge1xuICBpZDogc3RyaW5nXG4gIHZlcnNpb246IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgYnVja2V0X2lkOiBzdHJpbmdcbiAgdXBkYXRlZF9hdDogc3RyaW5nXG4gIGNyZWF0ZWRfYXQ6IHN0cmluZ1xuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgbGFzdF9hY2Nlc3NlZF9hdDogc3RyaW5nXG4gIHNpemU/OiBudW1iZXJcbiAgY2FjaGVfY29udHJvbD86IHN0cmluZ1xuICBjb250ZW50X3R5cGU/OiBzdHJpbmdcbiAgZXRhZz86IHN0cmluZ1xuICBsYXN0X21vZGlmaWVkPzogc3RyaW5nXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0aGUgYXNzZXQgaXMgY2FjaGVkIGluIHRoZSBicm93c2VyIGFuZCBpbiB0aGUgU3VwYWJhc2UgQ0ROLiBUaGlzIGlzIHNldCBpbiB0aGUgYENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9PHNlY29uZHM+YCBoZWFkZXIuIERlZmF1bHRzIHRvIDM2MDAgc2Vjb25kcy5cbiAgICovXG4gIGNhY2hlQ29udHJvbD86IHN0cmluZ1xuICAvKipcbiAgICogdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlciB2YWx1ZS4gU2hvdWxkIGJlIHNwZWNpZmllZCBpZiB1c2luZyBhIGBmaWxlQm9keWAgdGhhdCBpcyBuZWl0aGVyIGBCbG9iYCBub3IgYEZpbGVgIG5vciBgRm9ybURhdGFgLCBvdGhlcndpc2Ugd2lsbCBkZWZhdWx0IHRvIGB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThgLlxuICAgKi9cbiAgY29udGVudFR5cGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFdoZW4gdXBzZXJ0IGlzIHNldCB0byB0cnVlLCB0aGUgZmlsZSBpcyBvdmVyd3JpdHRlbiBpZiBpdCBleGlzdHMuIFdoZW4gc2V0IHRvIGZhbHNlLCBhbiBlcnJvciBpcyB0aHJvd24gaWYgdGhlIG9iamVjdCBhbHJlYWR5IGV4aXN0cy4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHVwc2VydD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRoZSBkdXBsZXggb3B0aW9uIGlzIGEgc3RyaW5nIHBhcmFtZXRlciB0aGF0IGVuYWJsZXMgb3IgZGlzYWJsZXMgZHVwbGV4IHN0cmVhbWluZywgYWxsb3dpbmcgZm9yIGJvdGggcmVhZGluZyBhbmQgd3JpdGluZyBkYXRhIGluIHRoZSBzYW1lIHN0cmVhbS4gSXQgY2FuIGJlIHBhc3NlZCBhcyBhbiBvcHRpb24gdG8gdGhlIGZldGNoKCkgbWV0aG9kLlxuICAgKi9cbiAgZHVwbGV4Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhZGF0YSBvcHRpb24gaXMgYW4gb2JqZWN0IHRoYXQgYWxsb3dzIHlvdSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmaWxlLiBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBhbmQgc2VhcmNoIGZvciBmaWxlcy4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gY29udGFpbiBhbnkga2V5LXZhbHVlIHBhaXJzIHlvdSB3YW50IHRvIHN0b3JlLlxuICAgKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgYWRkIGV4dHJhIGhlYWRlcnNcbiAgICovXG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzdGluYXRpb25PcHRpb25zIHtcbiAgZGVzdGluYXRpb25CdWNrZXQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzLlxuICAgKi9cbiAgd2lkdGg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGltYWdlIGluIHBpeGVscy5cbiAgICovXG4gIGhlaWdodD86IG51bWJlclxuICAvKipcbiAgICogVGhlIHJlc2l6ZSBtb2RlIGNhbiBiZSBjb3ZlciwgY29udGFpbiBvciBmaWxsLiBEZWZhdWx0cyB0byBjb3Zlci5cbiAgICogQ292ZXIgcmVzaXplcyB0aGUgaW1hZ2UgdG8gbWFpbnRhaW4gaXQncyBhc3BlY3QgcmF0aW8gd2hpbGUgZmlsbGluZyB0aGUgZW50aXJlIHdpZHRoIGFuZCBoZWlnaHQuXG4gICAqIENvbnRhaW4gcmVzaXplcyB0aGUgaW1hZ2UgdG8gbWFpbnRhaW4gaXQncyBhc3BlY3QgcmF0aW8gd2hpbGUgZml0dGluZyB0aGUgZW50aXJlIGltYWdlIHdpdGhpbiB0aGUgd2lkdGggYW5kIGhlaWdodC5cbiAgICogRmlsbCByZXNpemVzIHRoZSBpbWFnZSB0byBmaWxsIHRoZSBlbnRpcmUgd2lkdGggYW5kIGhlaWdodC4gSWYgdGhlIG9iamVjdCdzIGFzcGVjdCByYXRpbyBkb2VzIG5vdCBtYXRjaCB0aGUgd2lkdGggYW5kIGhlaWdodCwgdGhlIGltYWdlIHdpbGwgYmUgc3RyZXRjaGVkIHRvIGZpdC5cbiAgICovXG4gIHJlc2l6ZT86ICdjb3ZlcicgfCAnY29udGFpbicgfCAnZmlsbCdcbiAgLyoqXG4gICAqIFNldCB0aGUgcXVhbGl0eSBvZiB0aGUgcmV0dXJuZWQgaW1hZ2UuXG4gICAqIEEgbnVtYmVyIGZyb20gMjAgdG8gMTAwLCB3aXRoIDEwMCBiZWluZyB0aGUgaGlnaGVzdCBxdWFsaXR5LlxuICAgKiBEZWZhdWx0cyB0byA4MFxuICAgKi9cbiAgcXVhbGl0eT86IG51bWJlclxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZm9ybWF0IG9mIHRoZSBpbWFnZSByZXF1ZXN0ZWQuXG4gICAqXG4gICAqIFdoZW4gdXNpbmcgJ29yaWdpbicgd2UgZm9yY2UgdGhlIGZvcm1hdCB0byBiZSB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgaW1hZ2UuXG4gICAqIFdoZW4gdGhpcyBvcHRpb24gaXMgbm90IHBhc3NlZCBpbiwgaW1hZ2VzIGFyZSBvcHRpbWl6ZWQgdG8gbW9kZXJuIGltYWdlIGZvcm1hdHMgbGlrZSBXZWJwLlxuICAgKi9cbiAgZm9ybWF0PzogJ29yaWdpbidcbn1cblxudHlwZSBDYW1lbENhc2U8UyBleHRlbmRzIHN0cmluZz4gPSBTIGV4dGVuZHMgYCR7aW5mZXIgUDF9XyR7aW5mZXIgUDJ9JHtpbmZlciBQM31gXG4gID8gYCR7TG93ZXJjYXNlPFAxPn0ke1VwcGVyY2FzZTxQMj59JHtDYW1lbENhc2U8UDM+fWBcbiAgOiBTXG5cbmV4cG9ydCB0eXBlIENhbWVsaXplPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUIGFzIENhbWVsQ2FzZTxFeHRyYWN0PEssIHN0cmluZz4+XTogVFtLXVxufVxuIl19
package/dist/esm/index.js CHANGED
@@ -63,4 +63,3 @@ try {
63
63
  window.registerStorage = registerStorage;
64
64
  }
65
65
  catch (e) { }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBcUIsTUFBTSxXQUFXLENBQUE7QUFDL0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBSXZELElBQU0sT0FBTyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQTtBQUN0QyxJQUFNLFNBQVMsR0FBd0I7SUFDckMsSUFBSSxFQUFFLGNBQWM7SUFDcEIsTUFBTSxFQUFFO1FBQ04sVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1FBQzlCLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtRQUM5QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7UUFDdEMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxZQUFZO1FBQ2xDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7UUFDNUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1FBQzFCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztRQUNoQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7S0FDN0I7Q0FDRixDQUFBO0FBRUQsSUFBTSxpQkFBaUIsR0FBd0I7SUFDN0MsSUFBSSxFQUFFLFVBQUcsY0FBYyxjQUFXO0lBQ2xDLElBQUksRUFBRSxJQUFJO0lBQ1YsTUFBTTtRQUtKLElBQU0sWUFBWSxHQUFHLElBQUksT0FBTyxFQUFtQyxDQUFBO1FBR25FLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUU7WUFDL0MsR0FBRztnQkFJRCxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtpQkFDOUI7Z0JBSUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFBO2dCQUVyQixJQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBb0IsRUFBdUIsRUFBRTtvQkFDcEUsR0FBRyxFQUFFLFVBQUMsT0FBTyxFQUFFLElBQUk7d0JBQ2pCLElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTs0QkFDckIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFBO3lCQUN2Qjt3QkFDRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7NEJBQ3RCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQTt5QkFDeEI7d0JBQ0QsT0FBTyxTQUFTLENBQUE7b0JBQ2xCLENBQUM7aUJBQ0YsQ0FBQyxDQUFBO2dCQUdGLElBQU0sT0FBTyxHQUFHLElBQUksMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3ZELFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUMvQixPQUFPLE9BQU8sQ0FBQTtZQUNoQixDQUFDO1lBQ0QsWUFBWSxFQUFFLElBQUk7WUFDbEIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGLENBQUE7QUFFRCxJQUFJO0lBQ0YsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ3RDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0NBQy9DO0FBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtBQUVkLE1BQU0sVUFBVSxlQUFlLENBQUMsR0FBMEM7SUFDeEUsSUFBSTtRQUNGLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNoQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtLQUN6QztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtLQUNoQjtBQUNILENBQUM7QUFFRCxJQUFJO0lBQ0QsTUFBYyxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUE7Q0FDbEQ7QUFBQyxPQUFPLENBQUMsRUFBRSxHQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNsb3VkYmFzZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29tcG9uZW50IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jb21wb25lbnQnXG5pbXBvcnQgeyBDbG91ZGJhc2VTdG9yYWdlLCBDT01QT05FTlRfTkFNRSwgSUNsb3VkYmFzZUNvbnRleHQgfSBmcm9tICcuL3N0b3JhZ2UnXG5pbXBvcnQgeyBTdXBhYmFzZUZpbGVBUElMaWtlU3RvcmFnZSB9IGZyb20gJy4vc3VwYWJhc2UnXG5cbmRlY2xhcmUgY29uc3QgY2xvdWRiYXNlOiBJQ2xvdWRiYXNlXG5cbmNvbnN0IHN0b3JhZ2UgPSBuZXcgQ2xvdWRiYXNlU3RvcmFnZSgpXG5jb25zdCBjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQgPSB7XG4gIG5hbWU6IENPTVBPTkVOVF9OQU1FLFxuICBlbnRpdHk6IHtcbiAgICB1cGxvYWRGaWxlOiBzdG9yYWdlLnVwbG9hZEZpbGUsXG4gICAgZGVsZXRlRmlsZTogc3RvcmFnZS5kZWxldGVGaWxlLFxuICAgIGdldFRlbXBGaWxlVVJMOiBzdG9yYWdlLmdldFRlbXBGaWxlVVJMLFxuICAgIGRvd25sb2FkRmlsZTogc3RvcmFnZS5kb3dubG9hZEZpbGUsXG4gICAgZ2V0VXBsb2FkTWV0YWRhdGE6IHN0b3JhZ2UuZ2V0VXBsb2FkTWV0YWRhdGEsXG4gICAgY29weUZpbGU6IHN0b3JhZ2UuY29weUZpbGUsXG4gICAgZ2V0RmlsZUluZm86IHN0b3JhZ2UuZ2V0RmlsZUluZm8sXG4gICAgaXNHYXRlV2F5OiBzdG9yYWdlLmlzR2F0ZVdheSxcbiAgfSxcbn1cblxuY29uc3Qgc3VwYWJhc2VDb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQgPSB7XG4gIG5hbWU6IGAke0NPTVBPTkVOVF9OQU1FfS9zdXBhYmFzZWAsXG4gIElJRkU6IHRydWUsXG4gIGVudGl0eSgpIHtcbiAgICAvLyDlnKggSUlGRSDkuK3vvIx0aGlzIOaYryBDbG91ZGJhc2Ug57G777yI5p6E6YCg5Ye95pWw77yJ77yM5LiN5piv5a6e5L6LXG4gICAgLy8g5omA5Lul5oiR5Lus6ZyA6KaB5L2/55SoIGdldHRlciDmnaXlu7bov5/ojrflj5blrp7kvovnmoQgY29uZmlnIOWSjCByZXF1ZXN0XG5cbiAgICAvLyDkvb/nlKggV2Vha01hcCDnvJPlrZjmr4/kuKrlrp7kvovnmoQgc3RvcmFnZSDlr7nosaFcbiAgICBjb25zdCBzdG9yYWdlQ2FjaGUgPSBuZXcgV2Vha01hcDxhbnksIFN1cGFiYXNlRmlsZUFQSUxpa2VTdG9yYWdlPigpXG5cbiAgICAvLyDlrprkuYkgc3RvcmFnZSDlsZ7mgKfnmoQgZ2V0dGVy77yM5q+P5Liq5a6e5L6L5Y+q5Yib5bu65LiA5qyhXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMucHJvdG90eXBlLCAnc3RvcmFnZScsIHtcbiAgICAgIGdldCgpIHtcbiAgICAgICAgLy8g6L+Z6YeM55qEIHRoaXMg5pivIGNsb3VkYmFzZSDlrp7kvotcblxuICAgICAgICAvLyDlpoLmnpzlt7Lnu4/liJvlu7rov4fvvIznm7TmjqXov5Tlm57nvJPlrZjnmoTlrp7kvotcbiAgICAgICAgaWYgKHN0b3JhZ2VDYWNoZS5oYXModGhpcykpIHtcbiAgICAgICAgICByZXR1cm4gc3RvcmFnZUNhY2hlLmdldCh0aGlzKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8g5Yib5bu65Yqo5oCBIGNvbnRleHTvvIzku47lvZPliY3lrp7kvovojrflj5YgY29uZmlnIOWSjCByZXF1ZXN0XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhc1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXNcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gbmV3IFByb3h5PElDbG91ZGJhc2VDb250ZXh0Pih7fSBhcyBJQ2xvdWRiYXNlQ29udGV4dCwge1xuICAgICAgICAgIGdldDogKF90YXJnZXQsIHByb3ApID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wID09PSAnY29uZmlnJykge1xuICAgICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UuY29uZmlnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocHJvcCA9PT0gJ3JlcXVlc3QnKSB7XG4gICAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZS5yZXF1ZXN0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyDliJvlu7rmlrDnmoQgc3RvcmFnZSDlrp7kvovlubbnvJPlrZhcbiAgICAgICAgY29uc3Qgc3RvcmFnZSA9IG5ldyBTdXBhYmFzZUZpbGVBUElMaWtlU3RvcmFnZShjb250ZXh0KVxuICAgICAgICBzdG9yYWdlQ2FjaGUuc2V0KHRoaXMsIHN0b3JhZ2UpXG4gICAgICAgIHJldHVybiBzdG9yYWdlXG4gICAgICB9LFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICB9KVxuICB9LFxufVxuXG50cnkge1xuICBjbG91ZGJhc2UucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICBjbG91ZGJhc2UucmVnaXN0ZXJDb21wb25lbnQoc3VwYWJhc2VDb21wb25lbnQpXG59IGNhdGNoIChlKSB7fVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJTdG9yYWdlKGFwcDogUGljazxJQ2xvdWRiYXNlLCAncmVnaXN0ZXJDb21wb25lbnQnPikge1xuICB0cnkge1xuICAgIGFwcC5yZWdpc3RlckNvbXBvbmVudChjb21wb25lbnQpXG4gICAgYXBwLnJlZ2lzdGVyQ29tcG9uZW50KHN1cGFiYXNlQ29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cblxudHJ5IHtcbiAgKHdpbmRvdyBhcyBhbnkpLnJlZ2lzdGVyU3RvcmFnZSA9IHJlZ2lzdGVyU3RvcmFnZVxufSBjYXRjaCAoZSkge31cbiJdfQ==
@@ -695,4 +695,3 @@ export var CloudbaseStorage = (function () {
695
695
  ], CloudbaseStorage.prototype, "copyFile", null);
696
696
  return CloudbaseStorage;
697
697
  }());
698
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFrQmhFLElBQUssYUFHSjtBQUhELFdBQUssYUFBYTtJQUNoQiw0QkFBVyxDQUFBO0lBQ1gsOEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFISSxhQUFhLEtBQWIsYUFBYSxRQUdqQjtBQVdPLElBQUEsVUFBVSxHQUFpQyxTQUFTLFdBQTFDLEVBQUUsTUFBTSxHQUF5QixTQUFTLE9BQWxDLEVBQUUsa0JBQWtCLEdBQUssU0FBUyxtQkFBZCxDQUFjO0FBQ3BELElBQUEsT0FBTyxHQUE0QyxLQUFLLFFBQWpELEVBQUUsUUFBUSxHQUFrQyxLQUFLLFNBQXZDLEVBQUUsYUFBYSxHQUFtQixLQUFLLGNBQXhCLEVBQUUsWUFBWSxHQUFLLEtBQUssYUFBVixDQUFVO0FBQ3hELElBQUEsb0JBQW9CLEdBQUssT0FBTyxxQkFBWixDQUFZO0FBRXhDLE1BQU0sQ0FBQyxJQUFNLGNBQWMsR0FBRyxTQUFTLENBQUE7QUFRdkMsSUFBTSxjQUFjLEdBQUc7SUFDckIsYUFBYSxFQUFFLFVBQ2IsT0FBTyxFQUNQLE1BQTBELEVBQzFELGFBQTBEOzs7Ozt3QkFFaEQsV0FBTSxPQUFPLENBQUMsT0FBTyxDQUM3Qjt3QkFDRSxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsSUFBSSxFQUFFLHlCQUF5Qjt3QkFDL0IsSUFBSSxFQUFFO3VDQUVGLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxJQUNsQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFD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dUVBQXVFO2dCQUN2RSw0QkFBNEI7Z0JBQzVCLHNLQUE2QixrQkFBa0IsQ0FBRTthQUNsRDtTQUNGLENBQUM7O2lEQUdXLFFBQVE7O3dEQWdDcEI7SUFlWTtRQWRaLG9CQUFvQixDQUFDO1lBQ3BCLFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsV0FBVztnQkFDdEIsVUFBVSxFQUFFLFVBQVU7YUFDdkI7WUFDRCxLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRTtnQkFDUixVQUFVO2dCQUNWLGdDQUFnQztnQkFDaEMsdUVBQXVFO2dCQUN2RSw0QkFBNEI7Z0JBQzVCLHNLQUE2QixrQkFBa0IsQ0FBRTthQUNsRDtTQUNGLENBQUM7O2lEQUNpRSxRQUFROztvREEyRDFFO0lBc0ZILHVCQUFDO0NBQUEsQUEzZkQsSUEyZkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb25zdGFudHMsIHV0aWxzLCBoZWxwZXJzIH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5cbmltcG9ydCB7XG4gIElDbG91ZGJhc2VGaWxlTWV0YURhdGFSZXMsXG4gIElDbG91ZGJhc2VGaWxlSW5mbyxcbiAgSUNsb3VkYmFzZVVwbG9hZEZpbGVQYXJhbXMsXG4gIElDbG91ZGJhc2VVcGxvYWRGaWxlUmVzdWx0LFxuICBJQ2xvdWRiYXNlR2V0VXBsb2FkTWV0YWRhdGFQYXJhbXMsXG4gIElDbG91ZGJhc2VEZWxldGVGaWxlUGFyYW1zLFxuICBJQ2xvdWRiYXNlRGVsZXRlRmlsZVJlc3VsdCxcbiAgSUNsb3VkYmFzZUdldFRlbXBGaWxlVVJMUmVzdWx0LFxuICBJQ2xvdWRiYXNlR2V0VGVtcEZpbGVVUkxQYXJhbXMsXG4gIElDbG91ZGJhc2VEb3dubG9hZEZpbGVSZXN1bHQsXG4gIElDbG91ZGJhc2VEb3dubG9hZEZpbGVQYXJhbXMsXG4gIElDbG91ZGJhc2VDb3B5RmlsZVBhcmFtcyxcbiAgSUNsb3VkYmFzZUNvcHlGaWxlUmVzdWx0LFxufSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL3N0b3JhZ2UnXG5cbmVudW0gRVVwbG9hZE1ldGhvZCB7XG4gIHB1dCA9ICdwdXQnLFxuICBwb3N0ID0gJ3Bvc3QnLFxufVxuXG5pbnRlcmZhY2UgSVVwbG9hZE1ldGFkYXRhIHtcbiAgdXJsOiBzdHJpbmdcbiAgdG9rZW46IHN0cmluZ1xuICBhdXRob3JpemF0aW9uOiBzdHJpbmdcbiAgZmlsZUlkOiBzdHJpbmdcbiAgY29zRmlsZUlkOiBzdHJpbmdcbiAgZG93bmxvYWRfdXJsPzogc3RyaW5nXG59XG5cbmNvbnN0IHsgZ2V0U2RrTmFtZSwgRVJST1JTLCBDT01NVU5JVFlfU0lURV9VUkwgfSA9IGNvbnN0YW50c1xuY29uc3QgeyBpc0FycmF5LCBpc1N0cmluZywgaXNQYWxpbk9iamVjdCwgZXhlY0NhbGxiYWNrIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG5leHBvcnQgY29uc3QgQ09NUE9ORU5UX05BTUUgPSAnc3RvcmFnZSdcblxuLy8gZnVuY3Rpb24gYmFzZW5hbWUocGF0aCkge1xuLy8gICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IHBhdGgubGFzdEluZGV4T2YoJy8nKVxuLy8gICBpZiAobGFzdFNsYXNoSW5kZXggPT09IC0xKSByZXR1cm4gcGF0aFxuLy8gICByZXR1cm4gcGF0aC5zbGljZShsYXN0U2xhc2hJbmRleCArIDEpXG4vLyB9XG5cbmNvbnN0IHN0b3JhZ2VHYXRlV2F5ID0ge1xuICBnZXRVcGxvYWRJbmZvOiBhc3luYyAoXG4gICAgcmVxdWVzdCxcbiAgICBwYXJhbXM6IHsgcGF0aDogc3RyaW5nOyBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB9LFxuICAgIGN1c3RvbVJlcU9wdHM6IElDbG91ZGJhc2VVcGxvYWRGaWxlUGFyYW1zWydjdXN0b21SZXFPcHRzJ10sXG4gICkgPT4ge1xuICAgIGxldCByZXMgPSBhd2FpdCByZXF1ZXN0LmdhdGVXYXkoXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdzdG9yYWdlcycsXG4gICAgICAgIG5hbWU6ICdnZXQtb2JqZWN0cy11cGxvYWQtaW5mbycsXG4gICAgICAgIGRhdGE6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvYmplY3RJZDogcGFyYW1zLnBhdGgsXG4gICAgICAgICAgICAuLi4ocGFyYW1zLmhlYWRlcnMgPyB7IHNpZ25lZEhlYWRlcjogcGFyYW1zLmhlYWRlcnMgfSA6IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbVJlcU9wdHMsXG4gICAgKVxuICAgIGNvbnN0IGRhdGEgPSByZXMuZGF0YT8uWzBdIHx8IHt9XG5cbiAgICByZXMgPSB7XG4gICAgICAuLi5yZXMsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLihkYXRhLmNvZGUgPyB7IC4uLmRhdGEgfSA6IHt9KSxcbiAgICAgICAgYXV0aG9yaXphdGlvbjogZGF0YS5hdXRob3JpemF0aW9uLFxuICAgICAgICB0b2tlbjogZGF0YS50b2tlbixcbiAgICAgICAgdXJsOiBkYXRhLnVwbG9hZFVybCxcbiAgICAgICAgZmlsZUlkOiBkYXRhLmNsb3VkT2JqZWN0SWQsXG4gICAgICAgIGNvc0ZpbGVJZDogZGF0YS5jbG91ZE9iamVjdE1ldGEsXG4gICAgICAgIGRvd25sb2FkX3VybDogZGF0YS5kb3dubG9hZFVybCxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc1xuICB9LFxuICBnZXREb3duTG9hZEluZm86IGFzeW5jIChcbiAgICByZXF1ZXN0LFxuICAgIHBhcmFtczogeyBjb252ZXJ0ZWRGaWxlTGlzdDogQXJyYXk8eyBmaWxlaWQ6IHN0cmluZyB9PiB9LFxuICAgIGN1c3RvbVJlcU9wdHM6IElDbG91ZGJhc2VVcGxvYWRGaWxlUGFyYW1zWydjdXN0b21SZXFPcHRzJ10sXG4gICkgPT4ge1xuICAgIGxldCByZXMgPSBhd2FpdCByZXF1ZXN0LmdhdGVXYXkoXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdzdG9yYWdlcycsXG4gICAgICAgIG5hbWU6ICdnZXQtb2JqZWN0cy1kb3dubG9hZC1pbmZvJyxcbiAgICAgICAgZGF0YTogcGFyYW1zLmNvbnZlcnRlZEZpbGVMaXN0Lm1hcCgodjogYW55KSA9PiAoeyBjbG91ZE9iamVjdElkOiB2LmZpbGVpZCB9KSksXG4gICAgICB9LFxuICAgICAgY3VzdG9tUmVxT3B0cyxcbiAgICApXG4gICAgcmVzID0ge1xuICAgICAgLi4ucmVzLFxuICAgICAgZGF0YToge1xuICAgICAgICBkb3dubG9hZF9saXN0OiByZXMuZGF0YT8ubWFwKHYgPT4gKHtcbiAgICAgICAgICBjb2RlOiB2LmNvZGUgfHwgJ1NVQ0NFU1MnLFxuICAgICAgICAgIG1lc3NhZ2U6IHYubWVzc2FnZSxcbiAgICAgICAgICBmaWxlaWQ6IHYuY2xvdWRPYmplY3RJZCxcbiAgICAgICAgICBkb3dubG9hZF91cmw6IHYuZG93bmxvYWRVcmwsXG4gICAgICAgICAgZmlsZUlEOiB2LmNsb3VkT2JqZWN0SWQsXG4gICAgICAgICAgdGVtcEZpbGVVUkw6IHYuZG93bmxvYWRVcmwsXG4gICAgICAgIH0pKSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc1xuICB9LFxuICBkZWxldGU6IGFzeW5jIChcbiAgICByZXF1ZXN0LFxuICAgIHBhcmFtczogeyBmaWxlTGlzdDogQXJyYXk8c3RyaW5nPiB9LFxuICAgIGN1c3RvbVJlcU9wdHM6IElDbG91ZGJhc2VVcGxvYWRGaWxlUGFyYW1zWydjdXN0b21SZXFPcHRzJ10sXG4gICkgPT4ge1xuICAgIGxldCByZXMgPSBhd2FpdCByZXF1ZXN0LmdhdGVXYXkoXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdzdG9yYWdlcycsXG4gICAgICAgIG5hbWU6ICdkZWxldGUtb2JqZWN0cycsXG4gICAgICAgIGRhdGE6IHBhcmFtcy5maWxlTGlzdC5tYXAodiA9PiAoeyBjbG91ZE9iamVjdElkOiB2IH0pKSxcbiAgICAgIH0sXG4gICAgICBjdXN0b21SZXFPcHRzLFxuICAgIClcbiAgICByZXMgPSB7XG4gICAgICAuLi5yZXMsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGRlbGV0ZV9saXN0OiByZXMuZGF0YT8ubWFwKHYgPT4gKHtcbiAgICAgICAgICBjb2RlOiB2LmNvZGUgfHwgJ1NVQ0NFU1MnLFxuICAgICAgICAgIGZpbGVJRDogdi5jbG91ZE9iamVjdElkLFxuICAgICAgICAgIG1lc3NhZ2U6IHYubWVzc2FnZSxcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzXG4gIH0sXG4gIGNvcHlGaWxlOiBhc3luYyAoXG4gICAgcmVxdWVzdCxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGNvbnZlcnRlZEZpbGVMaXN0OiBBcnJheTx7IHNyY19wYXRoOiBzdHJpbmc7IGRzdF9wYXRoOiBzdHJpbmc7IG92ZXJ3cml0ZTogYm9vbGVhbjsgcmVtb3ZlX29yaWdpbmFsOiBib29sZWFuIH0+XG4gICAgfSxcbiAgICBjdXN0b21SZXFPcHRzOiBJQ2xvdWRiYXNlVXBsb2FkRmlsZVBhcmFtc1snY3VzdG9tUmVxT3B0cyddLFxuICApID0+IHtcbiAgICBsZXQgcmVzID0gYXdhaXQgcmVxdWVzdC5nYXRlV2F5KFxuICAgICAge1xuICAgICAgICBwYXRoOiAnc3RvcmFnZXMnLFxuICAgICAgICBuYW1lOiAnY29weS1vYmplY3RzJyxcbiAgICAgICAgZGF0YTogcGFyYW1zLmNvbnZlcnRlZEZpbGVMaXN0Lm1hcCgodjogYW55KSA9PiAoe1xuICAgICAgICAgIHNyY1BhdGg6IHYuc3JjX3BhdGgsXG4gICAgICAgICAgZHN0UGF0aDogdi5kc3RfcGF0aCxcbiAgICAgICAgICBvdmVyd3JpdGU6IHYub3ZlcndyaXRlLFxuICAgICAgICAgIHJlbW92ZU9yaWdpbmFsOiB2LnJlbW92ZV9vcmlnaW5hbCxcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbVJlcU9wdHMsXG4gICAgKVxuICAgIHJlcyA9IHtcbiAgICAgIC4uLnJlcyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY29weV9saXN0OiByZXMuZGF0YT8ubWFwKHYgPT4gKHtcbiAgICAgICAgICBjb2RlOiB2LmNvZGUgfHwgJ1NVQ0NFU1MnLFxuICAgICAgICAgIGZpbGVJRDogdi5jbG91ZE9iamVjdElkLFxuICAgICAgICAgIG1lc3NhZ2U6IHYubWVzc2FnZSxcbiAgICAgICAgfSkpLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzXG4gIH0sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsb3VkYmFzZUNvbnRleHQge1xuICBjb25maWc6IGFueVxuICByZXF1ZXN0OiBhbnlcbn1cblxuZXhwb3J0IGNsYXNzIENsb3VkYmFzZVN0b3JhZ2Uge1xuICBwdWJsaWMgaXNHYXRlV2F5KCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IGNvbmZpZyB9ID0gdGhpc1xuICAgIGNvbnN0IGVuZFBvaW50TW9kZSA9IGNvbmZpZy5lbmRQb2ludE1vZGUgfHwgJ0NMT1VEX0FQSSdcblxuICAgIHJldHVybiBlbmRQb2ludE1vZGUgPT09ICdHQVRFV0FZJ1xuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBjdXN0b21JbmZvOiB7XG4gICAgICBjbGFzc05hbWU6ICdDbG91ZGJhc2UnLFxuICAgICAgbWV0aG9kTmFtZTogJ3VwbG9hZEZpbGUnLFxuICAgIH0sXG4gICAgdGl0bGU6ICfkuIrkvKDmlofku7blpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggdXBsb2FkRmlsZSgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5b2T5YmN5Z+f5ZCN5piv5ZCm5Zyo5a6J5YWo5Z+f5ZCN5YiX6KGo5Lit77yaaHR0cHM6Ly9jb25zb2xlLmNsb3VkLnRlbmNlbnQuY29tL3RjYi9lbnYvc2FmZXR5JyxcbiAgICAgICcgIDMgLSDkupHlrZjlgqjlronlhajop4TliJnmmK/lkKbpmZDliLbkuoblvZPliY3nmbvlvZXnirbmgIHorr/pl64nLFxuICAgICAgYOWmguaenOmXrumimOS+neeEtuWtmOWcqO+8jOW7uuiuruWIsOWumOaWuemXruetlOekvuWMuuaPkOmXruaIluWvu+aJvuW4ruWKqe+8miR7Q09NTVVOSVRZX1NJVEVfVVJMfWAsXG4gICAgXSxcbiAgfSlcbiAgcHVibGljIGFzeW5jIHVwbG9hZEZpbGUoXG4gICAgcGFyYW1zOiBPbWl0PElDbG91ZGJhc2VVcGxvYWRGaWxlUGFyYW1zLCAnZmlsZVBhdGgnPiAmIHsgZmlsZVBhdGg/OiBzdHJpbmcgfSxcbiAgICBjYWxsYmFjaz86IEZ1bmN0aW9uLFxuICApOiBQcm9taXNlPElDbG91ZGJhc2VVcGxvYWRGaWxlUmVzdWx0PiB7XG4gICAgY29uc3QgeyBjbG91ZFBhdGgsIGZpbGVQYXRoLCBvblVwbG9hZFByb2dyZXNzLCBtZXRob2QgPSAncHV0JywgaGVhZGVycyA9IHt9LCBmaWxlQ29udGVudCB9ID0gcGFyYW1zXG4gICAgaWYgKCFpc1N0cmluZyhjbG91ZFBhdGgpIHx8ICghZmlsZVBhdGggJiYgIWZpbGVDb250ZW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0udXBsb2FkRmlsZV0gaW52YWxpZCBwYXJhbXNgLFxuICAgICAgfSksKVxuICAgIH1cbiAgICBjb25zdCB1cGxvYWRNZXRob2QgPSAgICAgIHsgcHV0OiBFVXBsb2FkTWV0aG9kLnB1dCwgcG9zdDogRVVwbG9hZE1ldGhvZC5wb3N0IH1bbWV0aG9kLnRvTG9jYWxlTG93ZXJDYXNlKCldIHx8IEVVcGxvYWRNZXRob2QucHV0XG5cbiAgICAvLyDosIPnlKggZ2V0VXBsb2FkTWV0YWRhdGEg6I635Y+W5LiK5Lyg5YWD5pWw5o2uXG4gICAgY29uc3QgbWV0YWRhdGFSZXN1bHQgPSBhd2FpdCB0aGlzLmdldFVwbG9hZE1ldGFkYXRhKHtcbiAgICAgIGNsb3VkUGF0aCxcbiAgICAgIG1ldGhvZDogdXBsb2FkTWV0aG9kLFxuICAgICAgaGVhZGVyczogdXBsb2FkTWV0aG9kID09PSBFVXBsb2FkTWV0aG9kLnB1dCA/IGhlYWRlcnMgOiB1bmRlZmluZWQsXG4gICAgICBjdXN0b21SZXFPcHRzOiBwYXJhbXMuY3VzdG9tUmVxT3B0cyxcbiAgICB9KVxuXG4gICAgY29uc3QgeyBkYXRhOiBtZXRhZGF0YSwgcmVxdWVzdElkIH0gPSBtZXRhZGF0YVJlc3VsdFxuICAgIGNvbnN0IHsgdXJsLCBhdXRob3JpemF0aW9uLCB0b2tlbiwgZmlsZUlkLCBjb3NGaWxlSWQsIGRvd25sb2FkX3VybDogZG93bmxvYWRVcmwgfSA9IG1ldGFkYXRhXG5cbiAgICBjb25zdCBjb21tb25QYXJhbXMgPSB7XG4gICAgICB1cmwsXG4gICAgICBmaWxlOiBmaWxlUGF0aCxcbiAgICAgIG5hbWU6IGNsb3VkUGF0aCxcbiAgICAgIG9uVXBsb2FkUHJvZ3Jlc3MsXG4gICAgICBmaWxlQ29udGVudCxcbiAgICAgIGZpbGVJZCxcbiAgICAgIHJlcXVlc3RJZCxcbiAgICB9XG5cbiAgICBjb25zdCBwdXRQYXJhbXMgPSB7XG4gICAgICAuLi5jb21tb25QYXJhbXMsXG4gICAgICBtZXRob2Q6IEVVcGxvYWRNZXRob2QucHV0LFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgICBhdXRob3JpemF0aW9uLFxuICAgICAgICAneC1jb3MtbWV0YS1maWxlaWQnOiBjb3NGaWxlSWQsXG4gICAgICAgICd4LWNvcy1zZWN1cml0eS10b2tlbic6IHRva2VuLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICBjb25zdCBwb3N0UGFyYW1zID0ge1xuICAgICAgLi4uY29tbW9uUGFyYW1zLFxuICAgICAgbWV0aG9kOiBFVXBsb2FkTWV0aG9kLnBvc3QsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGtleTogY2xvdWRQYXRoLFxuICAgICAgICBzaWduYXR1cmU6IGF1dGhvcml6YXRpb24sXG4gICAgICAgICd4LWNvcy1tZXRhLWZpbGVpZCc6IGNvc0ZpbGVJZCxcbiAgICAgICAgc3VjY2Vzc19hY3Rpb25fc3RhdHVzOiAnMjAxJyxcbiAgICAgICAgJ3gtY29zLXNlY3VyaXR5LXRva2VuJzogdG9rZW4sXG4gICAgICB9LFxuICAgIH1cblxuICAgIGNvbnN0IHVwbG9hZENvbmZpZyA9IHtcbiAgICAgIFtFVXBsb2FkTWV0aG9kLnB1dF06IHtcbiAgICAgICAgcGFyYW1zOiBwdXRQYXJhbXMsXG4gICAgICAgIGlzU3VjY2VzczogKGNvZGU6IG51bWJlcikgPT4gY29kZSA+PSAyMDAgJiYgY29kZSA8IDMwMCxcbiAgICAgIH0sXG4gICAgICBbRVVwbG9hZE1ldGhvZC5wb3N0XToge1xuICAgICAgICBwYXJhbXM6IHBvc3RQYXJhbXMsXG4gICAgICAgIGlzU3VjY2VzczogKGNvZGU6IG51bWJlcikgPT4gY29kZSA9PT0gMjAxLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXF1ZXN0LnVwbG9hZCh1cGxvYWRDb25maWdbdXBsb2FkTWV0aG9kXS5wYXJhbXMpXG5cbiAgICBpZiAodXBsb2FkQ29uZmlnW3VwbG9hZE1ldGhvZF0uaXNTdWNjZXNzKHJlcy5zdGF0dXNDb2RlKSkge1xuICAgICAgcmV0dXJuIGV4ZWNDYWxsYmFjayhjYWxsYmFjaywgbnVsbCwge1xuICAgICAgICBmaWxlSUQ6IGZpbGVJZCxcbiAgICAgICAgZG93bmxvYWRfdXJsOiBkb3dubG9hZFVybCxcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIGV4ZWNDYWxsYmFjayhcbiAgICAgIGNhbGxiYWNrLFxuICAgICAgbmV3IEVycm9yKGBbJHtnZXRTZGtOYW1lKCl9XVske0VSUk9SUy5PUEVSQVRJT05fRkFJTH1dWyR7Q09NUE9ORU5UX05BTUV9XToke3Jlcy5kYXRhfWApLFxuICAgIClcbiAgfVxuICBAY2F0Y2hFcnJvcnNEZWNvcmF0b3Ioe1xuICAgIGN1c3RvbUluZm86IHtcbiAgICAgIGNsYXNzTmFtZTogJ0Nsb3VkYmFzZScsXG4gICAgICBtZXRob2ROYW1lOiAnZ2V0VXBsb2FkTWV0YWRhdGEnLFxuICAgIH0sXG4gICAgdGl0bGU6ICfojrflj5bkuIrkvKDlhYPkv6Hmga/lpLHotKUnLFxuICAgIG1lc3NhZ2VzOiBbXG4gICAgICAn6K+356Gu6K6k5Lul5LiL5ZCE6aG577yaJyxcbiAgICAgICcgIDEgLSDosIPnlKggZ2V0VXBsb2FkTWV0YWRhdGEoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeWfn+WQjeaYr+WQpuWcqOWuieWFqOWfn+WQjeWIl+ihqOS4re+8mmh0dHBzOi8vY29uc29sZS5jbG91ZC50ZW5jZW50LmNvbS90Y2IvZW52L3NhZmV0eScsXG4gICAgICAnICAzIC0g5LqR5a2Y5YKo5a6J5YWo6KeE5YiZ5piv5ZCm6ZmQ5Yi25LqG5b2T5YmN55m75b2V54q25oCB6K6/6ZeuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBnZXRVcGxvYWRNZXRhZGF0YShcbiAgICBwYXJhbXM6IElDbG91ZGJhc2VHZXRVcGxvYWRNZXRhZGF0YVBhcmFtcyAmIHtcbiAgICAgIG1ldGhvZD86IEVVcGxvYWRNZXRob2RcbiAgICAgIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gICAgfSxcbiAgICBjYWxsYmFjaz86IEZ1bmN0aW9uLFxuICApOiBQcm9taXNlPHsgZGF0YTogSVVwbG9hZE1ldGFkYXRhOyByZXF1ZXN0SWQ6IHN0cmluZyB9PiB7XG4gICAgY29uc3QgeyBjbG91ZFBhdGgsIG1ldGhvZCwgaGVhZGVycyB9ID0gcGFyYW1zXG4gICAgaWYgKCFpc1N0cmluZyhjbG91ZFBhdGgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5nZXRVcGxvYWRNZXRhZGF0YV0gaW52YWxpZCBjbG91ZFBhdGhgLFxuICAgICAgfSksKVxuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSB0aGlzXG4gICAgY29uc3QgYWN0aW9uID0gJ3N0b3JhZ2UuZ2V0VXBsb2FkTWV0YWRhdGEnXG5cbiAgICB0cnkge1xuICAgICAgbGV0IG1ldGFEYXRhOiBJQ2xvdWRiYXNlRmlsZU1ldGFEYXRhUmVzXG5cbiAgICAgIGNvbnN0IG1ldGFEYXRhUGFyYW06IHtcbiAgICAgICAgcGF0aDogc3RyaW5nXG4gICAgICAgIG1ldGhvZD86IEVVcGxvYWRNZXRob2RcbiAgICAgICAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgICAgIH0gPSB7IHBhdGg6IGNsb3VkUGF0aCB9XG5cbiAgICAgIGlmIChtZXRob2QpIHtcbiAgICAgICAgbWV0YURhdGFQYXJhbS5tZXRob2QgPSBtZXRob2RcbiAgICAgIH1cbiAgICAgIGlmIChtZXRob2QgPT09IEVVcGxvYWRNZXRob2QucHV0ICYmIGhlYWRlcnMpIHtcbiAgICAgICAgbWV0YURhdGFQYXJhbS5oZWFkZXJzID0gaGVhZGVyc1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc0dhdGVXYXkoKSkge1xuICAgICAgICBtZXRhRGF0YSA9IGF3YWl0IHN0b3JhZ2VHYXRlV2F5LmdldFVwbG9hZEluZm8ocmVxdWVzdCwgbWV0YURhdGFQYXJhbSwgcGFyYW1zLmN1c3RvbVJlcU9wdHMpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXRhRGF0YSA9IGF3YWl0IHJlcXVlc3Quc2VuZChhY3Rpb24sIG1ldGFEYXRhUGFyYW0sIHBhcmFtcy5jdXN0b21SZXFPcHRzKVxuICAgICAgfVxuICAgICAgcmV0dXJuIGV4ZWNDYWxsYmFjayhjYWxsYmFjaywgbnVsbCwgbWV0YURhdGEpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBlcnIpXG4gICAgfVxuICB9XG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgY3VzdG9tSW5mbzoge1xuICAgICAgY2xhc3NOYW1lOiAnQ2xvdWRiYXNlJyxcbiAgICAgIG1ldGhvZE5hbWU6ICdkZWxldGVGaWxlJyxcbiAgICB9LFxuICAgIHRpdGxlOiAn5Yig6Zmk5paH5Lu25aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGRlbGV0ZUZpbGUoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeWfn+WQjeaYr+WQpuWcqOWuieWFqOWfn+WQjeWIl+ihqOS4re+8mmh0dHBzOi8vY29uc29sZS5jbG91ZC50ZW5jZW50LmNvbS90Y2IvZW52L3NhZmV0eScsXG4gICAgICAnICAzIC0g5LqR5a2Y5YKo5a6J5YWo6KeE5YiZ5piv5ZCm6ZmQ5Yi25LqG5b2T5YmN55m75b2V54q25oCB6K6/6ZeuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBkZWxldGVGaWxlKFxuICAgIHBhcmFtczogSUNsb3VkYmFzZURlbGV0ZUZpbGVQYXJhbXMsXG4gICAgY2FsbGJhY2s/OiBGdW5jdGlvbixcbiAgKTogUHJvbWlzZTxJQ2xvdWRiYXNlRGVsZXRlRmlsZVJlc3VsdD4ge1xuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHBhcmFtc1xuXG4gICAgaWYgKCFmaWxlTGlzdCB8fCAhaXNBcnJheShmaWxlTGlzdCkgfHwgZmlsZUxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5kZWxldGVGaWxlXSBmaWxlTGlzdCBtdXN0IG5vdCBiZSBlbXB0eWAsXG4gICAgICB9KSwpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBmaWxlSWQgb2YgZmlsZUxpc3QpIHtcbiAgICAgIGlmICghZmlsZUlkIHx8ICFpc1N0cmluZyhmaWxlSWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5kZWxldGVGaWxlXSBmaWxlSUQgbXVzdCBiZSBzdHJpbmdgLFxuICAgICAgICB9KSwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYWN0aW9uID0gJ3N0b3JhZ2UuYmF0Y2hEZWxldGVGaWxlJ1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IHRoaXNcbiAgICBsZXQgcmVzOiBhbnkgPSB7fVxuXG4gICAgaWYgKHRoaXMuaXNHYXRlV2F5KCkpIHtcbiAgICAgIHJlcyA9IGF3YWl0IHN0b3JhZ2VHYXRlV2F5LmRlbGV0ZShyZXF1ZXN0LCB7IGZpbGVMaXN0IH0sIHBhcmFtcy5jdXN0b21SZXFPcHRzKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSBhd2FpdCByZXF1ZXN0LnNlbmQoXG4gICAgICAgIGFjdGlvbixcbiAgICAgICAge1xuICAgICAgICAgIGZpbGVpZF9saXN0OiBmaWxlTGlzdCxcbiAgICAgICAgfSxcbiAgICAgICAgcGFyYW1zLmN1c3RvbVJlcU9wdHMsXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHJlcy5jb2RlKSB7XG4gICAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBudWxsLCByZXMpXG4gICAgfVxuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBmaWxlTGlzdDogcmVzLmRhdGEuZGVsZXRlX2xpc3QsXG4gICAgICByZXF1ZXN0SWQ6IHJlcy5yZXF1ZXN0SWQsXG4gICAgfVxuICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIGRhdGEpXG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBjdXN0b21JbmZvOiB7XG4gICAgICBjbGFzc05hbWU6ICdDbG91ZGJhc2UnLFxuICAgICAgbWV0aG9kTmFtZTogJ2dldFRlbXBGaWxlVVJMJyxcbiAgICB9LFxuICAgIHRpdGxlOiAn6I635Y+W5paH5Lu25LiL6L296ZO+5o6lJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGdldFRlbXBGaWxlVVJMKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlvZPliY3ln5/lkI3mmK/lkKblnKjlronlhajln5/lkI3liJfooajkuK3vvJpodHRwczovL2NvbnNvbGUuY2xvdWQudGVuY2VudC5jb20vdGNiL2Vudi9zYWZldHknLFxuICAgICAgJyAgMyAtIOS6keWtmOWCqOWuieWFqOinhOWImeaYr+WQpumZkOWItuS6huW9k+WJjeeZu+W9leeKtuaAgeiuv+mXricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgZ2V0VGVtcEZpbGVVUkwoXG4gICAgcGFyYW1zOiBJQ2xvdWRiYXNlR2V0VGVtcEZpbGVVUkxQYXJhbXMsXG4gICAgY2FsbGJhY2s/OiBGdW5jdGlvbixcbiAgKTogUHJvbWlzZTxJQ2xvdWRiYXNlR2V0VGVtcEZpbGVVUkxSZXN1bHQ+IHtcbiAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSBwYXJhbXNcblxuICAgIGlmICghZmlsZUxpc3QgfHwgIWlzQXJyYXkoZmlsZUxpc3QpIHx8IGZpbGVMaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uZ2V0VGVtcEZpbGVVUkxdIGZpbGVMaXN0IG11c3Qgbm90IGJlIGVtcHR5YCxcbiAgICAgIH0pLClcbiAgICB9XG5cbiAgICBjb25zdCBjb252ZXJ0ZWRGaWxlTGlzdCA9IFtdXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVMaXN0KSB7XG4gICAgICBpZiAoaXNQYWxpbk9iamVjdChmaWxlKSkge1xuICAgICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmaWxlLCAnZmlsZUlEJykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmdldFRlbXBGaWxlVVJMXSBmaWxlIGluZm8gbXVzdCBpbmNsdWRlIGZpbGVJRGAsXG4gICAgICAgICAgfSksKVxuICAgICAgICB9XG5cbiAgICAgICAgY29udmVydGVkRmlsZUxpc3QucHVzaCh7XG4gICAgICAgICAgZmlsZWlkOiAoZmlsZSBhcyBJQ2xvdWRiYXNlRmlsZUluZm8pLmZpbGVJRCxcbiAgICAgICAgICBtYXhfYWdlOiAoZmlsZSBhcyBJQ2xvdWRiYXNlRmlsZUluZm8pLm1heEFnZSB8fCA3MjAwLFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIGlmIChpc1N0cmluZyhmaWxlKSkge1xuICAgICAgICBjb252ZXJ0ZWRGaWxlTGlzdC5wdXNoKHtcbiAgICAgICAgICBmaWxlaWQ6IGZpbGUsXG4gICAgICAgIH0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uZ2V0VGVtcEZpbGVVUkxdIGludmFsaWQgZmlsZUxpc3RgLFxuICAgICAgICB9KSwpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYWN0aW9uID0gJ3N0b3JhZ2UuYmF0Y2hHZXREb3dubG9hZFVybCdcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgeyByZXF1ZXN0IH0gPSB0aGlzXG4gICAgbGV0IHJlczogYW55ID0ge31cblxuICAgIGlmICh0aGlzLmlzR2F0ZVdheSgpKSB7XG4gICAgICByZXMgPSBhd2FpdCBzdG9yYWdlR2F0ZVdheS5nZXREb3duTG9hZEluZm8ocmVxdWVzdCwgeyBjb252ZXJ0ZWRGaWxlTGlzdCB9LCBwYXJhbXMuY3VzdG9tUmVxT3B0cylcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0gYXdhaXQgcmVxdWVzdC5zZW5kKGFjdGlvbiwgeyBmaWxlX2xpc3Q6IGNvbnZlcnRlZEZpbGVMaXN0IH0sIHBhcmFtcy5jdXN0b21SZXFPcHRzKVxuICAgIH1cblxuICAgIGlmIChyZXMuY29kZSkge1xuICAgICAgcmV0dXJuIGV4ZWNDYWxsYmFjayhjYWxsYmFjaywgbnVsbCwgcmVzKVxuICAgIH1cblxuICAgIHJldHVybiBleGVjQ2FsbGJhY2soY2FsbGJhY2ssIG51bGwsIHtcbiAgICAgIGZpbGVMaXN0OiByZXMuZGF0YS5kb3dubG9hZF9saXN0LFxuICAgICAgcmVxdWVzdElkOiByZXMucmVxdWVzdElkLFxuICAgIH0pXG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBjdXN0b21JbmZvOiB7XG4gICAgICBjbGFzc05hbWU6ICdDbG91ZGJhc2UnLFxuICAgICAgbWV0aG9kTmFtZTogJ2Rvd25sb2FkRmlsZScsXG4gICAgfSxcbiAgICB0aXRsZTogJ+S4i+i9veaWh+S7tuWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBkb3dubG9hZEZpbGUoKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOW9k+WJjeWfn+WQjeaYr+WQpuWcqOWuieWFqOWfn+WQjeWIl+ihqOS4re+8mmh0dHBzOi8vY29uc29sZS5jbG91ZC50ZW5jZW50LmNvbS90Y2IvZW52L3NhZmV0eScsXG4gICAgICAnICAzIC0g5LqR5a2Y5YKo5a6J5YWo6KeE5YiZ5piv5ZCm6ZmQ5Yi25LqG5b2T5YmN55m75b2V54q25oCB6K6/6ZeuJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBhc3luYyBkb3dubG9hZEZpbGUoXG4gICAgcGFyYW1zOiBJQ2xvdWRiYXNlRG93bmxvYWRGaWxlUGFyYW1zLFxuICAgIGNhbGxiYWNrPzogRnVuY3Rpb24sXG4gICk6IFByb21pc2U8SUNsb3VkYmFzZURvd25sb2FkRmlsZVJlc3VsdD4ge1xuICAgIGNvbnN0IHsgZmlsZUlEIH0gPSBwYXJhbXNcbiAgICBpZiAoIWlzU3RyaW5nKGZpbGVJRCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgWyR7Q09NUE9ORU5UX05BTUV9LmdldFRlbXBGaWxlVVJMXSBmaWxlSUQgbXVzdCBiZSBzdHJpbmdgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIGNvbnN0IHRtcFVybFJlcyA9IGF3YWl0IHRoaXMuZ2V0VGVtcEZpbGVVUkwuY2FsbCh0aGlzLCB7XG4gICAgICBmaWxlTGlzdDogW1xuICAgICAgICB7XG4gICAgICAgICAgZmlsZUlELFxuICAgICAgICAgIG1heEFnZTogNjAwLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGN1c3RvbVJlcU9wdHM6IHBhcmFtcy5jdXN0b21SZXFPcHRzLFxuICAgIH0pXG5cbiAgICBjb25zdCByZXMgPSB0bXBVcmxSZXMuZmlsZUxpc3RbMF1cblxuICAgIGlmIChyZXMuY29kZSAhPT0gJ1NVQ0NFU1MnKSB7XG4gICAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCByZXMpXG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IHRoaXNcblxuICAgIGNvbnN0IHRtcFVybCA9IGVuY29kZVVSSShyZXMuZG93bmxvYWRfdXJsKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdC5kb3dubG9hZCh7IHVybDogdG1wVXJsLCB0ZW1wRmlsZVBhdGg6IHBhcmFtcy50ZW1wRmlsZVBhdGggfSlcbiAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBudWxsLCByZXN1bHQpXG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBjdXN0b21JbmZvOiB7XG4gICAgICBjbGFzc05hbWU6ICdDbG91ZGJhc2UnLFxuICAgICAgbWV0aG9kTmFtZTogJ2NvcHlGaWxlJyxcbiAgICB9LFxuICAgIHRpdGxlOiAn5om56YeP5aSN5Yi25paH5Lu2JyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGNvcHlGaWxlKCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlvZPliY3ln5/lkI3mmK/lkKblnKjlronlhajln5/lkI3liJfooajkuK3vvJpodHRwczovL2NvbnNvbGUuY2xvdWQudGVuY2VudC5jb20vdGNiL2Vudi9zYWZldHknLFxuICAgICAgJyAgMyAtIOS6keWtmOWCqOWuieWFqOinhOWImeaYr+WQpumZkOWItuS6huW9k+WJjeeZu+W9leeKtuaAgeiuv+mXricsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgY29weUZpbGUocGFyYW1zOiBJQ2xvdWRiYXNlQ29weUZpbGVQYXJhbXMsIGNhbGxiYWNrPzogRnVuY3Rpb24pOiBQcm9taXNlPElDbG91ZGJhc2VDb3B5RmlsZVJlc3VsdD4ge1xuICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHBhcmFtc1xuXG4gICAgaWYgKCFmaWxlTGlzdCB8fCAhaXNBcnJheShmaWxlTGlzdCkgfHwgZmlsZUxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5jb3B5RmlsZV0gZmlsZUxpc3QgbXVzdCBub3QgYmUgZW1wdHlgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnZlcnRlZEZpbGVMaXN0ID0gW11cblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlTGlzdCkge1xuICAgICAgY29uc3QgeyBzcmNQYXRoLCBkc3RQYXRoIH0gPSBmaWxlXG4gICAgICBpZiAoIXNyY1BhdGggfHwgIWRzdFBhdGggfHwgdHlwZW9mIHNyY1BhdGggIT09ICdzdHJpbmcnIHx8IHR5cGVvZiBkc3RQYXRoICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgICBtc2c6IGBbJHtDT01QT05FTlRfTkFNRX0uY29weUZpbGVdIHNyY1BhdGggYW5kIGRzdFBhdGggbWF5IG5vdCBiZSBlbXB0eWAsXG4gICAgICAgIH0pLClcbiAgICAgIH1cbiAgICAgIGlmIChzcmNQYXRoID09PSBkc3RQYXRoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5jb3B5RmlsZV0gc3JjUGF0aCBhbmQgZHN0UGF0aCBjYW4gbm90IGJlIHRoZSBzYW1lYCxcbiAgICAgICAgfSksKVxuICAgICAgfVxuICAgICAgLy8gICBpZiAoYmFzZW5hbWUoc3JjUGF0aCkgIT09IGJhc2VuYW1lKGRzdFBhdGgpKSB7XG4gICAgICAvLyAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIC8vICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgIC8vICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS5jb3B5RmlsZV0gc3JjUGF0aCBhbmQgZHN0UGF0aCBmaWxlIG5hbWUgbXVzdCBiZSB0aGUgc2FtZWAsXG4gICAgICAvLyAgICAgfSksKVxuICAgICAgLy8gICB9XG4gICAgICBjb252ZXJ0ZWRGaWxlTGlzdC5wdXNoKHtcbiAgICAgICAgc3JjX3BhdGg6IHNyY1BhdGgsXG4gICAgICAgIGRzdF9wYXRoOiBkc3RQYXRoLFxuICAgICAgICBvdmVyd3JpdGU6IGZpbGUub3ZlcndyaXRlLFxuICAgICAgICByZW1vdmVfb3JpZ2luYWw6IGZpbGUucmVtb3ZlT3JpZ2luYWwsXG4gICAgICB9KVxuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IHJlcXVlc3QgfSA9IHRoaXNcbiAgICBsZXQgcmVzOiBhbnkgPSB7fVxuXG4gICAgaWYgKHRoaXMuaXNHYXRlV2F5KCkpIHtcbiAgICAgIHJlcyA9IGF3YWl0IHN0b3JhZ2VHYXRlV2F5LmNvcHlGaWxlKHJlcXVlc3QsIHsgY29udmVydGVkRmlsZUxpc3QgfSwgcGFyYW1zLmN1c3RvbVJlcU9wdHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGFjdGlvbiA9ICdzdG9yYWdlLmJhdGNoQ29weUZpbGUnXG4gICAgICByZXMgPSBhd2FpdCByZXF1ZXN0LnNlbmQoYWN0aW9uLCB7IGZpbGVfbGlzdDogY29udmVydGVkRmlsZUxpc3QgfSwgcGFyYW1zLmN1c3RvbVJlcU9wdHMpXG4gICAgfVxuXG4gICAgaWYgKHJlcy5jb2RlKSB7XG4gICAgICByZXR1cm4gZXhlY0NhbGxiYWNrKGNhbGxiYWNrLCBudWxsLCByZXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGV4ZWNDYWxsYmFjayhjYWxsYmFjaywgbnVsbCwge1xuICAgICAgZmlsZUxpc3Q6IHJlcy5kYXRhLmNvcHlfbGlzdCxcbiAgICAgIHJlcXVlc3RJZDogcmVzLnJlcXVlc3RJZCxcbiAgICB9KVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEZpbGVJbmZvKHBhcmFtczogSUNsb3VkYmFzZUdldFRlbXBGaWxlVVJMUGFyYW1zKTogUHJvbWlzZTx7XG4gICAgZmlsZUxpc3Q6IChQaWNrPElDbG91ZGJhc2VHZXRUZW1wRmlsZVVSTFJlc3VsdFsnZmlsZUxpc3QnXVswXSwgJ2NvZGUnIHwgJ2ZpbGVJRCcgfCAndGVtcEZpbGVVUkwnIHwgJ21lc3NhZ2UnPiAmIHtcbiAgICAgIGZpbGVOYW1lPzogc3RyaW5nXG4gICAgICBjbG91ZElkPzogSUNsb3VkYmFzZUdldFRlbXBGaWxlVVJMUmVzdWx0WydmaWxlTGlzdCddWzBdWydmaWxlSUQnXVxuICAgICAgY29udGVudFR5cGU/OiBzdHJpbmdcbiAgICAgIG1pbWU/OiBzdHJpbmdcbiAgICAgIHNpemU/OiBudW1iZXJcbiAgICAgIGNhY2hlQ29udHJvbD86IHN0cmluZ1xuICAgICAgbGFzdE1vZGlmaWVkPzogc3RyaW5nXG4gICAgICBldGFnPzogc3RyaW5nXG4gICAgfSlbXVxuICAgIHJlcXVlc3RJZDogc3RyaW5nXG4gIH0+IHtcbiAgICBjb25zdCBmaWxlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0VGVtcEZpbGVVUkwocGFyYW1zKVxuXG4gICAgaWYgKGZpbGVJbmZvPy5maWxlTGlzdCAmJiBmaWxlSW5mbz8uZmlsZUxpc3Q/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbGVMaXN0ID0gYXdhaXQgUHJvbWlzZS5hbGwoZmlsZUluZm8uZmlsZUxpc3QubWFwKGFzeW5jIChpdGVtOiBJQ2xvdWRiYXNlR2V0VGVtcEZpbGVVUkxSZXN1bHRbJ2ZpbGVMaXN0J11bMF0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uY29kZSAhPT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvZGU6IGl0ZW0uY29kZSxcbiAgICAgICAgICAgIGZpbGVJRDogaXRlbS5maWxlSUQsXG4gICAgICAgICAgICB0ZW1wRmlsZVVSTDogaXRlbS50ZW1wRmlsZVVSTCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGl0ZW0ubWVzc2FnZSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBjb25zdCB7IHJlcXVlc3QgfSA9IHRoaXNcbiAgICAgICAgICBjb25zdCByZXMgPSBhd2FpdCByZXF1ZXN0LmZldGNoKHsgdXJsOiBpdGVtLnRlbXBGaWxlVVJMLCBtZXRob2Q6ICdIRUFEJyB9KVxuICAgICAgICAgIGxldCB7IGhlYWRlciB9ID0gcmVzXG5cbiAgICAgICAgICBpZiAoSGVhZGVycyAmJiBoZWFkZXIgaW5zdGFuY2VvZiBIZWFkZXJzKSB7XG4gICAgICAgICAgICBoZWFkZXIgPSBPYmplY3QuZnJvbUVudHJpZXMocmVzLmhlYWRlci5lbnRyaWVzKCkpXG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByYWRpeFxuICAgICAgICAgIGNvbnN0IGZpbGVTaXplID0gcGFyc2VJbnQoaGVhZGVyWydjb250ZW50LWxlbmd0aCddKSB8fCAwXG4gICAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSBoZWFkZXJbJ2NvbnRlbnQtdHlwZSddIHx8ICcnXG5cbiAgICAgICAgICBpZiAoWzQwMCwgNDA0XS5pbmNsdWRlcyhOdW1iZXIocmVzLnN0YXR1c0NvZGUpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgY29kZTogJ0ZJTEVfTk9UX0ZPVU5EJyxcbiAgICAgICAgICAgICAgZmlsZUlEOiBpdGVtLmZpbGVJRCxcbiAgICAgICAgICAgICAgdGVtcEZpbGVVUkw6IGl0ZW0udGVtcEZpbGVVUkwsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdmaWxlIG5vdCBmb3VuZCcsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZmlsZUluZm8gPSB7XG4gICAgICAgICAgICBjb2RlOiBpdGVtLmNvZGUsXG4gICAgICAgICAgICBmaWxlSUQ6IGl0ZW0uZmlsZUlELFxuICAgICAgICAgICAgdGVtcEZpbGVVUkw6IGl0ZW0udGVtcEZpbGVVUkwsXG4gICAgICAgICAgICBjbG91ZElkOiBpdGVtLmZpbGVJRCxcbiAgICAgICAgICAgIGZpbGVOYW1lOiBpdGVtLmZpbGVJRC5zcGxpdCgnLycpLnBvcCgpLFxuICAgICAgICAgICAgY29udGVudFR5cGUsXG4gICAgICAgICAgICBtaW1lOiBjb250ZW50VHlwZS5zcGxpdCgnOycpWzBdLnRyaW0oKSxcbiAgICAgICAgICAgIHNpemU6IGZpbGVTaXplLFxuICAgICAgICAgICAgZXRhZzogaGVhZGVyLmV0YWcgfHwgJycsXG4gICAgICAgICAgICBsYXN0TW9kaWZpZWQ6IGhlYWRlclsnbGFzdC1tb2RpZmllZCddIHx8ICcnLFxuICAgICAgICAgICAgY2FjaGVDb250cm9sOiBoZWFkZXJbJ2NhY2hlLWNvbnRyb2wnXSB8fCAnJyxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmlsZUluZm9cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb2RlOiAnRkVUQ0hfRklMRV9JTkZPX0VSUk9SJyxcbiAgICAgICAgICAgIGZpbGVJRDogaXRlbS5maWxlSUQsXG4gICAgICAgICAgICB0ZW1wRmlsZVVSTDogaXRlbS50ZW1wRmlsZVVSTCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pLClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmlsZUxpc3QsXG4gICAgICAgIHJlcXVlc3RJZDogZmlsZUluZm8ucmVxdWVzdElkLFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBmaWxlTGlzdDogW10sXG4gICAgICByZXF1ZXN0SWQ6IGZpbGVJbmZvLnJlcXVlc3RJZCxcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -58,4 +58,3 @@ var StorageUnknownError = (function (_super) {
58
58
  return StorageUnknownError;
59
59
  }(StorageError));
60
60
  export { StorageUnknownError };
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N1cGFiYXNlL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQTtJQUFrQyxnQ0FBSztJQUdyQyxzQkFBWSxPQUFlO1FBQTNCLFlBQ0Usa0JBQU0sT0FBTyxDQUFDLFNBRWY7UUFMUyxzQkFBZ0IsR0FBRyxJQUFJLENBQUE7UUFJL0IsS0FBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUE7O0lBQzVCLENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFQRCxDQUFrQyxLQUFLLEdBT3RDOztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBYztJQUMzQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLGtCQUFrQixJQUFJLEtBQUssQ0FBQTtBQUNuRixDQUFDO0FBRUQ7SUFBcUMsbUNBQVk7SUFJL0MseUJBQVksT0FBZSxFQUFFLE1BQWMsRUFBRSxVQUFrQjtRQUEvRCxZQUNFLGtCQUFNLE9BQU8sQ0FBQyxTQUlmO1FBSEMsS0FBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQTtRQUM3QixLQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQTtRQUNwQixLQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQTs7SUFDOUIsQ0FBQztJQUVELGdDQUFNLEdBQU47UUFDRSxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDNUIsQ0FBQTtJQUNILENBQUM7SUFDSCxzQkFBQztBQUFELENBQUMsQUFuQkQsQ0FBcUMsWUFBWSxHQW1CaEQ7O0FBRUQ7SUFBeUMsdUNBQVk7SUFHbkQsNkJBQVksT0FBZSxFQUFFLGFBQXNCO1FBQW5ELFlBQ0Usa0JBQU0sT0FBTyxDQUFDLFNBR2Y7UUFGQyxLQUFJLENBQUMsSUFBSSxHQUFHLHFCQUFxQixDQUFBO1FBQ2pDLEtBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFBOztJQUNwQyxDQUFDO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBUkQsQ0FBeUMsWUFBWSxHQVFwRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdG9yYWdlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHByb3RlY3RlZCBfX2lzU3RvcmFnZUVycm9yID0gdHJ1ZVxuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ1N0b3JhZ2VFcnJvcidcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdG9yYWdlRXJyb3IoZXJyb3I6IHVua25vd24pOiBlcnJvciBpcyBTdG9yYWdlRXJyb3Ige1xuICByZXR1cm4gdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvciAhPT0gbnVsbCAmJiAnX19pc1N0b3JhZ2VFcnJvcicgaW4gZXJyb3Jcbn1cblxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VBcGlFcnJvciBleHRlbmRzIFN0b3JhZ2VFcnJvciB7XG4gIHN0YXR1czogbnVtYmVyXG4gIHN0YXR1c0NvZGU6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgc3RhdHVzOiBudW1iZXIsIHN0YXR1c0NvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpXG4gICAgdGhpcy5uYW1lID0gJ1N0b3JhZ2VBcGlFcnJvcidcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1c1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGVcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIHN0YXR1c0NvZGU6IHRoaXMuc3RhdHVzQ29kZSxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VVbmtub3duRXJyb3IgZXh0ZW5kcyBTdG9yYWdlRXJyb3Ige1xuICBvcmlnaW5hbEVycm9yOiB1bmtub3duXG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBvcmlnaW5hbEVycm9yOiB1bmtub3duKSB7XG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSAnU3RvcmFnZVVua25vd25FcnJvcidcbiAgICB0aGlzLm9yaWdpbmFsRXJyb3IgPSBvcmlnaW5hbEVycm9yXG4gIH1cbn1cbiJdfQ==
@@ -700,4 +700,3 @@ var SupabaseFileAPILikeStorage = (function (_super) {
700
700
  return SupabaseFileAPILikeStorage;
701
701
  }(CloudbaseStorage));
702
702
  export { SupabaseFileAPILikeStorage };
703
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3VwYWJhc2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBcUIsTUFBTSxZQUFZLENBQUE7QUFHaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFL0MsSUFBQSxNQUFNLEdBQUssU0FBUyxPQUFkLENBQWM7QUFFNUI7SUFBZ0QsOENBQWdCO0lBSzlELG9DQUFZLE9BQTJCO1FBQXZDLFlBQ0UsaUJBQU8sU0FFUjtRQVBPLHdCQUFrQixHQUFHLEtBQUssQ0FBQTtRQUMxQixjQUFRLEdBQUcsRUFBRSxDQUFBO1FBS25CLEtBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBOztJQUN4QixDQUFDO0lBRUQsc0JBQUksOENBQU07YUFBVjs7WUFFRSxPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsTUFBTSxDQUFBO1FBQzdCLENBQUM7OztPQUFBO0lBRUQsc0JBQUksK0NBQU87YUFBWDs7WUFFRSxPQUFPLE1BQUEsSUFBSSxDQUFDLE9BQU8sMENBQUUsT0FBTyxDQUFBO1FBQzlCLENBQUM7OztPQUFBO0lBRUQsaURBQVksR0FBWjtRQUNFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUE7UUFDOUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQseUNBQUksR0FBSixVQUFLLE1BQWU7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFBO1FBQzVCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVLLDJDQUFNLEdBQVosVUFD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QUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDakMsQ0FBQztJQWlCTyw2REFBd0IsR0FBaEMsVUFBaUMsTUFBYztRQUs3QyxJQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUd6RCxJQUFNLEtBQUssR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXhDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFFcEIsT0FBTyxFQUFFLENBQUE7U0FDVjtRQUlELElBQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUc3QixJQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRTFDLElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBRW5CLE9BQU8sWUFBWSxDQUFBO1NBQ3BCO1FBR0QsT0FBTyxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBQ0gsaUNBQUM7QUFBRCxDQUFDLEFBaHVCRCxDQUFnRCxnQkFBZ0IsR0FndUIvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuXG5pbXBvcnQgeyBDbG91ZGJhc2VTdG9yYWdlLCBDT01QT05FTlRfTkFNRSwgSUNsb3VkYmFzZUNvbnRleHQgfSBmcm9tICcuLi9zdG9yYWdlJ1xuXG5pbXBvcnQgeyBDYW1lbGl6ZSwgRmlsZUJvZHksIEZpbGVPYmplY3QsIEZpbGVPYmplY3RWMiwgRmlsZU9wdGlvbnMsIFRyYW5zZm9ybU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgaXNTdG9yYWdlRXJyb3IsIFN0b3JhZ2VFcnJvciB9IGZyb20gJy4vZXJyb3JzJ1xuXG5jb25zdCB7IEVSUk9SUyB9ID0gY29uc3RhbnRzXG5cbmV4cG9ydCBjbGFzcyBTdXBhYmFzZUZpbGVBUElMaWtlU3RvcmFnZSBleHRlbmRzIENsb3VkYmFzZVN0b3JhZ2Uge1xuICBwcml2YXRlIHNob3VsZFRocm93T25FcnJvciA9IGZhbHNlXG4gIHByaXZhdGUgYnVja2V0SWQgPSAnJ1xuICBwcml2YXRlIGNvbnRleHQ6IElDbG91ZGJhc2VDb250ZXh0XG5cbiAgY29uc3RydWN0b3IoY29udGV4dD86IElDbG91ZGJhc2VDb250ZXh0KSB7XG4gICAgc3VwZXIoKVxuICAgIHRoaXMuY29udGV4dCA9IGNvbnRleHRcbiAgfVxuXG4gIGdldCBjb25maWcoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiB0aGlzLmNvbnRleHQ/LmNvbmZpZ1xuICB9XG5cbiAgZ2V0IHJlcXVlc3QoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHJldHVybiB0aGlzLmNvbnRleHQ/LnJlcXVlc3RcbiAgfVxuXG4gIHRocm93T25FcnJvcigpOiB0aGlzIHtcbiAgICB0aGlzLnNob3VsZFRocm93T25FcnJvciA9IHRydWVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgZnJvbShidWNrZXQ/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmJ1Y2tldElkID0gYnVja2V0IHx8ICcnXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGFzeW5jIHVwbG9hZChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgZmlsZUJvZHk6IEZpbGVCb2R5LFxuICAgIGZpbGVPcHRpb25zPzogRmlsZU9wdGlvbnMsXG4gICk6IFByb21pc2U8XG4gICAgeyBkYXRhOiB7IGlkOiBzdHJpbmc7IHBhdGg6IHN0cmluZzsgZnVsbFBhdGg6IHN0cmluZyB9OyBlcnJvcjogbnVsbCB9IHwgeyBkYXRhOiBudWxsOyBlcnJvcjogU3RvcmFnZUVycm9yIH1cbiAgICA+IHtcbiAgICBjb25zdCBvcHRpb25zID0geyB1cHNlcnQ6IHRydWUsIC4uLmZpbGVPcHRpb25zIH1cbiAgICBjb25zdCB7IGNhY2hlQ29udHJvbCwgY29udGVudFR5cGUsIG1ldGFkYXRhIH0gPSBvcHRpb25zXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNsb3VkUGF0aCA9IHRoaXMuX2dldENsb3VkUGF0aChwYXRoKVxuICAgICAgY29uc3QgdXBsb2FkRmlsZVBhcmFtczogUGFyYW1ldGVyczxDbG91ZGJhc2VTdG9yYWdlWyd1cGxvYWRGaWxlJ10+WzBdID0ge1xuICAgICAgICBjbG91ZFBhdGgsXG4gICAgICAgIGZpbGVQYXRoOiBmaWxlQm9keSBhcyBhbnksXG4gICAgICB9XG5cbiAgICAgIGlmIChjYWNoZUNvbnRyb2wgfHwgY29udGVudFR5cGUgfHwgbWV0YWRhdGEpIHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IHt9XG4gICAgICAgIGlmIChjYWNoZUNvbnRyb2wpIHtcbiAgICAgICAgICBoZWFkZXJzWydjYWNoZS1jb250cm9sJ10gPSBjYWNoZUNvbnRyb2xcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29udGVudFR5cGUpIHtcbiAgICAgICAgICBoZWFkZXJzWydjb250ZW50LXR5cGUnXSA9IGNvbnRlbnRUeXBlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWV0YWRhdGEpIHtcbiAgICAgICAgICBoZWFkZXJzWyd4LWNvcy1tZXRhZGF0YS1tZXRhZGF0YSddID0gdGhpcy50b0Jhc2U2NChKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpXG4gICAgICAgIH1cblxuICAgICAgICB1cGxvYWRGaWxlUGFyYW1zLmhlYWRlcnMgPSBoZWFkZXJzXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudXBsb2FkRmlsZSh1cGxvYWRGaWxlUGFyYW1zKVxuXG4gICAgICAvLyBJVXBsb2FkRmlsZVJlcyDmsqHmnIkgY29kZSDlrZfmrrXvvIzlpoLmnpzmsqHmnIkgZmlsZUlEIOWImeihqOekuuWksei0pVxuICAgICAgaWYgKCFyZXN1bHQuZmlsZUlEKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgY29kZTogRVJST1JTLk9QRVJBVElPTl9GQUlMLFxuICAgICAgICAgIG1zZzogYFske0NPTVBPTkVOVF9OQU1FfS51cGRhdGVdIG5vIGZpbGVJRCByZXR1cm5lZGAsXG4gICAgICAgIH0pLClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGlkOiByZXN1bHQuZmlsZUlELFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgZnVsbFBhdGg6IHBhdGgsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwbG9hZFRvU2lnbmVkVXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBfdG9rZW46IHN0cmluZyxcbiAgICBmaWxlQm9keTogRmlsZUJvZHksXG4gICAgZmlsZU9wdGlvbnM/OiBGaWxlT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxcbiAgICB7IGRhdGE6IHsgaWQ6IHN0cmluZzsgcGF0aDogc3RyaW5nOyBmdWxsUGF0aDogc3RyaW5nIH07IGVycm9yOiBudWxsIH0gfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfVxuICAgID4ge1xuICAgIHJldHVybiB0aGlzLnVwbG9hZChwYXRoLCBmaWxlQm9keSwgZmlsZU9wdGlvbnMpXG4gIH1cblxuICBhc3luYyBjcmVhdGVTaWduZWRVcGxvYWRVcmwocGF0aDogc3RyaW5nKTogUHJvbWlzZTxcbiAgfCB7XG4gICAgZGF0YToge1xuICAgICAgc2lnbmVkVXJsOiBzdHJpbmdcbiAgICAgIHRva2VuOiBzdHJpbmdcbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgICAgLy8gQ2xvdWRCYXNlIOmineWklueahOWFg+aVsOaNruWtl+autVxuICAgICAgYXV0aG9yaXphdGlvbj86IHN0cmluZ1xuICAgICAgaWQ/OiBzdHJpbmdcbiAgICAgIGNvc0ZpbGVJZD86IHN0cmluZ1xuICAgICAgZG93bmxvYWRVcmw/OiBzdHJpbmdcbiAgICB9XG4gICAgZXJyb3I6IG51bGxcbiAgfVxuICB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9XG4gID4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjbG91ZFBhdGggPSB0aGlzLl9nZXRDbG91ZFBhdGgocGF0aClcblxuICAgICAgY29uc3QgeyBkYXRhOiBtZXRhZGF0YSB9ID0gYXdhaXQgdGhpcy5nZXRVcGxvYWRNZXRhZGF0YSh7IGNsb3VkUGF0aCB9KVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgc2lnbmVkVXJsOiBtZXRhZGF0YS51cmwsXG4gICAgICAgICAgdG9rZW46IG1ldGFkYXRhLnRva2VuLFxuICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgLy8g6L+U5ZueIENsb3VkQmFzZSDnmoTpop3lpJblhYPmlbDmja7vvIzkvpsgdXBsb2FkVG9TaWduZWRVcmwg5L2/55SoXG4gICAgICAgICAgYXV0aG9yaXphdGlvbjogbWV0YWRhdGEuYXV0aG9yaXphdGlvbixcbiAgICAgICAgICBpZDogbWV0YWRhdGEuZmlsZUlkLFxuICAgICAgICAgIGNvc0ZpbGVJZDogbWV0YWRhdGEuY29zRmlsZUlkLFxuICAgICAgICAgIGRvd25sb2FkVXJsOiBtZXRhZGF0YS5kb3dubG9hZF91cmwsXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvciA/IGVycm9yIDogbmV3IFN0b3JhZ2VFcnJvcihlcnJvci5tZXNzYWdlKSxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGUoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGZpbGVCb2R5OiBGaWxlQm9keSxcbiAgICBmaWxlT3B0aW9ucz86IEZpbGVPcHRpb25zLFxuICApOiBQcm9taXNlPFxuICAgIHsgZGF0YTogeyBpZDogc3RyaW5nOyBwYXRoOiBzdHJpbmc7IGZ1bGxQYXRoOiBzdHJpbmcgfTsgZXJyb3I6IG51bGwgfSB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9XG4gICAgPiB7XG4gICAgcmV0dXJuIHRoaXMudXBsb2FkKHBhdGgsIGZpbGVCb2R5LCB7IC4uLmZpbGVPcHRpb25zLCB1cHNlcnQ6IHRydWUgfSlcbiAgfVxuXG4gIGFzeW5jIG1vdmUoXG4gICAgZnJvbVBhdGg6IHN0cmluZyxcbiAgICB0b1BhdGg6IHN0cmluZyxcbiAgICAvLyBvcHRpb25zPzogRGVzdGluYXRpb25PcHRpb25zLFxuICApOiBQcm9taXNlPHsgZGF0YTogeyBtZXNzYWdlOiBzdHJpbmcgfTsgZXJyb3I6IG51bGwgfSB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29weUZpbGUoe1xuICAgICAgICBmaWxlTGlzdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNyY1BhdGg6IHRoaXMuX2dldENsb3VkUGF0aChmcm9tUGF0aCksXG4gICAgICAgICAgICBkc3RQYXRoOiB0aGlzLl9nZXRDbG91ZFBhdGgodG9QYXRoKSxcbiAgICAgICAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcbiAgICAgICAgICAgIHJlbW92ZU9yaWdpbmFsOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KVxuXG4gICAgICBpZiAocmVzdWx0LmZpbGVMaXN0WzBdLmNvZGUgJiYgcmVzdWx0LmZpbGVMaXN0WzBdLmNvZGUgIT09ICdTVUNDRVNTJykge1xuICAgICAgICB0aHJvdyBuZXcgU3RvcmFnZUVycm9yKHJlc3VsdC5maWxlTGlzdFswXS5tZXNzYWdlIHx8ICdNb3ZlIGZhaWxlZCcpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IHsgbWVzc2FnZTogYEZpbGUgbW92ZWQgZnJvbSAke2Zyb21QYXRofSB0byAke3RvUGF0aH1gIH0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNvcHkoXG4gICAgZnJvbVBhdGg6IHN0cmluZyxcbiAgICB0b1BhdGg6IHN0cmluZyxcbiAgICAvLyBvcHRpb25zPzogRGVzdGluYXRpb25PcHRpb25zLFxuICApOiBQcm9taXNlPHsgZGF0YTogeyBwYXRoOiBzdHJpbmcgfTsgZXJyb3I6IG51bGwgfSB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY29weUZpbGUoe1xuICAgICAgICBmaWxlTGlzdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNyY1BhdGg6IHRoaXMuX2dldENsb3VkUGF0aChmcm9tUGF0aCksXG4gICAgICAgICAgICBkc3RQYXRoOiB0aGlzLl9nZXRDbG91ZFBhdGgodG9QYXRoKSxcbiAgICAgICAgICAgIG92ZXJ3cml0ZTogdHJ1ZSxcbiAgICAgICAgICAgIHJlbW92ZU9yaWdpbmFsOiBmYWxzZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSlcblxuICAgICAgaWYgKHJlc3VsdC5maWxlTGlzdFswXS5jb2RlICYmIHJlc3VsdC5maWxlTGlzdFswXS5jb2RlICE9PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcihyZXN1bHQuZmlsZUxpc3RbMF0ubWVzc2FnZSB8fCAnQ29weSBmYWlsZWQnKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiB7IHBhdGg6IHRoaXMuX2dldENsb3VkUGF0aCh0b1BhdGgpIH0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3IgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICBhc3luYyBjcmVhdGVTaWduZWRVcmwoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGV4cGlyZXNJbjogbnVtYmVyLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBkb3dubG9hZD86IHN0cmluZyB8IGJvb2xlYW5cbiAgICAgIHRyYW5zZm9ybT86IFRyYW5zZm9ybU9wdGlvbnNcbiAgICB9LFxuICApOiBQcm9taXNlPHsgZGF0YTogeyBzaWduZWRVcmw6IHN0cmluZyB9OyBlcnJvcjogbnVsbCB9IHwgeyBkYXRhOiBudWxsOyBlcnJvcjogU3RvcmFnZUVycm9yIH0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2xvdWRQYXRoID0gdGhpcy5fbm9ybWFsaXplQ2xvdWRJZChwYXRoKVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRUZW1wRmlsZVVSTCh7XG4gICAgICAgIGZpbGVMaXN0OiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZmlsZUlEOiBjbG91ZFBhdGgsXG4gICAgICAgICAgICBtYXhBZ2U6IGV4cGlyZXNJbixcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSlcblxuICAgICAgLy8gSUdldEZpbGVVcmxJdGVtIOaciSBjb2RlIOWtl+auteS9huayoeaciSBtZXNzYWdlIOWtl+autVxuICAgICAgaWYgKHJlc3VsdC5maWxlTGlzdFswXS5jb2RlICE9PSAnU1VDQ0VTUycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcihgRmFpbGVkIHRvIGNyZWF0ZSBzaWduZWQgVVJMOiBbJHtyZXN1bHQuZmlsZUxpc3RbMF0uY29kZX1dICR7cmVzdWx0LmZpbGVMaXN0WzBdLmZpbGVJRH1gKVxuICAgICAgfVxuXG4gICAgICBsZXQgc2lnbmVkVXJsID0gcmVzdWx0LmZpbGVMaXN0WzBdLmRvd25sb2FkX3VybFxuXG4gICAgICAvLyDmnoTlu7rmn6Xor6Llj4LmlbBcbiAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBzdHJpbmdbXSA9IFtdXG5cbiAgICAgIC8vIOWmguaenOaciSBkb3dubG9hZCDlj4LmlbDvvIzmt7vliqDliLAgVVJMIOS4rVxuICAgICAgaWYgKG9wdGlvbnM/LmRvd25sb2FkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmRvd25sb2FkID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIC8vIGRvd25sb2FkIOaYr+aWh+S7tuWQjVxuICAgICAgICAgIHF1ZXJ5UGFyYW1zLnB1c2goYGRvd25sb2FkPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG9wdGlvbnMuZG93bmxvYWQpfWApXG4gICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5kb3dubG9hZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIC8vIGRvd25sb2FkIOaYryB0cnVl77yM5L2/55So5Y6f5paH5Lu25ZCN5oiW6buY6K6k5YC8XG4gICAgICAgICAgcXVlcnlQYXJhbXMucHVzaCgnZG93bmxvYWQ9dHJ1ZScpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8g5aaC5p6c5pyJ5Zu+54mH6L2s5o2i5Y+C5pWw77yM5re75Yqg5YiwIFVSTCDkuK1cbiAgICAgIGlmIChvcHRpb25zPy50cmFuc2Zvcm0pIHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtUXVlcnkgPSB0aGlzLl90cmFuc2Zvcm1PcHRzVG9RdWVyeVN0cmluZyhvcHRpb25zLnRyYW5zZm9ybSlcbiAgICAgICAgaWYgKHRyYW5zZm9ybVF1ZXJ5KSB7XG4gICAgICAgICAgcXVlcnlQYXJhbXMucHVzaCh0cmFuc2Zvcm1RdWVyeSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyDmi7zmjqXmiYDmnInmn6Xor6Llj4LmlbBcbiAgICAgIGlmIChxdWVyeVBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHNpZ25lZFVybC5pbmNsdWRlcygnPycpID8gJyYnIDogJz8nXG4gICAgICAgIHNpZ25lZFVybCA9IGAke3NpZ25lZFVybH0ke3NlcGFyYXRvcn0ke3F1ZXJ5UGFyYW1zLmpvaW4oJyYnKX1gXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IHsgc2lnbmVkVXJsIH0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIGlmIChpc1N0b3JhZ2VFcnJvcihlcnJvcikpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBkYXRhOiBudWxsLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNpZ25lZFVybHMoXG4gICAgcGF0aHM6IHN0cmluZ1tdLFxuICAgIGV4cGlyZXNJbjogbnVtYmVyLFxuICAgIC8vIG9wdGlvbnM/OiB7XG4gICAgLy8gICBkb3dubG9hZD86IHN0cmluZyB8IGJvb2xlYW5cbiAgICAvLyB9LFxuICApOiBQcm9taXNlPFxuICAgIHwgeyBkYXRhOiBBcnJheTx7IHBhdGg6IHN0cmluZzsgc2lnbmVkVXJsOiBzdHJpbmc7IGVycm9yOiBzdHJpbmcgfCBudWxsIH0+OyBlcnJvcjogbnVsbCB9XG4gICAgfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfVxuICAgID4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaWxlTGlzdCA9IHBhdGhzLm1hcChwID0+ICh7XG4gICAgICAgIGZpbGVJRDogdGhpcy5fbm9ybWFsaXplQ2xvdWRJZChwKSxcbiAgICAgICAgbWF4QWdlOiBleHBpcmVzSW4sXG4gICAgICB9KSlcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5nZXRUZW1wRmlsZVVSTCh7IGZpbGVMaXN0IH0pXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IHJlc3VsdC5maWxlTGlzdC5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAgICBwYXRoOiBwYXRoc1tpbmRleF0sXG4gICAgICAgICAgc2lnbmVkVXJsOiBpdGVtLnRlbXBGaWxlVVJMIHx8ICcnLFxuICAgICAgICAgIGVycm9yOiBpdGVtLmNvZGUgPT09ICdTVUNDRVNTJyA/IG51bGwgOiBpdGVtLm1lc3NhZ2UsXG4gICAgICAgIH0pKSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkVGhyb3dPbkVycm9yKSB0aHJvdyBlcnJvclxuICAgICAgaWYgKGlzU3RvcmFnZUVycm9yKGVycm9yKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZG93bmxvYWQoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBUcmFuc2Zvcm1PcHRpb25zLFxuICApOiBQcm9taXNlPHtcbiAgICAgIGRhdGE6IEJsb2JcbiAgICAgIGVycm9yOiBTdG9yYWdlRXJyb3IgfCBudWxsXG4gICAgfT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNpZ25lZFVybFJlc3VsdCA9IGF3YWl0IHRoaXMuY3JlYXRlU2lnbmVkVXJsKHBhdGgsIDYwMCwgeyB0cmFuc2Zvcm06IG9wdGlvbnMgfSlcbiAgICAgICAgICBpZiAoc2lnbmVkVXJsUmVzdWx0LmVycm9yKSB7XG4gICAgICAgICAgICB0aHJvdyBzaWduZWRVcmxSZXN1bHQuZXJyb3JcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgdG1wVXJsID0gZW5jb2RlVVJJKHNpZ25lZFVybFJlc3VsdC5kYXRhPy5zaWduZWRVcmwpXG5cbiAgICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0ICh0aGlzIGFzIGFueSkucmVxdWVzdC5yZXFDbGFzcy5nZXQoe1xuICAgICAgICAgICAgdXJsOiB0bXBVcmwsXG4gICAgICAgICAgICBoZWFkZXJzOiB7fSwgLy8g5LiL6L296LWE5rqQ6K+35rGC5LiN57uP6L+Hc2VydmljZe+8jGhlYWRlcua4heepulxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcignRG93bmxvYWQgZmFpbGVkOiBubyBmaWxlIGNvbnRlbnQnKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIOWwhiBCdWZmZXIg6L2s5o2i5Li6IFVpbnQ4QXJyYXkg5Lul5YW85a65IEJsb2JcbiAgICAgICAgICByZXR1cm4gbmV3IEJsb2IoW2RhdGFdKVxuICAgICAgICB9KSgpLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICog6I635Y+W5paH5Lu25L+h5oGvXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoT3JGaWxlSWQgLSDnm7jlr7not6/lvoTvvIjlpoIgJ2ltYWdlcy9waG90by5qcGcn77yJ5oiWIENsb3VkQmFzZSBmaWxlSUTvvIjku6UgJ2Nsb3VkOi8vJyDlvIDlpLTvvIlcbiAgICogQHJldHVybnMg5paH5Lu25L+h5oGv5a+56LGhXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8g5L2/55So55u45a+56Lev5b6EXG4gICAqIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgYnVja2V0LmluZm8oJ2ltYWdlcy9waG90by5qcGcnKVxuICAgKlxuICAgKiAvLyDkvb/nlKggQ2xvdWRCYXNlIGZpbGVJRFxuICAgKiBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGJ1Y2tldC5pbmZvKCdjbG91ZDovL2Vudi1pZC54eHh4LXh4eHgvaW1hZ2VzL3Bob3RvLmpwZycpXG4gICAqIGBgYFxuICAgKi9cbiAgYXN5bmMgaW5mbyhwYXRoT3JGaWxlSWQ6IHN0cmluZywpOiBQcm9taXNlPHsgZGF0YTogQ2FtZWxpemU8RmlsZU9iamVjdFYyPjsgZXJyb3I6IG51bGwgfSB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIOWIpOaWreaYryBmaWxlSUQg6L+Y5piv55u45a+56Lev5b6EXG4gICAgICBjb25zdCBpc0ZpbGVJZCA9IHBhdGhPckZpbGVJZC5zdGFydHNXaXRoKCdjbG91ZDovLycpXG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGlzRmlsZUlkID8gdGhpcy5fZXh0cmFjdFBhdGhGcm9tRmlsZUlkKHBhdGhPckZpbGVJZCkgOiBwYXRoT3JGaWxlSWRcbiAgICAgIGNvbnN0IGJ1Y2tldElkID0gaXNGaWxlSWQgPyB0aGlzLl9leHRyYWN0QnVja2V0RnJvbUZpbGVJZChwYXRoT3JGaWxlSWQpIDogdGhpcy5idWNrZXRJZFxuXG4gICAgICBjb25zdCBmaWxlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0RmlsZUluZm8oe1xuICAgICAgICBmaWxlTGlzdDogW3RoaXMuX25vcm1hbGl6ZUNsb3VkSWQocGF0aE9yRmlsZUlkKV0sXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBpdGVtID0gZmlsZUluZm8uZmlsZUxpc3RbMF1cblxuICAgICAgaWYgKGl0ZW0uY29kZSAhPT0gJ1NVQ0NFU1MnKSB7XG4gICAgICAgIHRocm93IG5ldyBTdG9yYWdlRXJyb3IoaXRlbS5tZXNzYWdlKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcbiAgICAgIGNvbnN0IGxhc3RNb2RpZmllZCA9IChpdGVtLmxhc3RNb2RpZmllZCA/IG5ldyBEYXRlKGl0ZW0ubGFzdE1vZGlmaWVkKSA6IG5ldyBEYXRlKCkpLnRvSVNPU3RyaW5nKClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICBpZDogaXRlbS5maWxlSUQsXG4gICAgICAgICAgdmVyc2lvbjogJzEnLFxuICAgICAgICAgIG5hbWU6IGRpc3BsYXlOYW1lLFxuICAgICAgICAgIGJ1Y2tldElkLFxuICAgICAgICAgIHVwZGF0ZWRBdDogbGFzdE1vZGlmaWVkLFxuICAgICAgICAgIGNyZWF0ZWRBdDogbGFzdE1vZGlmaWVkLFxuICAgICAgICAgIGxhc3RBY2Nlc3NlZEF0OiBub3csXG4gICAgICAgICAgc2l6ZTogaXRlbS5zaXplLFxuICAgICAgICAgIGNhY2hlQ29udHJvbDogaXRlbS5jYWNoZUNvbnRyb2wsXG4gICAgICAgICAgY29udGVudFR5cGU6IGl0ZW0uY29udGVudFR5cGUsXG4gICAgICAgICAgZXRhZzogaXRlbS5ldGFnLFxuICAgICAgICAgIGxhc3RNb2RpZmllZCxcbiAgICAgICAgICBtZXRhZGF0YToge30sXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgIGVycm9yOiBlcnJvciBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvciA/IGVycm9yIDogbmV3IFN0b3JhZ2VFcnJvcihlcnJvci5tZXNzYWdlKSxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBleGlzdHMocGF0aE9yRmlsZUlkOiBzdHJpbmcpOiBQcm9taXNlPHsgZGF0YTogYm9vbGVhbjsgZXJyb3I6IG51bGwgfSB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIOWIpOaWreaYryBmaWxlSUQg6L+Y5piv55u45a+56Lev5b6EXG4gICAgICBjb25zdCBmaWxlSW5mbyA9IGF3YWl0IHRoaXMuZ2V0RmlsZUluZm8oe1xuICAgICAgICBmaWxlTGlzdDogW3RoaXMuX25vcm1hbGl6ZUNsb3VkSWQocGF0aE9yRmlsZUlkKV0sXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBpdGVtID0gZmlsZUluZm8uZmlsZUxpc3RbMF1cblxuICAgICAgaWYgKGl0ZW0uY29kZSA9PT0gJ0ZJTEVfTk9UX0ZPVU5EJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGRhdGE6IGZhbHNlLFxuICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChpdGVtLmNvZGUgIT09ICdTVUNDRVNTJykge1xuICAgICAgICB0aHJvdyBuZXcgU3RvcmFnZUVycm9yKGl0ZW0ubWVzc2FnZSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgZGF0YTogdHJ1ZSwgZXJyb3I6IG51bGwgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmICh0aGlzLnNob3VsZFRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgIHRocm93IGVycm9yXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0UHVibGljVXJsKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgZG93bmxvYWQ/OiBzdHJpbmcgfCBib29sZWFuXG4gICAgICB0cmFuc2Zvcm0/OiBUcmFuc2Zvcm1PcHRpb25zXG4gICAgfSxcbiAgKTogUHJvbWlzZTxcbiAgICB8IHtcbiAgICAgIGRhdGE6IHsgcHVibGljVXJsOiBzdHJpbmcgfVxuICAgIH1cbiAgICB8IHsgZGF0YTogbnVsbDsgZXJyb3I6IFN0b3JhZ2VFcnJvciB9XG4gICAgPiB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5jcmVhdGVTaWduZWRVcmwocGF0aCwgNjAwLCBvcHRpb25zKVxuXG4gICAgaWYgKHJlcy5kYXRhKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiB7IHB1YmxpY1VybDogcmVzLmRhdGEuc2lnbmVkVXJsIH0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZGF0YTogbnVsbCwgZXJyb3I6IHJlcy5lcnJvciBhcyBTdG9yYWdlRXJyb3IgfVxuICB9XG5cbiAgYXN5bmMgcmVtb3ZlKHBhdGhzOiBzdHJpbmdbXSk6IFByb21pc2U8eyBkYXRhOiBGaWxlT2JqZWN0W107IGVycm9yOiBudWxsIH0gfCB7IGRhdGE6IG51bGw7IGVycm9yOiBTdG9yYWdlRXJyb3IgfT4ge1xuICAgIHRyeSB7XG4gICAgICAvLyDliIbnu4Tojrflj5bmlofku7bkv6Hmga/vvIzmr4/nu4TmnIDlpJoxMOS4qlxuICAgICAgY29uc3QgY2h1bmtTaXplID0gMTBcbiAgICAgIGNvbnN0IHBhdGhDaHVua3M6IHN0cmluZ1tdW10gPSBbXVxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRocy5sZW5ndGg7IGkgKz0gY2h1bmtTaXplKSB7XG4gICAgICAgIHBhdGhDaHVua3MucHVzaChwYXRocy5zbGljZShpLCBpICsgY2h1bmtTaXplKSlcbiAgICAgIH1cblxuICAgICAgLy8g5bm26KGM6I635Y+W5omA5pyJ5YiG57uE55qE5paH5Lu25L+h5oGvXG4gICAgICBjb25zdCBmaWxlSW5mb1Jlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwYXRoQ2h1bmtzLm1hcChjaHVuayA9PiBQcm9taXNlLmFsbChjaHVuay5tYXAocGF0aCA9PiB0aGlzLmluZm8ocGF0aCkpKSksKVxuXG4gICAgICAvLyDlkIjlubbmiYDmnInmlofku7bkv6Hmga/lubbmnoTlu7rmmKDlsITooajvvIhwYXRoIC0+IGZpbGVJbmZv77yJXG4gICAgICBjb25zdCBmaWxlSW5mb01hcCA9IG5ldyBNYXA8c3RyaW5nLCBDYW1lbGl6ZTxGaWxlT2JqZWN0VjI+PigpXG4gICAgICBmaWxlSW5mb1Jlc3VsdHMuZmxhdCgpLmZvckVhY2goKHJlc3VsdCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC5kYXRhKSB7XG4gICAgICAgICAgZmlsZUluZm9NYXAuc2V0KHBhdGhzW01hdGguZmxvb3IoaW5kZXggLyBjaHVua1NpemUpICogY2h1bmtTaXplICsgKGluZGV4ICUgY2h1bmtTaXplKV0sIHJlc3VsdC5kYXRhKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICAvLyDmiafooYzliKDpmaTmk43kvZxcbiAgICAgIGNvbnN0IGZpbGVMaXN0ID0gcGF0aHMubWFwKHAgPT4gdGhpcy5fbm9ybWFsaXplQ2xvdWRJZChwKSlcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGVsZXRlRmlsZSh7IGZpbGVMaXN0IH0pXG5cbiAgICAgIC8vIElEZWxldGVGaWxlUmVzIOeahCBmaWxlTGlzdCDmlbDnu4TkuK3mr4/kuKrpobnmnIkgY29kZSDlrZfmrrVcbiAgICAgIGNvbnN0IGZhaWxlZEZpbGVzID0gcmVzdWx0LmZpbGVMaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0uY29kZSAhPT0gJ1NVQ0NFU1MnKVxuICAgICAgaWYgKGZhaWxlZEZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcihgRGVsZXRlIGZhaWxlZCBmb3IgJHtmYWlsZWRGaWxlcy5sZW5ndGh9IGZpbGUocylgKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKClcblxuICAgICAgLy8g5L2/55So6I635Y+W5Yiw55qE5paH5Lu25L+h5oGv5p6E5bu66L+U5Zue5pWw5o2uXG4gICAgICByZXR1cm4ge1xuICAgICAgICBkYXRhOiBwYXRocy5tYXAoKHApID0+IHtcbiAgICAgICAgICBjb25zdCBpbmZvID0gZmlsZUluZm9NYXAuZ2V0KHApXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogaW5mbz8ubmFtZSxcbiAgICAgICAgICAgIGlkOiBpbmZvPy5pZCxcbiAgICAgICAgICAgIGJ1Y2tldF9pZDogaW5mbz8uYnVja2V0SWQsXG4gICAgICAgICAgICBvd25lcjogdW5kZWZpbmVkLCAvLyDml6Dms5XorqHnrpdvd25lclxuICAgICAgICAgICAgdXBkYXRlZF9hdDogaW5mbz8udXBkYXRlZEF0IHx8IG5vdyxcbiAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IGluZm8/LmNyZWF0ZWRBdCxcbiAgICAgICAgICAgIGxhc3RfYWNjZXNzZWRfYXQ6IGluZm8/Lmxhc3RBY2Nlc3NlZEF0IHx8IG5vdyxcbiAgICAgICAgICAgIG1ldGFkYXRhOiBpbmZvPy5tZXRhZGF0YSB8fCB7fSxcbiAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICogVE9ETzog6I635Y+W6KGl5YWoIEJ1Y2tldCDkv6Hmga9cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgYnVja2V0czoge1xuICAgICAgICAgICAgICBpZDogaW5mbz8uYnVja2V0SWQsXG4gICAgICAgICAgICAgIG5hbWU6IGluZm8/LmJ1Y2tldElkLFxuICAgICAgICAgICAgICBvd25lcjogdW5kZWZpbmVkLCAvLyDml6Dms5XorqHnrpdvd25lclxuICAgICAgICAgICAgICBwdWJsaWM6IGZhbHNlLCAvLyDmnKrnn6VcbiAgICAgICAgICAgICAgY3JlYXRlZF9hdDogJycsIC8vIOacquefpVxuICAgICAgICAgICAgICB1cGRhdGVkX2F0OiBub3csIC8vIOacquefpVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICBpZiAodGhpcy5zaG91bGRUaHJvd09uRXJyb3IpIHRocm93IGVycm9yXG4gICAgICBpZiAoaXNTdG9yYWdlRXJyb3IoZXJyb3IpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZGF0YTogbnVsbCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9XG4gIH1cblxuICBhc3luYyBsaXN0KCkge1xuICAgIHRocm93IG5ldyBTdG9yYWdlRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpXG4gIH1cblxuICBwcml2YXRlIF9nZXRDbG91ZFBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAvLyDmuIXnkIbot6/lvoTvvJrnp7vpmaTpppblsL7mlpzmnaDvvIzlkIjlubblpJrkuKrmlpzmnaBcbiAgICBjb25zdCBjbGVhblBhdGggPSBwYXRoLnJlcGxhY2UoL15cXC98XFwvJC9nLCAnJykucmVwbGFjZSgvXFwvKy9nLCAnLycpXG5cbiAgICAvLyDlkKbliJnov5Tlm57muIXnkIblkI7nmoTnm7jlr7not6/lvoRcbiAgICByZXR1cm4gY2xlYW5QYXRoXG4gIH1cblxuICBwcml2YXRlIF9ub3JtYWxpemVDbG91ZElkKHBhdGg6IHN0cmluZykge1xuICAgIC8vIOWmguaenOW3sue7j+aYryBjbG91ZDovLyDmoLzlvI/vvIznm7TmjqXov5Tlm55cbiAgICBpZiAoL15jbG91ZDpcXC9cXC8vLnRlc3QocGF0aCkpIHtcbiAgICAgIHJldHVybiBwYXRoXG4gICAgfVxuICAgIGNvbnN0IGNsZWFuUGF0aCA9IHRoaXMuX2dldENsb3VkUGF0aChwYXRoKVxuXG4gICAgLy8g5aaC5p6c6K6+572u5LqGIGJ1Y2tldElk77yM5p6E5bu65a6M5pW055qEIGNsb3VkOi8vIOi3r+W+hFxuICAgIGlmICh0aGlzLmJ1Y2tldElkKSB7XG4gICAgICAvLyDojrflj5bnjq/looMgSURcbiAgICAgIGNvbnN0IGVudklkID0gdGhpcy5jb25maWc/LmVudiB8fCAnJ1xuICAgICAgaWYgKGVudklkKSB7XG4gICAgICAgIHJldHVybiBgY2xvdWQ6Ly8ke2VudklkfS4ke3RoaXMuYnVja2V0SWR9LyR7Y2xlYW5QYXRofWBcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcignYnVja2V0SWQgaXMgbm90IHNldCcpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0b0Jhc2U2NChkYXRhOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIEJ1ZmZlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShkYXRhKS50b1N0cmluZygnYmFzZTY0JylcbiAgICB9XG4gICAgcmV0dXJuIGJ0b2EoZGF0YSlcbiAgfVxuXG4gIC8qKlxuICAgKiDlsIYgVHJhbnNmb3JtT3B0aW9ucyDovazmjaLkuLrohb7orq/kupHmlbDmja7kuIfosaHnmoQgaW1hZ2VNb2dyMiDmn6Xor6LlrZfnrKbkuLJcbiAgICpcbiAgICog6IW+6K6v5LqR5pWw5o2u5LiH6LGh5L2/55SoIGltYWdlTW9ncjIg5o6l5Y+j6L+b6KGM5Zu+54mH5aSE55CG77yM5pSv5oyB5Lul5LiL5Y+C5pWw77yaXG4gICAqIC0gL3RodW1ibmFpbC88V2lkdGg+eDxIZWlnaHQ+IC0g57yp5pS+XG4gICAqIC0gL2Zvcm1hdC88Rm9ybWF0PiAtIOagvOW8j+i9rOaNolxuICAgKiAtIC9xdWFsaXR5LzxRdWFsaXR5PiAtIOi0qOmHj+iwg+aVtFxuICAgKiAtIC9ycXVhbGl0eS88UXVhbGl0eT4gLSDnm7jlr7notKjph49cbiAgICpcbiAgICogQHBhcmFtIHRyYW5zZm9ybSAtIFN1cGFiYXNlIFRyYW5zZm9ybU9wdGlvbnNcbiAgICogQHJldHVybnMg6IW+6K6v5LqR5pWw5o2u5LiH6LGh55qE5p+l6K+i5a2X56ym5LiyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogX3RyYW5zZm9ybU9wdHNUb1F1ZXJ5U3RyaW5nKHsgd2lkdGg6IDMwMCwgaGVpZ2h0OiAyMDAsIHF1YWxpdHk6IDgwLCBmb3JtYXQ6ICdvcmlnaW4nIH0pXG4gICAqIC8vIOi/lOWbnjogJ2ltYWdlTW9ncjIvdGh1bWJuYWlsLzMwMHgyMDAvcXVhbGl0eS84MCdcbiAgICogYGBgXG4gICAqL1xuICBwcml2YXRlIF90cmFuc2Zvcm1PcHRzVG9RdWVyeVN0cmluZyh0cmFuc2Zvcm06IFRyYW5zZm9ybU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHBhcmFtczogc3RyaW5nW10gPSBbJ2ltYWdlTW9ncjInXVxuXG4gICAgLy8g5aSE55CG57yp5pS+5Y+C5pWwXG4gICAgaWYgKHRyYW5zZm9ybS53aWR0aCB8fCB0cmFuc2Zvcm0uaGVpZ2h0KSB7XG4gICAgICBjb25zdCB3aWR0aCA9IHRyYW5zZm9ybS53aWR0aCB8fCAnJ1xuICAgICAgY29uc3QgaGVpZ2h0ID0gdHJhbnNmb3JtLmhlaWdodCB8fCAnJ1xuXG4gICAgICAvLyDmoLnmja4gcmVzaXplIOaooeW8j+mAieaLqeS4jeWQjOeahOe8qeaUvuaWueW8j1xuICAgICAgaWYgKHRyYW5zZm9ybS5yZXNpemUgPT09ICdmaWxsJykge1xuICAgICAgICAvLyBmaWxsOiDlvLrliLbnvKnmlL7liLDmjIflrprlsLrlr7jvvIzlj6/og73lj5jlvaJcbiAgICAgICAgcGFyYW1zLnB1c2goYHRodW1ibmFpbC8ke3dpZHRofXgke2hlaWdodH0hYClcbiAgICAgIH0gZWxzZSBpZiAodHJhbnNmb3JtLnJlc2l6ZSA9PT0gJ2NvbnRhaW4nKSB7XG4gICAgICAgIC8vIGNvbnRhaW46IOetieavlOe8qeaUvu+8jOWujOaVtOaYvuekuuWcqOaMh+WumuWwuuWvuOWGhVxuICAgICAgICBwYXJhbXMucHVzaChgdGh1bWJuYWlsLyR7d2lkdGh9eCR7aGVpZ2h0fWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb3ZlciAo6buY6K6kKTog562J5q+U57yp5pS+77yM5aGr5YWF5oyH5a6a5bC65a+477yM5Y+v6IO96KOB5YmqXG4gICAgICAgIC8vIOS9v+eUqCAvdGh1bWJuYWlsLzxXaWR0aD54PEhlaWdodD5eIOihqOekuuWhq+WFheaooeW8j1xuICAgICAgICBwYXJhbXMucHVzaChgdGh1bWJuYWlsLyR7d2lkdGh9eCR7aGVpZ2h0fV5gKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOWkhOeQhuagvOW8j+i9rOaNolxuICAgIC8vIGZvcm1hdDogJ29yaWdpbicg6KGo56S65L+d5oyB5Y6f5qC85byP77yM5LiN5Lyg5q2k5Y+C5pWwXG4gICAgaWYgKHRyYW5zZm9ybS5mb3JtYXQgJiYgdHJhbnNmb3JtLmZvcm1hdCAhPT0gJ29yaWdpbicpIHtcbiAgICAgIHBhcmFtcy5wdXNoKGBmb3JtYXQvJHt0cmFuc2Zvcm0uZm9ybWF0fWApXG4gICAgfVxuXG4gICAgLy8g5aSE55CG6LSo6YeP5Y+C5pWwXG4gICAgaWYgKHRyYW5zZm9ybS5xdWFsaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIOiFvuiur+S6keaVsOaNruS4h+ixoeeahCBxdWFsaXR5IOWPguaVsOiMg+WbtOaYryAxLTEwMFxuICAgICAgY29uc3QgcXVhbGl0eSA9IE1hdGgubWF4KDEsIE1hdGgubWluKDEwMCwgdHJhbnNmb3JtLnF1YWxpdHkpKVxuICAgICAgcGFyYW1zLnB1c2goYHF1YWxpdHkvJHtxdWFsaXR5fWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcy5qb2luKCcvJylcbiAgfVxuXG4gIC8qKlxuICAgKiDku44gQ2xvdWRCYXNlIGZpbGVJRCDkuK3mj5Dlj5bmlofku7bot6/lvoRcbiAgICpcbiAgICogQHBhcmFtIGZpbGVJZCAtIENsb3VkQmFzZSBmaWxlSUQgKOagvOW8jzogY2xvdWQ6Ly9lbnYtaWQuYnVja2V0L3BhdGgvdG8vZmlsZS5qcGcpXG4gICAqIEByZXR1cm5zIOaPkOWPlueahOaWh+S7tui3r+W+hFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIF9leHRyYWN0UGF0aEZyb21GaWxlSWQoJ2Nsb3VkOi8vdGVzdC1lbnYudGVzdC1idWNrZXQvaW1hZ2VzL3Bob3RvLmpwZycpXG4gICAqIC8vIOi/lOWbnjogJ2ltYWdlcy9waG90by5qcGcnXG4gICAqXG4gICAqIF9leHRyYWN0UGF0aEZyb21GaWxlSWQoJ2Nsb3VkOi8vdGVzdC1lbnYudGVzdC1idWNrZXQvZmlsZS50eHQnKVxuICAgKiAvLyDov5Tlm546ICdmaWxlLnR4dCdcbiAgICogYGBgXG4gICAqL1xuICBwcml2YXRlIF9leHRyYWN0UGF0aEZyb21GaWxlSWQoZmlsZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIGZpbGVJRCDmoLzlvI86IGNsb3VkOi8vZW52LWlkLmJ1Y2tldC9wYXRoL3RvL2ZpbGUuanBnXG4gICAgLy8g6ZyA6KaB5o+Q5Y+W56ys5LiA5LiqIC8g5ZCO6Z2i55qE5omA5pyJ5YaF5a6577yI5YyF5ousIGJ1Y2tldCDlkozot6/lvoTvvIlcbiAgICAvLyDnhLblkI7lho3mj5Dlj5YgYnVja2V0IOWQjumdoueahOi3r+W+hOmDqOWIhlxuXG4gICAgLy8g56e76ZmkIGNsb3VkOi8vIOWJjee8gFxuICAgIGNvbnN0IHdpdGhvdXRQcm90b2NvbCA9IGZpbGVJZC5yZXBsYWNlKC9eY2xvdWQ6XFwvXFwvLywgJycpXG5cbiAgICAvLyDliIblibLkuLogW2Vudi1pZC5idWNrZXQsIHBhdGgsIHRvLCBmaWxlLmpwZ11cbiAgICBjb25zdCBwYXJ0cyA9IHdpdGhvdXRQcm90b2NvbC5zcGxpdCgnLycpXG5cbiAgICBpZiAocGFydHMubGVuZ3RoIDwgMikge1xuICAgICAgLy8g5aaC5p6c5peg5rOV6Kej5p6Q77yM6L+U5Zue5a6M5pW055qEIGZpbGVJRFxuICAgICAgcmV0dXJuIGZpbGVJZFxuICAgIH1cblxuICAgIC8vIOenu+mZpOesrOS4gOmDqOWIhu+8iGVudi1pZC5idWNrZXTvvInvvIzov5Tlm57liankvZnot6/lvoRcbiAgICByZXR1cm4gcGFydHMuc2xpY2UoMSkuam9pbignLycpXG4gIH1cblxuICAvKipcbiAgICog5LuOIENsb3VkQmFzZSBmaWxlSUQg5Lit5o+Q5Y+WIGJ1Y2tldCDlkI3np7BcbiAgICpcbiAgICogQHBhcmFtIGZpbGVJZCAtIENsb3VkQmFzZSBmaWxlSUQgKOagvOW8jzogY2xvdWQ6Ly9lbnYtaWQuYnVja2V0L3BhdGgvdG8vZmlsZS5qcGcpXG4gICAqIEByZXR1cm5zIOaPkOWPlueahCBidWNrZXQg5ZCN56ewXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogX2V4dHJhY3RCdWNrZXRGcm9tRmlsZUlkKCdjbG91ZDovL3Rlc3QtZW52LnRlc3QtYnVja2V0L2ltYWdlcy9waG90by5qcGcnKVxuICAgKiAvLyDov5Tlm546ICd0ZXN0LWJ1Y2tldCdcbiAgICpcbiAgICogX2V4dHJhY3RCdWNrZXRGcm9tRmlsZUlkKCdjbG91ZDovL3Byb2QtZW52Lm15LWJ1Y2tldC9maWxlLnR4dCcpXG4gICAqIC8vIOi/lOWbnjogJ215LWJ1Y2tldCdcbiAgICogYGBgXG4gICAqL1xuICBwcml2YXRlIF9leHRyYWN0QnVja2V0RnJvbUZpbGVJZChmaWxlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gZmlsZUlEIOagvOW8jzogY2xvdWQ6Ly9lbnYtaWQuYnVja2V0L3BhdGgvdG8vZmlsZS5qcGdcbiAgICAvLyDpnIDopoHmj5Dlj5YgZW52LWlkLmJ1Y2tldCDkuK3nmoQgYnVja2V0IOmDqOWIhlxuXG4gICAgLy8g56e76ZmkIGNsb3VkOi8vIOWJjee8gFxuICAgIGNvbnN0IHdpdGhvdXRQcm90b2NvbCA9IGZpbGVJZC5yZXBsYWNlKC9eY2xvdWQ6XFwvXFwvLywgJycpXG5cbiAgICAvLyDliIblibLkuLogW2Vudi1pZC5idWNrZXQsIHBhdGgsIHRvLCBmaWxlLmpwZ11cbiAgICBjb25zdCBwYXJ0cyA9IHdpdGhvdXRQcm90b2NvbC5zcGxpdCgnLycpXG5cbiAgICBpZiAocGFydHMubGVuZ3RoIDwgMSkge1xuICAgICAgLy8g5aaC5p6c5peg5rOV6Kej5p6Q77yM6L+U5Zue6buY6K6kIGJ1Y2tldFxuICAgICAgcmV0dXJuICcnXG4gICAgfVxuXG4gICAgLy8g56ys5LiA6YOo5YiG5pivIGVudi1pZC5idWNrZXTvvIzmj5Dlj5YgYnVja2V0IOmDqOWIhlxuICAgIC8vIOagvOW8jzogZW52LWlkLmJ1Y2tldCDmiJYgZW52LWlkLmJ1Y2tldC1uYW1lXG4gICAgY29uc3QgZW52QW5kQnVja2V0ID0gcGFydHNbMF1cblxuICAgIC8vIOafpeaJvuesrOS4gOS4queCueeahOS9jee9rlxuICAgIGNvbnN0IGRvdEluZGV4ID0gZW52QW5kQnVja2V0LmluZGV4T2YoJy4nKVxuXG4gICAgaWYgKGRvdEluZGV4ID09PSAtMSkge1xuICAgICAgLy8g5aaC5p6c5rKh5pyJ54K577yM6L+U5Zue5pW05Liq5a2X56ym5LiyXG4gICAgICByZXR1cm4gZW52QW5kQnVja2V0XG4gICAgfVxuXG4gICAgLy8g6L+U5Zue54K55ZCO6Z2i55qE6YOo5YiG77yIYnVja2V0IOWQjeensO+8iVxuICAgIHJldHVybiBlbnZBbmRCdWNrZXQuc3Vic3RyaW5nKGRvdEluZGV4ICsgMSlcbiAgfVxufVxuIl19
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3VwYWJhc2UvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpbGVCb2R5ID1cbiAgfCBBcnJheUJ1ZmZlclxuICB8IEFycmF5QnVmZmVyVmlld1xuICB8IEJsb2JcbiAgfCBCdWZmZXJcbiAgfCBGaWxlXG4gIHwgRm9ybURhdGFcbiAgfCBOb2RlSlMuUmVhZGFibGVTdHJlYW1cbiAgfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PlxuICB8IFVSTFNlYXJjaFBhcmFtc1xuICB8IHN0cmluZ1xuXG4vKipcbiAqIFR5cGUgb2Ygc3RvcmFnZSBidWNrZXRcbiAqIC0gU1RBTkRBUkQ6IFJlZ3VsYXIgZmlsZSBzdG9yYWdlIGJ1Y2tldHNcbiAqIC0gQU5BTFlUSUNTOiBJY2ViZXJnIHRhYmxlLWJhc2VkIGJ1Y2tldHMgZm9yIGFuYWx5dGljYWwgd29ya2xvYWRzXG4gKi9cbmV4cG9ydCB0eXBlIEJ1Y2tldFR5cGUgPSAnU1RBTkRBUkQnIHwgJ0FOQUxZVElDUydcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXQge1xuICBpZDogc3RyaW5nXG4gIHR5cGU/OiBCdWNrZXRUeXBlXG4gIG5hbWU6IHN0cmluZ1xuICBvd25lcjogc3RyaW5nXG4gIGZpbGVfc2l6ZV9saW1pdD86IG51bWJlclxuICBhbGxvd2VkX21pbWVfdHlwZXM/OiBzdHJpbmdbXVxuICBjcmVhdGVkX2F0OiBzdHJpbmdcbiAgdXBkYXRlZF9hdDogc3RyaW5nXG4gIHB1YmxpYzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVPYmplY3Qge1xuICBuYW1lOiBzdHJpbmdcbiAgYnVja2V0X2lkOiBzdHJpbmdcbiAgb3duZXI6IHN0cmluZ1xuICBpZDogc3RyaW5nXG4gIHVwZGF0ZWRfYXQ6IHN0cmluZ1xuICBjcmVhdGVkX2F0OiBzdHJpbmdcbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIGxhc3RfYWNjZXNzZWRfYXQ6IHN0cmluZ1xuICBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICBidWNrZXRzOiBCdWNrZXRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlT2JqZWN0VjIge1xuICBpZDogc3RyaW5nXG4gIHZlcnNpb246IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgYnVja2V0X2lkOiBzdHJpbmdcbiAgdXBkYXRlZF9hdDogc3RyaW5nXG4gIGNyZWF0ZWRfYXQ6IHN0cmluZ1xuICAvKiogQGRlcHJlY2F0ZWQgKi9cbiAgbGFzdF9hY2Nlc3NlZF9hdDogc3RyaW5nXG4gIHNpemU/OiBudW1iZXJcbiAgY2FjaGVfY29udHJvbD86IHN0cmluZ1xuICBjb250ZW50X3R5cGU/OiBzdHJpbmdcbiAgZXRhZz86IHN0cmluZ1xuICBsYXN0X21vZGlmaWVkPzogc3RyaW5nXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0aGUgYXNzZXQgaXMgY2FjaGVkIGluIHRoZSBicm93c2VyIGFuZCBpbiB0aGUgU3VwYWJhc2UgQ0ROLiBUaGlzIGlzIHNldCBpbiB0aGUgYENhY2hlLUNvbnRyb2w6IG1heC1hZ2U9PHNlY29uZHM+YCBoZWFkZXIuIERlZmF1bHRzIHRvIDM2MDAgc2Vjb25kcy5cbiAgICovXG4gIGNhY2hlQ29udHJvbD86IHN0cmluZ1xuICAvKipcbiAgICogdGhlIGBDb250ZW50LVR5cGVgIGhlYWRlciB2YWx1ZS4gU2hvdWxkIGJlIHNwZWNpZmllZCBpZiB1c2luZyBhIGBmaWxlQm9keWAgdGhhdCBpcyBuZWl0aGVyIGBCbG9iYCBub3IgYEZpbGVgIG5vciBgRm9ybURhdGFgLCBvdGhlcndpc2Ugd2lsbCBkZWZhdWx0IHRvIGB0ZXh0L3BsYWluO2NoYXJzZXQ9VVRGLThgLlxuICAgKi9cbiAgY29udGVudFR5cGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIFdoZW4gdXBzZXJ0IGlzIHNldCB0byB0cnVlLCB0aGUgZmlsZSBpcyBvdmVyd3JpdHRlbiBpZiBpdCBleGlzdHMuIFdoZW4gc2V0IHRvIGZhbHNlLCBhbiBlcnJvciBpcyB0aHJvd24gaWYgdGhlIG9iamVjdCBhbHJlYWR5IGV4aXN0cy4gRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHVwc2VydD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRoZSBkdXBsZXggb3B0aW9uIGlzIGEgc3RyaW5nIHBhcmFtZXRlciB0aGF0IGVuYWJsZXMgb3IgZGlzYWJsZXMgZHVwbGV4IHN0cmVhbWluZywgYWxsb3dpbmcgZm9yIGJvdGggcmVhZGluZyBhbmQgd3JpdGluZyBkYXRhIGluIHRoZSBzYW1lIHN0cmVhbS4gSXQgY2FuIGJlIHBhc3NlZCBhcyBhbiBvcHRpb24gdG8gdGhlIGZldGNoKCkgbWV0aG9kLlxuICAgKi9cbiAgZHVwbGV4Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBtZXRhZGF0YSBvcHRpb24gaXMgYW4gb2JqZWN0IHRoYXQgYWxsb3dzIHlvdSB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmaWxlLiBUaGlzIGluZm9ybWF0aW9uIGNhbiBiZSB1c2VkIHRvIGZpbHRlciBhbmQgc2VhcmNoIGZvciBmaWxlcy4gVGhlIG1ldGFkYXRhIG9iamVjdCBjYW4gY29udGFpbiBhbnkga2V5LXZhbHVlIHBhaXJzIHlvdSB3YW50IHRvIHN0b3JlLlxuICAgKi9cbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsbHkgYWRkIGV4dHJhIGhlYWRlcnNcbiAgICovXG4gIGhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzdGluYXRpb25PcHRpb25zIHtcbiAgZGVzdGluYXRpb25CdWNrZXQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSB3aWR0aCBvZiB0aGUgaW1hZ2UgaW4gcGl4ZWxzLlxuICAgKi9cbiAgd2lkdGg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFRoZSBoZWlnaHQgb2YgdGhlIGltYWdlIGluIHBpeGVscy5cbiAgICovXG4gIGhlaWdodD86IG51bWJlclxuICAvKipcbiAgICogVGhlIHJlc2l6ZSBtb2RlIGNhbiBiZSBjb3ZlciwgY29udGFpbiBvciBmaWxsLiBEZWZhdWx0cyB0byBjb3Zlci5cbiAgICogQ292ZXIgcmVzaXplcyB0aGUgaW1hZ2UgdG8gbWFpbnRhaW4gaXQncyBhc3BlY3QgcmF0aW8gd2hpbGUgZmlsbGluZyB0aGUgZW50aXJlIHdpZHRoIGFuZCBoZWlnaHQuXG4gICAqIENvbnRhaW4gcmVzaXplcyB0aGUgaW1hZ2UgdG8gbWFpbnRhaW4gaXQncyBhc3BlY3QgcmF0aW8gd2hpbGUgZml0dGluZyB0aGUgZW50aXJlIGltYWdlIHdpdGhpbiB0aGUgd2lkdGggYW5kIGhlaWdodC5cbiAgICogRmlsbCByZXNpemVzIHRoZSBpbWFnZSB0byBmaWxsIHRoZSBlbnRpcmUgd2lkdGggYW5kIGhlaWdodC4gSWYgdGhlIG9iamVjdCdzIGFzcGVjdCByYXRpbyBkb2VzIG5vdCBtYXRjaCB0aGUgd2lkdGggYW5kIGhlaWdodCwgdGhlIGltYWdlIHdpbGwgYmUgc3RyZXRjaGVkIHRvIGZpdC5cbiAgICovXG4gIHJlc2l6ZT86ICdjb3ZlcicgfCAnY29udGFpbicgfCAnZmlsbCdcbiAgLyoqXG4gICAqIFNldCB0aGUgcXVhbGl0eSBvZiB0aGUgcmV0dXJuZWQgaW1hZ2UuXG4gICAqIEEgbnVtYmVyIGZyb20gMjAgdG8gMTAwLCB3aXRoIDEwMCBiZWluZyB0aGUgaGlnaGVzdCBxdWFsaXR5LlxuICAgKiBEZWZhdWx0cyB0byA4MFxuICAgKi9cbiAgcXVhbGl0eT86IG51bWJlclxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZm9ybWF0IG9mIHRoZSBpbWFnZSByZXF1ZXN0ZWQuXG4gICAqXG4gICAqIFdoZW4gdXNpbmcgJ29yaWdpbicgd2UgZm9yY2UgdGhlIGZvcm1hdCB0byBiZSB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwgaW1hZ2UuXG4gICAqIFdoZW4gdGhpcyBvcHRpb24gaXMgbm90IHBhc3NlZCBpbiwgaW1hZ2VzIGFyZSBvcHRpbWl6ZWQgdG8gbW9kZXJuIGltYWdlIGZvcm1hdHMgbGlrZSBXZWJwLlxuICAgKi9cbiAgZm9ybWF0PzogJ29yaWdpbidcbn1cblxudHlwZSBDYW1lbENhc2U8UyBleHRlbmRzIHN0cmluZz4gPSBTIGV4dGVuZHMgYCR7aW5mZXIgUDF9XyR7aW5mZXIgUDJ9JHtpbmZlciBQM31gXG4gID8gYCR7TG93ZXJjYXNlPFAxPn0ke1VwcGVyY2FzZTxQMj59JHtDYW1lbENhc2U8UDM+fWBcbiAgOiBTXG5cbmV4cG9ydCB0eXBlIENhbWVsaXplPFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUIGFzIENhbWVsQ2FzZTxFeHRyYWN0PEssIHN0cmluZz4+XTogVFtLXVxufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudbase/storage",
3
- "version": "2.25.5-alpha.1",
3
+ "version": "2.25.6",
4
4
  "description": "cloudbase js sdk storage module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -27,8 +27,8 @@
27
27
  "author": "",
28
28
  "license": "Apache-2.0",
29
29
  "dependencies": {
30
- "@cloudbase/types": "2.25.5-alpha.1",
31
- "@cloudbase/utilities": "2.25.5-alpha.1"
30
+ "@cloudbase/types": "2.25.6",
31
+ "@cloudbase/utilities": "2.25.6"
32
32
  },
33
- "gitHead": "4433e156bb183fad947536a161f238c45d8b6f18"
33
+ "gitHead": "f9fedd1a42709daaafafec2065fc8c57637b87b8"
34
34
  }