occam-file-system 5.0.233 → 5.0.235

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/lib/main.js CHANGED
@@ -69,9 +69,6 @@ _export(exports, {
69
69
  loadFiles: function() {
70
70
  return _loadFiles.default;
71
71
  },
72
- saveFiles: function() {
73
- return _saveFiles.default;
74
- },
75
72
  loadProject: function() {
76
73
  return _loadProject.default;
77
74
  },
@@ -117,7 +114,6 @@ var _fileSystem = /*#__PURE__*/ _interop_require_default(require("./utilities/fi
117
114
  var _loadFile = /*#__PURE__*/ _interop_require_default(require("./loadFile"));
118
115
  var _saveFile = /*#__PURE__*/ _interop_require_default(require("./saveFile"));
119
116
  var _loadFiles = /*#__PURE__*/ _interop_require_default(require("./loadFiles"));
120
- var _saveFiles = /*#__PURE__*/ _interop_require_default(require("./saveFiles"));
121
117
  var _loadProject = /*#__PURE__*/ _interop_require_default(require("./loadProject"));
122
118
  var _loadRelease = /*#__PURE__*/ _interop_require_default(require("./loadRelease"));
123
119
  var _loadProjects = /*#__PURE__*/ _interop_require_default(require("./loadProjects"));
@@ -132,4 +128,4 @@ function _interop_require_default(obj) {
132
128
  };
133
129
  }
134
130
 
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGUgfSBmcm9tIFwiLi9maWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVzIH0gZnJvbSBcIi4vZmlsZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmVyc2lvbiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW50cmllcyB9IGZyb20gXCIuL2VudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZSB9IGZyb20gXCIuL3JlbGVhc2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdHMgfSBmcm9tIFwiLi9wcm9qZWN0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWxlYXNlcyB9IGZyb20gXCIuL3JlbGVhc2VzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlcGVuZGVuY3kgfSBmcm9tIFwiLi9kZXBlbmRlbmN5XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlcGVuZGVuY2llcyB9IGZyb20gXCIuL2RlcGVuZGVuY2llc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaG9ydGVuZWRWZXJzaW9uIH0gZnJvbSBcIi4vc2hvcnRlbmVkVmVyc2lvblwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbGVOYW1lcyB9IGZyb20gXCIuL2ZpbGVOYW1lc1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGh0dHBVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvaHR0cFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb250ZW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRlbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZVBhdGhVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbWV0YUpTT05VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlU3lzdGVtXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgbG9hZEZpbGUgfSBmcm9tIFwiLi9sb2FkRmlsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzYXZlRmlsZSB9IGZyb20gXCIuL3NhdmVGaWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGxvYWRGaWxlcyB9IGZyb20gXCIuL2xvYWRGaWxlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzYXZlRmlsZXMgfSBmcm9tIFwiLi9zYXZlRmlsZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbG9hZFByb2plY3QgfSBmcm9tIFwiLi9sb2FkUHJvamVjdFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb2FkUmVsZWFzZSB9IGZyb20gXCIuL2xvYWRSZWxlYXNlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGxvYWRQcm9qZWN0cyB9IGZyb20gXCIuL2xvYWRQcm9qZWN0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb2FkUmVsZWFzZXMgfSBmcm9tIFwiLi9sb2FkUmVsZWFzZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbW92ZVByb2plY3RFbnRyaWVzIH0gZnJvbSBcIi4vbW92ZVByb2plY3RFbnRyaWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGVkaXRQcm9qZWN0RW50cmllcyB9IGZyb20gXCIuL2VkaXRQcm9qZWN0RW50cmllc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjcmVhdGVQcm9qZWN0RW50cmllcyB9IGZyb20gXCIuL2NyZWF0ZVByb2plY3RFbnRyaWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJlbW92ZVByb2plY3RFbnRyaWVzIH0gZnJvbSBcIi4vcmVtb3ZlUHJvamVjdEVudHJpZXNcIjtcbiJdLCJuYW1lcyI6WyJGaWxlIiwiRmlsZXMiLCJWZXJzaW9uIiwiRW50cmllcyIsIlByb2plY3QiLCJSZWxlYXNlIiwiUHJvamVjdHMiLCJSZWxlYXNlcyIsIkRlcGVuZGVuY3kiLCJEZXBlbmRlbmNpZXMiLCJTaG9ydGVuZWRWZXJzaW9uIiwiZmlsZU5hbWVzIiwiaHR0cFV0aWxpdGllcyIsImNvbnRlbnRVdGlsaXRpZXMiLCJmaWxlUGF0aFV0aWxpdGllcyIsIm1ldGFKU09OVXRpbGl0aWVzIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUHJvamVjdCIsImxvYWRSZWxlYXNlIiwibG9hZFByb2plY3RzIiwibG9hZFJlbGVhc2VzIiwibW92ZVByb2plY3RFbnRyaWVzIiwiZWRpdFByb2plY3RFbnRyaWVzIiwiY3JlYXRlUHJvamVjdEVudHJpZXMiLCJyZW1vdmVQcm9qZWN0RW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBRW9CQSxJQUFJO2VBQUpBLGFBQUk7O0lBQ0pDLEtBQUs7ZUFBTEEsY0FBSzs7SUFDTEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsT0FBTztlQUFQQSxnQkFBTzs7SUFDUEMsUUFBUTtlQUFSQSxpQkFBUTs7SUFDUkMsUUFBUTtlQUFSQSxpQkFBUTs7SUFDUkMsVUFBVTtlQUFWQSxtQkFBVTs7SUFDVkMsWUFBWTtlQUFaQSxxQkFBWTs7SUFDWkMsZ0JBQWdCO2VBQWhCQSx5QkFBZ0I7O0lBRWhCQyxTQUFTO2VBQVRBLGtCQUFTOztJQUVUQyxhQUFhO2VBQWJBLGFBQWE7O0lBQ2JDLGdCQUFnQjtlQUFoQkEsZ0JBQWdCOztJQUNoQkMsaUJBQWlCO2VBQWpCQSxpQkFBaUI7O0lBQ2pCQyxpQkFBaUI7ZUFBakJBLGlCQUFpQjs7SUFDakJDLG1CQUFtQjtlQUFuQkEsbUJBQW1COztJQUVuQkMsUUFBUTtlQUFSQSxpQkFBUTs7SUFDUkMsUUFBUTtlQUFSQSxpQkFBUTs7SUFDUkMsU0FBUztlQUFUQSxrQkFBUzs7SUFDVEMsU0FBUztlQUFUQSxrQkFBUzs7SUFDVEMsV0FBVztlQUFYQSxvQkFBVzs7SUFDWEMsV0FBVztlQUFYQSxvQkFBVzs7SUFDWEMsWUFBWTtlQUFaQSxxQkFBWTs7SUFDWkMsWUFBWTtlQUFaQSxxQkFBWTs7SUFDWkMsa0JBQWtCO2VBQWxCQSwyQkFBa0I7O0lBQ2xCQyxrQkFBa0I7ZUFBbEJBLDJCQUFrQjs7SUFDbEJDLG9CQUFvQjtlQUFwQkEsNkJBQW9COztJQUNwQkMsb0JBQW9CO2VBQXBCQSw2QkFBb0I7OzsyREEvQlI7NERBQ0M7OERBQ0U7OERBQ0E7OERBQ0E7OERBQ0E7K0RBQ0M7K0RBQ0E7aUVBQ0U7bUVBQ0U7dUVBQ0k7Z0VBRVA7MkRBRUk7OERBQ0c7K0RBQ0M7K0RBQ0E7aUVBQ0U7K0RBRVg7K0RBQ0E7Z0VBQ0M7Z0VBQ0E7a0VBQ0U7a0VBQ0E7bUVBQ0M7bUVBQ0E7eUVBQ007eUVBQ0E7MkVBQ0U7MkVBQ0EifQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYWluLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGUgfSBmcm9tIFwiLi9maWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEZpbGVzIH0gZnJvbSBcIi4vZmlsZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVmVyc2lvbiB9IGZyb20gXCIuL3ZlcnNpb25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRW50cmllcyB9IGZyb20gXCIuL2VudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdCB9IGZyb20gXCIuL3Byb2plY3RcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmVsZWFzZSB9IGZyb20gXCIuL3JlbGVhc2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUHJvamVjdHMgfSBmcm9tIFwiLi9wcm9qZWN0c1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSZWxlYXNlcyB9IGZyb20gXCIuL3JlbGVhc2VzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlcGVuZGVuY3kgfSBmcm9tIFwiLi9kZXBlbmRlbmN5XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERlcGVuZGVuY2llcyB9IGZyb20gXCIuL2RlcGVuZGVuY2llc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBTaG9ydGVuZWRWZXJzaW9uIH0gZnJvbSBcIi4vc2hvcnRlbmVkVmVyc2lvblwiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGZpbGVOYW1lcyB9IGZyb20gXCIuL2ZpbGVOYW1lc1wiO1xuXG5leHBvcnQgeyBkZWZhdWx0IGFzIGh0dHBVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvaHR0cFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBjb250ZW50VXRpbGl0aWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2NvbnRlbnRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZVBhdGhVdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZVBhdGhcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbWV0YUpTT05VdGlsaXRpZXMgfSBmcm9tIFwiLi91dGlsaXRpZXMvbWV0YUpTT05cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZmlsZVN5c3RlbVV0aWxpdGllcyB9IGZyb20gXCIuL3V0aWxpdGllcy9maWxlU3lzdGVtXCI7XG5cbmV4cG9ydCB7IGRlZmF1bHQgYXMgbG9hZEZpbGUgfSBmcm9tIFwiLi9sb2FkRmlsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBzYXZlRmlsZSB9IGZyb20gXCIuL3NhdmVGaWxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGxvYWRGaWxlcyB9IGZyb20gXCIuL2xvYWRGaWxlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBsb2FkUHJvamVjdCB9IGZyb20gXCIuL2xvYWRQcm9qZWN0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGxvYWRSZWxlYXNlIH0gZnJvbSBcIi4vbG9hZFJlbGVhc2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgbG9hZFByb2plY3RzIH0gZnJvbSBcIi4vbG9hZFByb2plY3RzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGxvYWRSZWxlYXNlcyB9IGZyb20gXCIuL2xvYWRSZWxlYXNlc1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBtb3ZlUHJvamVjdEVudHJpZXMgfSBmcm9tIFwiLi9tb3ZlUHJvamVjdEVudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZWRpdFByb2plY3RFbnRyaWVzIH0gZnJvbSBcIi4vZWRpdFByb2plY3RFbnRyaWVzXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGNyZWF0ZVByb2plY3RFbnRyaWVzIH0gZnJvbSBcIi4vY3JlYXRlUHJvamVjdEVudHJpZXNcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcmVtb3ZlUHJvamVjdEVudHJpZXMgfSBmcm9tIFwiLi9yZW1vdmVQcm9qZWN0RW50cmllc1wiO1xuIl0sIm5hbWVzIjpbIkZpbGUiLCJGaWxlcyIsIlZlcnNpb24iLCJFbnRyaWVzIiwiUHJvamVjdCIsIlJlbGVhc2UiLCJQcm9qZWN0cyIsIlJlbGVhc2VzIiwiRGVwZW5kZW5jeSIsIkRlcGVuZGVuY2llcyIsIlNob3J0ZW5lZFZlcnNpb24iLCJmaWxlTmFtZXMiLCJodHRwVXRpbGl0aWVzIiwiY29udGVudFV0aWxpdGllcyIsImZpbGVQYXRoVXRpbGl0aWVzIiwibWV0YUpTT05VdGlsaXRpZXMiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwibG9hZEZpbGUiLCJzYXZlRmlsZSIsImxvYWRGaWxlcyIsImxvYWRQcm9qZWN0IiwibG9hZFJlbGVhc2UiLCJsb2FkUHJvamVjdHMiLCJsb2FkUmVsZWFzZXMiLCJtb3ZlUHJvamVjdEVudHJpZXMiLCJlZGl0UHJvamVjdEVudHJpZXMiLCJjcmVhdGVQcm9qZWN0RW50cmllcyIsInJlbW92ZVByb2plY3RFbnRyaWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFb0JBLElBQUk7ZUFBSkEsYUFBSTs7SUFDSkMsS0FBSztlQUFMQSxjQUFLOztJQUNMQyxPQUFPO2VBQVBBLGdCQUFPOztJQUNQQyxPQUFPO2VBQVBBLGdCQUFPOztJQUNQQyxPQUFPO2VBQVBBLGdCQUFPOztJQUNQQyxPQUFPO2VBQVBBLGdCQUFPOztJQUNQQyxRQUFRO2VBQVJBLGlCQUFROztJQUNSQyxRQUFRO2VBQVJBLGlCQUFROztJQUNSQyxVQUFVO2VBQVZBLG1CQUFVOztJQUNWQyxZQUFZO2VBQVpBLHFCQUFZOztJQUNaQyxnQkFBZ0I7ZUFBaEJBLHlCQUFnQjs7SUFFaEJDLFNBQVM7ZUFBVEEsa0JBQVM7O0lBRVRDLGFBQWE7ZUFBYkEsYUFBYTs7SUFDYkMsZ0JBQWdCO2VBQWhCQSxnQkFBZ0I7O0lBQ2hCQyxpQkFBaUI7ZUFBakJBLGlCQUFpQjs7SUFDakJDLGlCQUFpQjtlQUFqQkEsaUJBQWlCOztJQUNqQkMsbUJBQW1CO2VBQW5CQSxtQkFBbUI7O0lBRW5CQyxRQUFRO2VBQVJBLGlCQUFROztJQUNSQyxRQUFRO2VBQVJBLGlCQUFROztJQUNSQyxTQUFTO2VBQVRBLGtCQUFTOztJQUNUQyxXQUFXO2VBQVhBLG9CQUFXOztJQUNYQyxXQUFXO2VBQVhBLG9CQUFXOztJQUNYQyxZQUFZO2VBQVpBLHFCQUFZOztJQUNaQyxZQUFZO2VBQVpBLHFCQUFZOztJQUNaQyxrQkFBa0I7ZUFBbEJBLDJCQUFrQjs7SUFDbEJDLGtCQUFrQjtlQUFsQkEsMkJBQWtCOztJQUNsQkMsb0JBQW9CO2VBQXBCQSw2QkFBb0I7O0lBQ3BCQyxvQkFBb0I7ZUFBcEJBLDZCQUFvQjs7OzJEQTlCUjs0REFDQzs4REFDRTs4REFDQTs4REFDQTs4REFDQTsrREFDQzsrREFDQTtpRUFDRTttRUFDRTt1RUFDSTtnRUFFUDsyREFFSTs4REFDRzsrREFDQzsrREFDQTtpRUFDRTsrREFFWDsrREFDQTtnRUFDQztrRUFDRTtrRUFDQTttRUFDQzttRUFDQTt5RUFDTTt5RUFDQTsyRUFDRTsyRUFDQSJ9
@@ -18,9 +18,6 @@ _export(exports, {
18
18
  loadFiles: function() {
19
19
  return loadFiles;
20
20
  },
21
- saveFiles: function() {
22
- return saveFiles;
23
- },
24
21
  loadRelease: function() {
25
22
  return loadRelease;
26
23
  },
@@ -54,7 +51,7 @@ function _interop_require_default(obj) {
54
51
  default: obj
55
52
  };
56
53
  }
57
- var first = _necessary.arrayUtilities.first, concatenatePaths = _necessary.pathUtilities.concatenatePaths, topmostDirectoryNameFromPath = _necessary.pathUtilities.topmostDirectoryNameFromPath, topmostDirectoryPathFromPath = _necessary.pathUtilities.topmostDirectoryPathFromPath, readFile = _necessary.fileSystemUtilities.readFile, writeFile = _necessary.fileSystemUtilities.writeFile, isEntryFile = _necessary.fileSystemUtilities.isEntryFile, readDirectory = _necessary.fileSystemUtilities.readDirectory, isEntryDirectory = _necessary.fileSystemUtilities.isEntryDirectory, checkFileExists = _necessary.fileSystemUtilities.checkEntryExists;
54
+ var first = _necessary.arrayUtilities.first, concatenatePaths = _necessary.pathUtilities.concatenatePaths, topmostDirectoryNameFromPath = _necessary.pathUtilities.topmostDirectoryNameFromPath, readFile = _necessary.fileSystemUtilities.readFile, writeFile = _necessary.fileSystemUtilities.writeFile, isEntryFile = _necessary.fileSystemUtilities.isEntryFile, readDirectory = _necessary.fileSystemUtilities.readDirectory, isEntryDirectory = _necessary.fileSystemUtilities.isEntryDirectory, checkFileExists = _necessary.fileSystemUtilities.checkEntryExists;
58
55
  function loadFile(path, projectsDirectoryPath) {
59
56
  var file = null;
60
57
  try {
@@ -98,13 +95,6 @@ function loadFiles(paths, projectsDirectoryPath) {
98
95
  }
99
96
  return files;
100
97
  }
101
- function saveFiles(files, projectsDirectoryPath) {
102
- var successes = files.mapFile(function(file) {
103
- var success = saveFile(file, projectsDirectoryPath);
104
- return success;
105
- });
106
- return successes;
107
- }
108
98
  function loadRelease(releaseName, projectsDirectoryPath) {
109
99
  var release = null;
110
100
  try {
@@ -169,7 +159,6 @@ var _default = {
169
159
  loadFile: loadFile,
170
160
  saveFile: saveFile,
171
161
  loadFiles: loadFiles,
172
- saveFiles: saveFiles,
173
162
  loadRelease: loadRelease,
174
163
  loadProject: loadProject,
175
164
  loadReleases: loadReleases,
@@ -275,4 +264,4 @@ function topmostDirectoryNamesFromProjectsDirectoryPath(projectsDirectoryPath) {
275
264
  return topmostDirectoryNames;
276
265
  }
277
266
 
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzLCBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xyXG5cclxuaW1wb3J0IEZpbGUgZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IEZpbGVzIGZyb20gXCIuLi9maWxlc1wiO1xyXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi4vZW50cmllc1wiO1xyXG5pbXBvcnQgUHJvamVjdCBmcm9tIFwiLi4vcHJvamVjdFwiO1xyXG5pbXBvcnQgUmVsZWFzZSBmcm9tIFwiLi4vcmVsZWFzZVwiO1xyXG5pbXBvcnQgUHJvamVjdHMgZnJvbSBcIi4uL3Byb2plY3RzXCI7XHJcbmltcG9ydCBSZWxlYXNlcyBmcm9tIFwiLi4vcmVsZWFzZXNcIjtcclxuaW1wb3J0IERpcmVjdG9yeSBmcm9tIFwiLi4vZGlyZWN0b3J5XCI7XHJcblxyXG5pbXBvcnQgeyBpc05hbWVIaWRkZW5OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XHJcbmltcG9ydCB7IGlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGggfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVQYXRoXCI7XHJcbmltcG9ydCB7IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGVudFwiO1xyXG5cclxuY29uc3QgeyBmaXJzdCB9ID0gYXJyYXlVdGlsaXRpZXMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCwgdG9wbW9zdERpcmVjdG9yeVBhdGhGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSwgY2hlY2tFbnRyeUV4aXN0czogY2hlY2tGaWxlRXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGFic29sdXRlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgZmlsZVBhdGgpLFxyXG4gICAgICAgIGZpbGVFeGlzdHMgPSBjaGVja0ZpbGVFeGlzdHMoYWJzb2x1dGVGaWxlUGF0aCk7XHJcblxyXG4gIGlmIChmaWxlRXhpc3RzKSB7XHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGFic29sdXRlRmlsZVBhdGgsICAvLy9cclxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgLy8vXHJcbiAgICB9XHJcblxyXG4gICAgc3VjY2VzcyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3VjY2VzcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlcyhwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGZpbGVzID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHBhdGhzTGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmlyc3RQYXRoID0gZmlyc3QocGF0aHMpLFxyXG4gICAgICAgICAgICBwYXRoID0gZmlyc3RQYXRoLCAvLy9cclxuICAgICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpO1xyXG5cclxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgICAgZmlsZXMgPSBlbnRyeURpcmVjdG9yeSA/XHJcbiAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVByb2plY3QocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkgOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVJlbGVhc2UocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZXMoZmlsZXMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IHN1Y2Nlc3NlcyA9IGZpbGVzLm1hcEZpbGUoKGZpbGUpID0+IHtcclxuICAgIGNvbnN0IHN1Y2Nlc3MgPSBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIHJldHVybiBzdWNjZXNzO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gc3VjY2Vzc2VzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlbGVhc2UocmVsZWFzZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCByZWxlYXNlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IG5hbWUgPSByZWxlYXNlTmFtZSwgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSByZWxlYXNlTmFtZSwgIC8vL1xyXG4gICAgICAgICAgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3RGaWxlTmFtZSksXHJcbiAgICAgICAgICBlbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGlmIChlbnRyeUZpbGUpIHtcclxuICAgICAgbGV0IGpzb24sXHJcbiAgICAgICAgICBlbnRyaWVzO1xyXG5cclxuICAgICAgY29uc3QgY29udGVudCA9IHJlYWRGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBqc29uID0gSlNPTi5wYXJzZShjb250ZW50KTtcclxuXHJcbiAgICAgICh7IGVudHJpZXMgfSA9IGpzb24pO1xyXG5cclxuICAgICAganNvbiAgPSBlbnRyaWVzOyAgLy8vXHJcblxyXG4gICAgICBlbnRyaWVzID0gRW50cmllcy5mcm9tSlNPTihqc29uKTtcclxuXHJcbiAgICAgIHJlbGVhc2UgPSBSZWxlYXNlLmZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVsZWFzZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgbGV0IHByb2plY3QgPSBudWxsO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHByb2plY3ROYW1lLCAgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHByb2plY3ROYW1lLCAvLy9cclxuICAgICAgICAgIGVudHJpZXMgPSBsb2FkRW50cmllcyh0b3Btb3N0RGlyZWN0b3J5TmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7XHJcblxyXG4gICAgcHJvamVjdCA9IFByb2plY3QuZnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9qZWN0O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFJlbGVhc2VzKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCByZWxlYXNlcztcclxuXHJcbiAgdHJ5IHtcclxuICAgIHJlbGVhc2VzID0gUmVsZWFzZXMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgICBjb25zdCB0b3Btb3N0RmlsZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICAgIHJlbGVhc2VOYW1lcyA9IHRvcG1vc3RGaWxlTmFtZXM7ICAvLy9cclxuXHJcbiAgICByZWxlYXNlTmFtZXMuZm9yRWFjaCgocmVsZWFzZU5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHJlbGVhc2VOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKHJlbGVhc2UgIT09IG51bGwpIHtcclxuICAgICAgICByZWxlYXNlcy5hZGRSZWxlYXNlKHJlbGVhc2UpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcmVsZWFzZXMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHJlbGVhc2VzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3RzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBsZXQgcHJvamVjdHM7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBwcm9qZWN0cyA9IFByb2plY3RzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gICAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgICAgcHJvamVjdE5hbWVzID0gdG9wbW9zdERpcmVjdG9yeU5hbWVzOyAvLy9cclxuXHJcbiAgICBwcm9qZWN0TmFtZXMuZm9yRWFjaCgocHJvamVjdE5hbWUpID0+IHtcclxuICAgICAgY29uc3QgcHJvamVjdCA9IGxvYWRQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTtcclxuXHJcbiAgICAgIGlmIChwcm9qZWN0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgcHJvamVjdHMuYWRkUHJvamVjdChwcm9qZWN0KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHByb2plY3RzID0gbnVsbDtcclxuICB9XHJcblxyXG4gIHJldHVybiBwcm9qZWN0cztcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGxvYWRGaWxlLFxyXG4gIHNhdmVGaWxlLFxyXG4gIGxvYWRGaWxlcyxcclxuICBzYXZlRmlsZXMsXHJcbiAgbG9hZFJlbGVhc2UsXHJcbiAgbG9hZFByb2plY3QsXHJcbiAgbG9hZFJlbGVhc2VzLFxyXG4gIGxvYWRQcm9qZWN0c1xyXG59O1xyXG5cclxuZnVuY3Rpb24gbG9hZEVudHJpZXModG9wbW9zdERpcmVjdG9yeU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBjb25zdCBlbnRyaWVzID0gRW50cmllcy5mcm9tTm90aGluZygpLFxyXG4gICAgICAgIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCA9IHRvcG1vc3REaXJlY3RvcnlOYW1lOyAgLy8vXHJcblxyXG4gIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7XHJcblxyXG4gIHJldHVybiBlbnRyaWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBsb2FkRGlyZWN0b3J5KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IGFic29sdXRlUGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBwYXRoKSxcclxuICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKSxcclxuICAgICAgICBkaXJlY3RvcnkgPSBlbnRyeURpcmVjdG9yeSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICBEaXJlY3RvcnkuZnJvbVBhdGgocGF0aCkgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBudWxsO1xyXG5cclxuICByZXR1cm4gZGlyZWN0b3J5O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGZpbGUgPSBudWxsO1xyXG5cclxuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgZW50cnlGaWxlID0gaXNFbnRyeUZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgaWYgKGVudHJ5RmlsZSkge1xyXG4gICAgY29uc3QgcmVsZWFzZWQgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgY29udGVudCA9IHJlYWRGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgY29udGVudCA9IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZShjb250ZW50KTsgIC8vL1xyXG5cclxuICAgIGZpbGUgPSBGaWxlLmZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlRnJvbVJlbGVhc2UocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpLFxyXG4gICAgICAgIHRvcG1vc3RGaWxlTmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lLCAvLy9cclxuICAgICAgICByZWxlYXNlID0gbG9hZFJlbGVhc2UodG9wbW9zdEZpbGVOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIGZpbGUgPSByZWxlYXNlLmdldEZpbGUocGF0aCk7XHJcblxyXG4gIHJldHVybiBmaWxlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlc0Zyb21Qcm9qZWN0KHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCk7XHJcblxyXG4gIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcclxuICAgIGNvbnN0IGZpbGUgPSBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZpbGVzRnJvbVJlbGVhc2UocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IGZpbGVzID0gRmlsZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICBwYXRoc0xlbmd0aCA9IHBhdGhzLmxlbmd0aDtcclxuXHJcbiAgaWYgKHBhdGhzTGVuZ3RoID4gMCkge1xyXG4gICAgY29uc3QgZmlyc3RQYXRoID0gZmlyc3QocGF0aHMpLFxyXG4gICAgICAgICAgcGF0aCA9IGZpcnN0UGF0aCwgLy8vXHJcbiAgICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgocGF0aCksXHJcbiAgICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZSwgLy8vXHJcbiAgICAgICAgICByZWxlYXNlID0gbG9hZFJlbGVhc2UodG9wbW9zdEZpbGVOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgIHBhdGhzLmZvckVhY2goKHBhdGgpID0+IHtcclxuICAgICAgY29uc3QgZmlsZSA9IHJlbGVhc2UuZ2V0RmlsZShwYXRoKTtcclxuXHJcbiAgICAgIGZpbGVzLmFkZEZpbGUoZmlsZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJldHVybiBmaWxlcztcclxufVxyXG5cclxuZnVuY3Rpb24gZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgcmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgYWJzb2x1dGVEaXJlY3RvcnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkoYWJzb2x1dGVEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgc3ViRW50cnlOYW1lcy5mb3JFYWNoKChzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyA9ICFsb2FkT25seVJlY29nbmlzZWRGaWxlcztcclxuXHJcbiAgICBpZiAoIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUpIHtcclxuICAgICAgY29uc3QgcGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocmVsYXRpdmVEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgICBkaXJlY3RvcnkgPSBsb2FkRGlyZWN0b3J5KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoZGlyZWN0b3J5ICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0b3J5UGF0aCA9IHBhdGg7IC8vL1xyXG5cclxuICAgICAgICBpZiAobG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgIGVudHJpZXMuYWRkRGlyZWN0b3J5KGRpcmVjdG9yeSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCBkaXJlY3RvcnlQYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTsgLy8vXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlICE9PSBudWxsKSB7XHJcbiAgICAgICAgICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgICAgICAgICAgZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGggPSBpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoKGZpbGVQYXRoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVSZWNvZ25pc2VkRmlsZSA9IGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoOyAgLy8vXHJcblxyXG4gICAgICAgICAgaWYgKGZpbGVSZWNvZ25pc2VkRmlsZSB8fCBsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3Rvcmllcykge1xyXG4gICAgICAgICAgICBlbnRyaWVzLmFkZEZpbGUoZmlsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3RGaWxlTmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCB0b3Btb3N0RmlsZU5hbWVzO1xyXG5cclxuICBjb25zdCBzdWJFbnRyeU5hbWVzID0gcmVhZERpcmVjdG9yeShwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICB0b3Btb3N0RmlsZU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3RGaWxlTmFtZXMsIHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3QgYWJzb2x1dGVTdWJFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSk7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHN1YkVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeUZpbGUpIHtcclxuICAgICAgICBjb25zdCB0b3Btb3N0RmlsZU5hbWUgPSBzdWJFbnRyeU5hbWU7ICAvLy9cclxuXHJcbiAgICAgICAgdG9wbW9zdEZpbGVOYW1lcy5wdXNoKHRvcG1vc3RGaWxlTmFtZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b3Btb3N0RmlsZU5hbWVzO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgcmV0dXJuIHRvcG1vc3RGaWxlTmFtZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgocHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdERpcmVjdG9yeU5hbWVzID0gc3ViRW50cnlOYW1lcy5yZWR1Y2UoKHRvcG1vc3REaXJlY3RvcnlOYW1lcywgc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBhYnNvbHV0ZVN1YkVudHJ5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgc3ViRW50cnlOYW1lSGlkZGVuTmFtZSA9IGlzTmFtZUhpZGRlbk5hbWUoc3ViRW50cnlOYW1lKTtcclxuXHJcbiAgICBpZiAoIXN1YkVudHJ5TmFtZUhpZGRlbk5hbWUpIHtcclxuICAgICAgY29uc3Qgc3ViRW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlU3ViRW50cnlQYXRoKTtcclxuXHJcbiAgICAgIGlmIChzdWJFbnRyeURpcmVjdG9yeSkge1xyXG4gICAgICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lcy5wdXNoKHRvcG1vc3REaXJlY3RvcnlOYW1lKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRvcG1vc3REaXJlY3RvcnlOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbn1cclxuIl0sIm5hbWVzIjpbImxvYWRGaWxlIiwic2F2ZUZpbGUiLCJsb2FkRmlsZXMiLCJzYXZlRmlsZXMiLCJsb2FkUmVsZWFzZSIsImxvYWRQcm9qZWN0IiwibG9hZFJlbGVhc2VzIiwibG9hZFByb2plY3RzIiwiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImNvbmNhdGVuYXRlUGF0aHMiLCJwYXRoVXRpbGl0aWVzIiwidG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCIsInRvcG1vc3REaXJlY3RvcnlQYXRoRnJvbVBhdGgiLCJyZWFkRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJ3cml0ZUZpbGUiLCJpc0VudHJ5RmlsZSIsInJlYWREaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiY2hlY2tFbnRyeUV4aXN0cyIsImNoZWNrRmlsZUV4aXN0cyIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJhYnNvbHV0ZVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImZpbGVGcm9tUHJvamVjdCIsImZpbGVGcm9tUmVsZWFzZSIsImVycm9yIiwic3VjY2VzcyIsImZpbGVQYXRoIiwiZ2V0UGF0aCIsImFic29sdXRlRmlsZVBhdGgiLCJmaWxlRXhpc3RzIiwiY29udGVudCIsImdldENvbnRlbnQiLCJwYXRocyIsImZpbGVzIiwicGF0aHNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFBhdGgiLCJmaWxlc0Zyb21Qcm9qZWN0IiwiZmlsZXNGcm9tUmVsZWFzZSIsInN1Y2Nlc3NlcyIsIm1hcEZpbGUiLCJyZWxlYXNlTmFtZSIsInJlbGVhc2UiLCJuYW1lIiwidG9wbW9zdEZpbGVOYW1lIiwiZW50cnlGaWxlIiwianNvbiIsImVudHJpZXMiLCJKU09OIiwicGFyc2UiLCJFbnRyaWVzIiwiZnJvbUpTT04iLCJSZWxlYXNlIiwiZnJvbU5hbWVBbmRFbnRyaWVzIiwicHJvamVjdE5hbWUiLCJsb2FkT25seVJlY29nbmlzZWRGaWxlcyIsInByb2plY3QiLCJsb2FkRW50cmllcyIsIlByb2plY3QiLCJyZWxlYXNlcyIsIlJlbGVhc2VzIiwiZnJvbU5vdGhpbmciLCJ0b3Btb3N0RmlsZU5hbWVzIiwidG9wbW9zdEZpbGVOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJyZWxlYXNlTmFtZXMiLCJmb3JFYWNoIiwiYWRkUmVsZWFzZSIsInByb2plY3RzIiwiUHJvamVjdHMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZXMiLCJ0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoIiwicHJvamVjdE5hbWVzIiwiYWRkUHJvamVjdCIsInJlbGF0aXZlRGlyZWN0b3J5UGF0aCIsImVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwibG9hZERpcmVjdG9yeSIsImRpcmVjdG9yeSIsIkRpcmVjdG9yeSIsImZyb21QYXRoIiwicmVsZWFzZWQiLCJjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UiLCJGaWxlIiwiZnJvbVBhdGhDb250ZW50QW5kUmVsZWFzZWQiLCJnZXRGaWxlIiwiRmlsZXMiLCJhZGRGaWxlIiwiYWJzb2x1dGVEaXJlY3RvcnlQYXRoIiwic3ViRW50cnlOYW1lcyIsInN1YkVudHJ5TmFtZSIsInN1YkVudHJ5TmFtZUhpZGRlbk5hbWUiLCJpc05hbWVIaWRkZW5OYW1lIiwibG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMiLCJkaXJlY3RvcnlQYXRoIiwiYWRkRGlyZWN0b3J5IiwiZmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJpc0ZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoIiwiZmlsZVJlY29nbmlzZWRGaWxlIiwicmVkdWNlIiwiYWJzb2x1dGVTdWJFbnRyeVBhdGgiLCJzdWJFbnRyeUZpbGUiLCJwdXNoIiwic3ViRW50cnlEaXJlY3RvcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQXFCZ0JBLFFBQVE7ZUFBUkE7O0lBcUJBQyxRQUFRO2VBQVJBOztJQXVCQUMsU0FBUztlQUFUQTs7SUEyQkFDLFNBQVM7ZUFBVEE7O0lBVUFDLFdBQVc7ZUFBWEE7O0lBZ0NBQyxXQUFXO2VBQVhBOztJQWdCQUMsWUFBWTtlQUFaQTs7SUF1QkFDLFlBQVk7ZUFBWkE7O0lBdUJoQixPQVNFO2VBVEY7Ozt5QkFsTW1FOzJEQUVsRDs0REFDQzs4REFDRTs4REFDQTs4REFDQTsrREFDQzsrREFDQTtnRUFDQztvQkFFVzt3QkFDWTt1QkFDRTs7Ozs7O0FBRS9DLElBQU0sQUFBRUMsUUFBVUMseUJBQWMsQ0FBeEJELE9B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
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZmlsZVN5c3RlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzLCBwYXRoVXRpbGl0aWVzLCBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xyXG5cclxuaW1wb3J0IEZpbGUgZnJvbSBcIi4uL2ZpbGVcIjtcclxuaW1wb3J0IEZpbGVzIGZyb20gXCIuLi9maWxlc1wiO1xyXG5pbXBvcnQgRW50cmllcyBmcm9tIFwiLi4vZW50cmllc1wiO1xyXG5pbXBvcnQgUHJvamVjdCBmcm9tIFwiLi4vcHJvamVjdFwiO1xyXG5pbXBvcnQgUmVsZWFzZSBmcm9tIFwiLi4vcmVsZWFzZVwiO1xyXG5pbXBvcnQgUHJvamVjdHMgZnJvbSBcIi4uL3Byb2plY3RzXCI7XHJcbmltcG9ydCBSZWxlYXNlcyBmcm9tIFwiLi4vcmVsZWFzZXNcIjtcclxuaW1wb3J0IERpcmVjdG9yeSBmcm9tIFwiLi4vZGlyZWN0b3J5XCI7XHJcblxyXG5pbXBvcnQgeyBpc05hbWVIaWRkZW5OYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9uYW1lXCI7XHJcbmltcG9ydCB7IGlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGggfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2ZpbGVQYXRoXCI7XHJcbmltcG9ydCB7IGNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGVudFwiO1xyXG5cclxuY29uc3QgeyBmaXJzdCB9ID0gYXJyYXlVdGlsaXRpZXMsXHJcbiAgICAgIHsgY29uY2F0ZW5hdGVQYXRocywgdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aCB9ID0gcGF0aFV0aWxpdGllcyxcclxuICAgICAgeyByZWFkRmlsZSwgd3JpdGVGaWxlLCBpc0VudHJ5RmlsZSwgcmVhZERpcmVjdG9yeSwgaXNFbnRyeURpcmVjdG9yeSwgY2hlY2tFbnRyeUV4aXN0czogY2hlY2tGaWxlRXhpc3RzIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKTtcclxuXHJcbiAgICBpZiAodG9wbW9zdERpcmVjdG9yeU5hbWUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgICBmaWxlID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICBmaWxlRnJvbVByb2plY3QocGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSA6XHJcbiAgICAgICAgICAgICAgICAgZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICB9XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGZpbGU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBzYXZlRmlsZShmaWxlLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgc3VjY2VzcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBmaWxlUGF0aCA9IGZpbGUuZ2V0UGF0aCgpLFxyXG4gICAgICAgIGFic29sdXRlRmlsZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgZmlsZVBhdGgpLFxyXG4gICAgICAgIGZpbGVFeGlzdHMgPSBjaGVja0ZpbGVFeGlzdHMoYWJzb2x1dGVGaWxlUGF0aCk7XHJcblxyXG4gIGlmIChmaWxlRXhpc3RzKSB7XHJcbiAgICBjb25zdCBmaWxlUGF0aCA9IGFic29sdXRlRmlsZVBhdGgsICAvLy9cclxuICAgICAgICAgIGNvbnRlbnQgPSBmaWxlLmdldENvbnRlbnQoKTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGNvbnRlbnQpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgLy8vXHJcbiAgICB9XHJcblxyXG4gICAgc3VjY2VzcyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gc3VjY2VzcztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRGaWxlcyhwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IGZpbGVzID0gbnVsbDtcclxuXHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IHBhdGhzTGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xyXG5cclxuICAgIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZmlyc3RQYXRoID0gZmlyc3QocGF0aHMpLFxyXG4gICAgICAgICAgICBwYXRoID0gZmlyc3RQYXRoLCAvLy9cclxuICAgICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpO1xyXG5cclxuICAgICAgaWYgKHRvcG1vc3REaXJlY3RvcnlOYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHRvcG1vc3REaXJlY3RvcnlOYW1lKSxcclxuICAgICAgICAgICAgICBlbnRyeURpcmVjdG9yeSA9IGlzRW50cnlEaXJlY3RvcnkoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgICAgZmlsZXMgPSBlbnRyeURpcmVjdG9yeSA/XHJcbiAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVByb2plY3QocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkgOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzRnJvbVJlbGVhc2UocGF0aHMsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgLy8vXHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVsZWFzZShyZWxlYXNlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHJlbGVhc2UgPSBudWxsO1xyXG5cclxuICB0cnkge1xyXG4gICAgY29uc3QgbmFtZSA9IHJlbGVhc2VOYW1lLCAvLy9cclxuICAgICAgICAgIHRvcG1vc3RGaWxlTmFtZSA9IHJlbGVhc2VOYW1lLCAgLy8vXHJcbiAgICAgICAgICBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgdG9wbW9zdEZpbGVOYW1lKSxcclxuICAgICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gICAgaWYgKGVudHJ5RmlsZSkge1xyXG4gICAgICBsZXQganNvbixcclxuICAgICAgICAgIGVudHJpZXM7XHJcblxyXG4gICAgICBjb25zdCBjb250ZW50ID0gcmVhZEZpbGUoYWJzb2x1dGVQYXRoKTtcclxuXHJcbiAgICAgIGpzb24gPSBKU09OLnBhcnNlKGNvbnRlbnQpO1xyXG5cclxuICAgICAgKHsgZW50cmllcyB9ID0ganNvbik7XHJcblxyXG4gICAgICBqc29uICA9IGVudHJpZXM7ICAvLy9cclxuXHJcbiAgICAgIGVudHJpZXMgPSBFbnRyaWVzLmZyb21KU09OKGpzb24pO1xyXG5cclxuICAgICAgcmVsZWFzZSA9IFJlbGVhc2UuZnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAvLy9cclxuICB9XHJcblxyXG4gIHJldHVybiByZWxlYXNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbG9hZFByb2plY3QocHJvamVjdE5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpIHtcclxuICBsZXQgcHJvamVjdCA9IG51bGw7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBjb25zdCBuYW1lID0gcHJvamVjdE5hbWUsICAvLy9cclxuICAgICAgICAgIHRvcG1vc3REaXJlY3RvcnlOYW1lID0gcHJvamVjdE5hbWUsIC8vL1xyXG4gICAgICAgICAgZW50cmllcyA9IGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKTtcclxuXHJcbiAgICBwcm9qZWN0ID0gUHJvamVjdC5mcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyk7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIC8vL1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3Q7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUmVsZWFzZXMocHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgbGV0IHJlbGVhc2VzO1xyXG5cclxuICB0cnkge1xyXG4gICAgcmVsZWFzZXMgPSBSZWxlYXNlcy5mcm9tTm90aGluZygpO1xyXG5cclxuICAgIGNvbnN0IHRvcG1vc3RGaWxlTmFtZXMgPSB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgICAgcmVsZWFzZU5hbWVzID0gdG9wbW9zdEZpbGVOYW1lczsgIC8vL1xyXG5cclxuICAgIHJlbGVhc2VOYW1lcy5mb3JFYWNoKChyZWxlYXNlTmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCByZWxlYXNlID0gbG9hZFJlbGVhc2UocmVsZWFzZU5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgICBpZiAocmVsZWFzZSAhPT0gbnVsbCkge1xyXG4gICAgICAgIHJlbGVhc2VzLmFkZFJlbGVhc2UocmVsZWFzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICByZWxlYXNlcyA9IG51bGw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVsZWFzZXM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkUHJvamVjdHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGxldCBwcm9qZWN0cztcclxuXHJcbiAgdHJ5IHtcclxuICAgIHByb2plY3RzID0gUHJvamVjdHMuZnJvbU5vdGhpbmcoKTtcclxuXHJcbiAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZXMgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCksXHJcbiAgICAgICAgICBwcm9qZWN0TmFtZXMgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7IC8vL1xyXG5cclxuICAgIHByb2plY3ROYW1lcy5mb3JFYWNoKChwcm9qZWN0TmFtZSkgPT4ge1xyXG4gICAgICBjb25zdCBwcm9qZWN0ID0gbG9hZFByb2plY3QocHJvamVjdE5hbWUsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICAgICAgaWYgKHByb2plY3QgIT09IG51bGwpIHtcclxuICAgICAgICBwcm9qZWN0cy5hZGRQcm9qZWN0KHByb2plY3QpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcHJvamVjdHMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHByb2plY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgbG9hZEZpbGUsXHJcbiAgc2F2ZUZpbGUsXHJcbiAgbG9hZEZpbGVzLFxyXG4gIGxvYWRSZWxlYXNlLFxyXG4gIGxvYWRQcm9qZWN0LFxyXG4gIGxvYWRSZWxlYXNlcyxcclxuICBsb2FkUHJvamVjdHNcclxufTtcclxuXHJcbmZ1bmN0aW9uIGxvYWRFbnRyaWVzKHRvcG1vc3REaXJlY3RvcnlOYW1lLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGxvYWRPbmx5UmVjb2duaXNlZEZpbGVzKSB7XHJcbiAgY29uc3QgZW50cmllcyA9IEVudHJpZXMuZnJvbU5vdGhpbmcoKSxcclxuICAgICAgICByZWxhdGl2ZURpcmVjdG9yeVBhdGggPSB0b3Btb3N0RGlyZWN0b3J5TmFtZTsgIC8vL1xyXG5cclxuICBlbnRyaWVzRnJvbVJlbGF0aXZlRGlyZWN0b3J5UGF0aChlbnRyaWVzLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCwgbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXMpO1xyXG5cclxuICByZXR1cm4gZW50cmllcztcclxufVxyXG5cclxuZnVuY3Rpb24gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBhYnNvbHV0ZVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgcGF0aCksXHJcbiAgICAgICAgZW50cnlEaXJlY3RvcnkgPSBpc0VudHJ5RGlyZWN0b3J5KGFic29sdXRlUGF0aCksXHJcbiAgICAgICAgZGlyZWN0b3J5ID0gZW50cnlEaXJlY3RvcnkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgRGlyZWN0b3J5LmZyb21QYXRoKHBhdGgpIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgbnVsbDtcclxuXHJcbiAgcmV0dXJuIGRpcmVjdG9yeTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCBmaWxlID0gbnVsbDtcclxuXHJcbiAgY29uc3QgYWJzb2x1dGVQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHBhdGgpLFxyXG4gICAgICAgIGVudHJ5RmlsZSA9IGlzRW50cnlGaWxlKGFic29sdXRlUGF0aCk7XHJcblxyXG4gIGlmIChlbnRyeUZpbGUpIHtcclxuICAgIGNvbnN0IHJlbGVhc2VkID0gZmFsc2U7XHJcblxyXG4gICAgbGV0IGNvbnRlbnQgPSByZWFkRmlsZShhYnNvbHV0ZVBhdGgpO1xyXG5cclxuICAgIGNvbnRlbnQgPSBjb252ZXJ0Q29udGVudFRhYnNUb1doaXRlc3BhY2UoY29udGVudCk7ICAvLy9cclxuXHJcbiAgICBmaWxlID0gRmlsZS5mcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZChwYXRoLCBjb250ZW50LCByZWxlYXNlZCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZUZyb21SZWxlYXNlKHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGNvbnN0IHRvcG1vc3REaXJlY3RvcnlOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWVGcm9tUGF0aChwYXRoKSxcclxuICAgICAgICB0b3Btb3N0RmlsZU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZSwgLy8vXHJcbiAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSxcclxuICAgICAgICBmaWxlID0gcmVsZWFzZS5nZXRGaWxlKHBhdGgpO1xyXG5cclxuICByZXR1cm4gZmlsZTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsZXNGcm9tUHJvamVjdChwYXRocywgcHJvamVjdHNEaXJlY3RvcnlQYXRoKSB7XHJcbiAgY29uc3QgZmlsZXMgPSBGaWxlcy5mcm9tTm90aGluZygpO1xyXG5cclxuICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICBjb25zdCBmaWxlID0gZmlsZUZyb21Qcm9qZWN0KHBhdGgsIHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gICAgZmlsZXMuYWRkRmlsZShmaWxlKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGZpbGVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWxlc0Zyb21SZWxlYXNlKHBhdGhzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBjb25zdCBmaWxlcyA9IEZpbGVzLmZyb21Ob3RoaW5nKCksXHJcbiAgICAgICAgcGF0aHNMZW5ndGggPSBwYXRocy5sZW5ndGg7XHJcblxyXG4gIGlmIChwYXRoc0xlbmd0aCA+IDApIHtcclxuICAgIGNvbnN0IGZpcnN0UGF0aCA9IGZpcnN0KHBhdGhzKSxcclxuICAgICAgICAgIHBhdGggPSBmaXJzdFBhdGgsIC8vL1xyXG4gICAgICAgICAgdG9wbW9zdERpcmVjdG9yeU5hbWUgPSB0b3Btb3N0RGlyZWN0b3J5TmFtZUZyb21QYXRoKHBhdGgpLFxyXG4gICAgICAgICAgdG9wbW9zdEZpbGVOYW1lID0gdG9wbW9zdERpcmVjdG9yeU5hbWUsIC8vL1xyXG4gICAgICAgICAgcmVsZWFzZSA9IGxvYWRSZWxlYXNlKHRvcG1vc3RGaWxlTmFtZSwgcHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgICBwYXRocy5mb3JFYWNoKChwYXRoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSByZWxlYXNlLmdldEZpbGUocGF0aCk7XHJcblxyXG4gICAgICBmaWxlcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmlsZXM7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGVudHJpZXNGcm9tUmVsYXRpdmVEaXJlY3RvcnlQYXRoKGVudHJpZXMsIHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcykge1xyXG4gIGNvbnN0IGFic29sdXRlRGlyZWN0b3J5UGF0aCA9IGNvbmNhdGVuYXRlUGF0aHMocHJvamVjdHNEaXJlY3RvcnlQYXRoLCByZWxhdGl2ZURpcmVjdG9yeVBhdGgpLFxyXG4gICAgICAgIHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KGFic29sdXRlRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHN1YkVudHJ5TmFtZXMuZm9yRWFjaCgoc3ViRW50cnlOYW1lKSA9PiB7XHJcbiAgICBjb25zdCBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpLFxyXG4gICAgICAgICAgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMgPSAhbG9hZE9ubHlSZWNvZ25pc2VkRmlsZXM7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHJlbGF0aXZlRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgICAgZGlyZWN0b3J5ID0gbG9hZERpcmVjdG9yeShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgaWYgKGRpcmVjdG9yeSAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IGRpcmVjdG9yeVBhdGggPSBwYXRoOyAvLy9cclxuXHJcbiAgICAgICAgaWYgKGxvYWRVbnJlY29nbmlzZWRGaWxlc0FuZERpcmVjdG9yaWVzKSB7XHJcbiAgICAgICAgICBlbnRyaWVzLmFkZERpcmVjdG9yeShkaXJlY3RvcnkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgoZW50cmllcywgZGlyZWN0b3J5UGF0aCwgcHJvamVjdHNEaXJlY3RvcnlQYXRoLCBsb2FkT25seVJlY29nbmlzZWRGaWxlcyk7IC8vL1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGZpbGUgPSBsb2FkRmlsZShwYXRoLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xyXG5cclxuICAgICAgICBpZiAoZmlsZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcclxuICAgICAgICAgICAgICAgIGZpbGVQYXRoUmVjb2duaXNlZEZpbGVQYXRoID0gaXNGaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aChmaWxlUGF0aCksXHJcbiAgICAgICAgICAgICAgICBmaWxlUmVjb2duaXNlZEZpbGUgPSBmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aDsgIC8vL1xyXG5cclxuICAgICAgICAgIGlmIChmaWxlUmVjb2duaXNlZEZpbGUgfHwgbG9hZFVucmVjb2duaXNlZEZpbGVzQW5kRGlyZWN0b3JpZXMpIHtcclxuICAgICAgICAgICAgZW50cmllcy5hZGRGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aChwcm9qZWN0c0RpcmVjdG9yeVBhdGgpIHtcclxuICBsZXQgdG9wbW9zdEZpbGVOYW1lcztcclxuXHJcbiAgY29uc3Qgc3ViRW50cnlOYW1lcyA9IHJlYWREaXJlY3RvcnkocHJvamVjdHNEaXJlY3RvcnlQYXRoKTtcclxuXHJcbiAgdG9wbW9zdEZpbGVOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RmlsZU5hbWVzLCBzdWJFbnRyeU5hbWUpID0+IHtcclxuICAgIGNvbnN0IGFic29sdXRlU3ViRW50cnlQYXRoID0gY29uY2F0ZW5hdGVQYXRocyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIHN1YkVudHJ5TmFtZSksXHJcbiAgICAgICAgICBzdWJFbnRyeU5hbWVIaWRkZW5OYW1lID0gaXNOYW1lSGlkZGVuTmFtZShzdWJFbnRyeU5hbWUpO1xyXG5cclxuICAgIGlmICghc3ViRW50cnlOYW1lSGlkZGVuTmFtZSkge1xyXG4gICAgICBjb25zdCBzdWJFbnRyeUZpbGUgPSBpc0VudHJ5RmlsZShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlGaWxlKSB7XHJcbiAgICAgICAgY29uc3QgdG9wbW9zdEZpbGVOYW1lID0gc3ViRW50cnlOYW1lOyAgLy8vXHJcblxyXG4gICAgICAgIHRvcG1vc3RGaWxlTmFtZXMucHVzaCh0b3Btb3N0RmlsZU5hbWUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdG9wbW9zdEZpbGVOYW1lcztcclxuICB9LCBbXSk7XHJcblxyXG4gIHJldHVybiB0b3Btb3N0RmlsZU5hbWVzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0b3Btb3N0RGlyZWN0b3J5TmFtZXNGcm9tUHJvamVjdHNEaXJlY3RvcnlQYXRoKHByb2plY3RzRGlyZWN0b3J5UGF0aCkge1xyXG4gIGxldCB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcblxyXG4gIGNvbnN0IHN1YkVudHJ5TmFtZXMgPSByZWFkRGlyZWN0b3J5KHByb2plY3RzRGlyZWN0b3J5UGF0aCk7XHJcblxyXG4gIHRvcG1vc3REaXJlY3RvcnlOYW1lcyA9IHN1YkVudHJ5TmFtZXMucmVkdWNlKCh0b3Btb3N0RGlyZWN0b3J5TmFtZXMsIHN1YkVudHJ5TmFtZSkgPT4ge1xyXG4gICAgY29uc3QgYWJzb2x1dGVTdWJFbnRyeVBhdGggPSBjb25jYXRlbmF0ZVBhdGhzKHByb2plY3RzRGlyZWN0b3J5UGF0aCwgc3ViRW50cnlOYW1lKSxcclxuICAgICAgICAgIHN1YkVudHJ5TmFtZUhpZGRlbk5hbWUgPSBpc05hbWVIaWRkZW5OYW1lKHN1YkVudHJ5TmFtZSk7XHJcblxyXG4gICAgaWYgKCFzdWJFbnRyeU5hbWVIaWRkZW5OYW1lKSB7XHJcbiAgICAgIGNvbnN0IHN1YkVudHJ5RGlyZWN0b3J5ID0gaXNFbnRyeURpcmVjdG9yeShhYnNvbHV0ZVN1YkVudHJ5UGF0aCk7XHJcblxyXG4gICAgICBpZiAoc3ViRW50cnlEaXJlY3RvcnkpIHtcclxuICAgICAgICBjb25zdCB0b3Btb3N0RGlyZWN0b3J5TmFtZSA9IHN1YkVudHJ5TmFtZTsgIC8vL1xyXG5cclxuICAgICAgICB0b3Btb3N0RGlyZWN0b3J5TmFtZXMucHVzaCh0b3Btb3N0RGlyZWN0b3J5TmFtZSlcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0b3Btb3N0RGlyZWN0b3J5TmFtZXM7XHJcbiAgfSwgW10pO1xyXG5cclxuICByZXR1cm4gdG9wbW9zdERpcmVjdG9yeU5hbWVzO1xyXG59XHJcbiJdLCJuYW1lcyI6WyJsb2FkRmlsZSIsInNhdmVGaWxlIiwibG9hZEZpbGVzIiwibG9hZFJlbGVhc2UiLCJsb2FkUHJvamVjdCIsImxvYWRSZWxlYXNlcyIsImxvYWRQcm9qZWN0cyIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJjb25jYXRlbmF0ZVBhdGhzIiwicGF0aFV0aWxpdGllcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lRnJvbVBhdGgiLCJyZWFkRmlsZSIsImZpbGVTeXN0ZW1VdGlsaXRpZXMiLCJ3cml0ZUZpbGUiLCJpc0VudHJ5RmlsZSIsInJlYWREaXJlY3RvcnkiLCJpc0VudHJ5RGlyZWN0b3J5IiwiY2hlY2tFbnRyeUV4aXN0cyIsImNoZWNrRmlsZUV4aXN0cyIsInBhdGgiLCJwcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJmaWxlIiwidG9wbW9zdERpcmVjdG9yeU5hbWUiLCJhYnNvbHV0ZVBhdGgiLCJlbnRyeURpcmVjdG9yeSIsImZpbGVGcm9tUHJvamVjdCIsImZpbGVGcm9tUmVsZWFzZSIsImVycm9yIiwic3VjY2VzcyIsImZpbGVQYXRoIiwiZ2V0UGF0aCIsImFic29sdXRlRmlsZVBhdGgiLCJmaWxlRXhpc3RzIiwiY29udGVudCIsImdldENvbnRlbnQiLCJwYXRocyIsImZpbGVzIiwicGF0aHNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdFBhdGgiLCJmaWxlc0Zyb21Qcm9qZWN0IiwiZmlsZXNGcm9tUmVsZWFzZSIsInJlbGVhc2VOYW1lIiwicmVsZWFzZSIsIm5hbWUiLCJ0b3Btb3N0RmlsZU5hbWUiLCJlbnRyeUZpbGUiLCJqc29uIiwiZW50cmllcyIsIkpTT04iLCJwYXJzZSIsIkVudHJpZXMiLCJmcm9tSlNPTiIsIlJlbGVhc2UiLCJmcm9tTmFtZUFuZEVudHJpZXMiLCJwcm9qZWN0TmFtZSIsImxvYWRPbmx5UmVjb2duaXNlZEZpbGVzIiwicHJvamVjdCIsImxvYWRFbnRyaWVzIiwiUHJvamVjdCIsInJlbGVhc2VzIiwiUmVsZWFzZXMiLCJmcm9tTm90aGluZyIsInRvcG1vc3RGaWxlTmFtZXMiLCJ0b3Btb3N0RmlsZU5hbWVzRnJvbVByb2plY3RzRGlyZWN0b3J5UGF0aCIsInJlbGVhc2VOYW1lcyIsImZvckVhY2giLCJhZGRSZWxlYXNlIiwicHJvamVjdHMiLCJQcm9qZWN0cyIsInRvcG1vc3REaXJlY3RvcnlOYW1lcyIsInRvcG1vc3REaXJlY3RvcnlOYW1lc0Zyb21Qcm9qZWN0c0RpcmVjdG9yeVBhdGgiLCJwcm9qZWN0TmFtZXMiLCJhZGRQcm9qZWN0IiwicmVsYXRpdmVEaXJlY3RvcnlQYXRoIiwiZW50cmllc0Zyb21SZWxhdGl2ZURpcmVjdG9yeVBhdGgiLCJsb2FkRGlyZWN0b3J5IiwiZGlyZWN0b3J5IiwiRGlyZWN0b3J5IiwiZnJvbVBhdGgiLCJyZWxlYXNlZCIsImNvbnZlcnRDb250ZW50VGFic1RvV2hpdGVzcGFjZSIsIkZpbGUiLCJmcm9tUGF0aENvbnRlbnRBbmRSZWxlYXNlZCIsImdldEZpbGUiLCJGaWxlcyIsImFkZEZpbGUiLCJhYnNvbHV0ZURpcmVjdG9yeVBhdGgiLCJzdWJFbnRyeU5hbWVzIiwic3ViRW50cnlOYW1lIiwic3ViRW50cnlOYW1lSGlkZGVuTmFtZSIsImlzTmFtZUhpZGRlbk5hbWUiLCJsb2FkVW5yZWNvZ25pc2VkRmlsZXNBbmREaXJlY3RvcmllcyIsImRpcmVjdG9yeVBhdGgiLCJhZGREaXJlY3RvcnkiLCJmaWxlUGF0aFJlY29nbmlzZWRGaWxlUGF0aCIsImlzRmlsZVBhdGhSZWNvZ25pc2VkRmlsZVBhdGgiLCJmaWxlUmVjb2duaXNlZEZpbGUiLCJyZWR1Y2UiLCJhYnNvbHV0ZVN1YkVudHJ5UGF0aCIsInN1YkVudHJ5RmlsZSIsInB1c2giLCJzdWJFbnRyeURpcmVjdG9yeSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBcUJnQkEsUUFBUTtlQUFSQTs7SUFxQkFDLFFBQVE7ZUFBUkE7O0lBdUJBQyxTQUFTO2VBQVRBOztJQTJCQUMsV0FBVztlQUFYQTs7SUFnQ0FDLFdBQVc7ZUFBWEE7O0lBZ0JBQyxZQUFZO2VBQVpBOztJQXVCQUMsWUFBWTtlQUFaQTs7SUF1QmhCLE9BUUU7ZUFSRjs7O3lCQXhMbUU7MkRBRWxEOzREQUNDOzhEQUNFOzhEQUNBOzhEQUNBOytEQUNDOytEQUNBO2dFQUNDO29CQUVXO3dCQUNZO3VCQUNFOzs7Ozs7QUFFL0MsSUFBTSxBQUFFQyxRQUFVQyx5QkFBYyxDQUF4QkQsT0FDQUUsbUJBQW1EQyx3QkFBYSxDQUFoRUQsa0JBQWtCRSwrQkFBaUNELHdCQUFhLENBQTlDQyw4QkFDbEJDLFdBQXlHQyw4QkFBbUIsQ0FBNUhELFVBQVVFLFlBQStGRCw4QkFBbUIsQ0FBbEhDLFdBQVdDLGNBQW9GRiw4QkFBbUIsQ0FBdkdFLGFBQWFDLGdCQUF1RUgsOEJBQW1CLENBQTFGRyxlQUFlQyxtQkFBd0RKLDhCQUFtQixDQUEzRUksa0JBQWtCQyxBQUFrQkMsa0JBQW9CTiw4QkFBbUIsQ0FBekRLO0FBRXBFLFNBQVNsQixTQUFTb0IsSUFBSSxFQUFFQyxxQkFBcUI7SUFDbEQsSUFBSUMsT0FBTztJQUVYLElBQUk7UUFDRixJQUFNQyx1QkFBdUJaLDZCQUE2QlM7UUFFMUQsSUFBSUcseUJBQXlCLE1BQU07WUFDakMsSUFBTUMsZUFBZWYsaUJBQWlCWSx1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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-file-system",
3
3
  "author": "James Smith",
4
- "version": "5.0.233",
4
+ "version": "5.0.235",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-file-system",
7
7
  "description": "Occam's file system functionality.",
package/src/main.js CHANGED
@@ -23,7 +23,6 @@ export { default as fileSystemUtilities } from "./utilities/fileSystem";
23
23
  export { default as loadFile } from "./loadFile";
24
24
  export { default as saveFile } from "./saveFile";
25
25
  export { default as loadFiles } from "./loadFiles";
26
- export { default as saveFiles } from "./saveFiles";
27
26
  export { default as loadProject } from "./loadProject";
28
27
  export { default as loadRelease } from "./loadRelease";
29
28
  export { default as loadProjects } from "./loadProjects";
@@ -16,7 +16,7 @@ import { isFilePathRecognisedFilePath } from "../utilities/filePath";
16
16
  import { convertContentTabsToWhitespace } from "../utilities/content";
17
17
 
18
18
  const { first } = arrayUtilities,
19
- { concatenatePaths, topmostDirectoryNameFromPath, topmostDirectoryPathFromPath } = pathUtilities,
19
+ { concatenatePaths, topmostDirectoryNameFromPath } = pathUtilities,
20
20
  { readFile, writeFile, isEntryFile, readDirectory, isEntryDirectory, checkEntryExists: checkFileExists } = fileSystemUtilities;
21
21
 
22
22
  export function loadFile(path, projectsDirectoryPath) {
@@ -90,16 +90,6 @@ export function loadFiles(paths, projectsDirectoryPath) {
90
90
  return files;
91
91
  }
92
92
 
93
- export function saveFiles(files, projectsDirectoryPath) {
94
- const successes = files.mapFile((file) => {
95
- const success = saveFile(file, projectsDirectoryPath);
96
-
97
- return success;
98
- });
99
-
100
- return successes;
101
- }
102
-
103
93
  export function loadRelease(releaseName, projectsDirectoryPath) {
104
94
  let release = null;
105
95
 
@@ -198,7 +188,6 @@ export default {
198
188
  loadFile,
199
189
  saveFile,
200
190
  loadFiles,
201
- saveFiles,
202
191
  loadRelease,
203
192
  loadProject,
204
193
  loadReleases,
package/lib/saveFiles.js DELETED
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return saveFiles;
9
- }
10
- });
11
- var _files = /*#__PURE__*/ _interop_require_default(require("./files"));
12
- var _fileSystem = require("./utilities/fileSystem");
13
- function _interop_require_default(obj) {
14
- return obj && obj.__esModule ? obj : {
15
- default: obj
16
- };
17
- }
18
- function saveFiles(projectsDirectoryPath, json, callback) {
19
- var files = _files.default.fromJSON(json), successes = (0, _fileSystem.saveFiles)(files, projectsDirectoryPath);
20
- json = successes; ///
21
- callback(json);
22
- }
23
-
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zYXZlRmlsZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBGaWxlcyBmcm9tIFwiLi9maWxlc1wiO1xuXG5pbXBvcnQgeyBzYXZlRmlsZXMgYXMgc2F2ZUZpbGVzRXggfSBmcm9tIFwiLi91dGlsaXRpZXMvZmlsZVN5c3RlbVwiXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNhdmVGaWxlcyhwcm9qZWN0c0RpcmVjdG9yeVBhdGgsIGpzb24sIGNhbGxiYWNrKSB7XG4gIGNvbnN0IGZpbGVzID0gRmlsZXMuZnJvbUpTT04oanNvbiksXG4gICAgICAgIHN1Y2Nlc3NlcyA9IHNhdmVGaWxlc0V4KGZpbGVzLCBwcm9qZWN0c0RpcmVjdG9yeVBhdGgpO1xuXG4gIGpzb24gPSBzdWNjZXNzZXM7IC8vL1xuXG4gIGNhbGxiYWNrKGpzb24pO1xufVxuIl0sIm5hbWVzIjpbInNhdmVGaWxlcyIsInByb2plY3RzRGlyZWN0b3J5UGF0aCIsImpzb24iLCJjYWxsYmFjayIsImZpbGVzIiwiRmlsZXMiLCJmcm9tSlNPTiIsInN1Y2Nlc3NlcyIsInNhdmVGaWxlc0V4Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7OzREQUpOOzBCQUV1Qjs7Ozs7O0FBRTFCLFNBQVNBLFVBQVVDLHFCQUFxQixFQUFFQyxJQUFJLEVBQUVDLFFBQVE7SUFDckUsSUFBTUMsUUFBUUMsY0FBSyxDQUFDQyxRQUFRLENBQUNKLE9BQ3ZCSyxZQUFZQyxJQUFBQSxxQkFBVyxFQUFDSixPQUFPSDtJQUVyQ0MsT0FBT0ssV0FBVyxHQUFHO0lBRXJCSixTQUFTRDtBQUNYIn0=
package/src/saveFiles.js DELETED
@@ -1,14 +0,0 @@
1
- "use strict";
2
-
3
- import Files from "./files";
4
-
5
- import { saveFiles as saveFilesEx } from "./utilities/fileSystem"
6
-
7
- export default function saveFiles(projectsDirectoryPath, json, callback) {
8
- const files = Files.fromJSON(json),
9
- successes = saveFilesEx(files, projectsDirectoryPath);
10
-
11
- json = successes; ///
12
-
13
- callback(json);
14
- }