diff --git a/dist/index.js b/dist/index.js index ad19347..8e34792 100644 --- a/dist/index.js +++ b/dist/index.js @@ -94,6 +94,18 @@ var Shopware = function () { method: 'GET' }, 'data'); } + }, { + key: 'getArticleByOrdernumber', + value: function getArticleByOrdernumber(ordernumber) { + if (!ordernumber) { + return handleError(ERROR.MISSING_ID); + } + + return this.handleRequest({ + url: 'articles/' + ordernumber + '?useNumberAsId=true', + method: 'GET' + }); + } }, { key: 'deleteArticle', value: function deleteArticle(id) { @@ -401,6 +413,18 @@ var Shopware = function () { method: 'GET' }); } + }, { + key: 'getOrderByOrdernumber', + value: function getOrderByOrdernumber(ordernumber) { + if (!ordernumber) { + return handleError(ERROR.MISSING_ID); + } + + return this.handleRequest({ + url: 'orders/' + ordernumber + '?useNumberAsId=true', + method: 'GET' + }); + } }, { key: 'updateOrder', value: function updateOrder(id, body) { @@ -974,4 +998,4 @@ var Shopware = function () { }(); module.exports = Shopware; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbInJlcXVlc3QiLCJyZXF1aXJlIiwiRVJST1IiLCJNSVNTSU5HX0lEIiwiY29kZSIsIm1lc3NhZ2UiLCJNSVNTSU5HX0JPRFkiLCJoYW5kbGVFcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXJyIiwiU2hvcHdhcmUiLCJvcHRpb25zIiwiY29uc29sZSIsImVycm9yIiwiaG9zdCIsInVzZXIiLCJhcGlLZXkiLCJkZWZhdWx0cyIsImJhc2VVcmwiLCJ0aW1lb3V0IiwianNvbiIsImhlYWRlcnMiLCJhdXRoIiwicGFzcyIsInNlbmRJbW1lZGlhdGVseSIsImNvbmZpZyIsInNlbGVjdG9yIiwidGhlbiIsInJlc3BvbnNlRGF0YSIsInJlcyIsImNhdGNoIiwiaGFuZGxlUmVxdWVzdCIsInVybCIsIm1ldGhvZCIsInBhcmFtcyIsInFzIiwiaWQiLCJpZHMiLCJib2R5IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBTUEsVUFBVUMsUUFBUSx3QkFBUixDQUFoQjs7QUFFQSxJQUFNQyxRQUFRO0FBQ1pDLGNBQVk7QUFDVkMsVUFBTSxZQURJO0FBRVZDLGFBQVM7QUFGQyxHQURBO0FBS1pDLGdCQUFjO0FBQ1pGLFVBQU0sY0FETTtBQUVaQyxhQUFTO0FBRkc7QUFMRixDQUFkOztBQVdBLElBQU1FLGNBQWMsU0FBZEEsV0FBYztBQUFBLFNBQU8sSUFBSUMsT0FBSixDQUFZLFVBQUNDLE9BQUQsRUFBVUMsTUFBVjtBQUFBLFdBQXFCQSxPQUFPQyxHQUFQLENBQXJCO0FBQUEsR0FBWixDQUFQO0FBQUEsQ0FBcEI7O0lBRU1DLFE7QUFDSixvQkFBWUMsT0FBWixFQUFxQjtBQUFBOztBQUNuQixRQUFJLENBQUNBLE9BQUwsRUFBYztBQUNaQyxjQUFRQyxLQUFSLENBQWMsaUNBQWQ7QUFDRDs7QUFFRCxTQUFLQyxJQUFMLEdBQVlILFFBQVFHLElBQXBCO0FBQ0EsU0FBS0MsSUFBTCxHQUFZSixRQUFRSSxJQUFwQjtBQUNBLFNBQUtDLE1BQUwsR0FBY0wsUUFBUUssTUFBdEI7O0FBRUEsU0FBS2xCLE9BQUwsR0FBZUEsUUFBUW1CLFFBQVIsQ0FBaUI7QUFDOUJDLGVBQVMsS0FBS0osSUFBTCxHQUFZLE9BRFM7QUFFOUJLLGVBQVMsS0FGcUI7QUFHOUJDLFlBQU0sSUFId0I7QUFJOUJDLGVBQVM7QUFDUCxzQkFBYyxxQkFEUDtBQUVQLHdCQUFnQjtBQUZULE9BSnFCO0FBUTlCQyxZQUFNO0FBQ0pQLGNBQU0sS0FBS0EsSUFEUDtBQUVKUSxjQUFNLEtBQUtQLE1BRlA7QUFHSlEseUJBQWlCO0FBSGI7QUFSd0IsS0FBakIsQ0FBZjtBQWNEOzs7O2tDQUVhQyxNLEVBQVFDLFEsRUFBVTtBQUFBOztBQUM5QixhQUFPLElBQUlwQixPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWLEVBQXFCO0FBQ3RDLGNBQUtWLE9BQUwsQ0FBYTJCLE1BQWIsRUFDR0UsSUFESCxDQUNRLGVBQU87QUFDWCxjQUFNQyxlQUFlRixXQUFXRyxJQUFJSCxRQUFKLENBQVgsR0FBMkJHLEdBQWhEO0FBQ0F0QixrQkFBUXFCLFlBQVI7QUFDRCxTQUpILEVBS0dFLEtBTEgsQ0FLUyxlQUFPO0FBQ1p0QixpQkFBT0MsSUFBSU4sT0FBWDtBQUNELFNBUEg7QUFRRCxPQVRNLENBQVA7QUFVRDs7OzhCQUVTO0FBQ1IsYUFBTyxLQUFLNEIsYUFBTCxDQUFtQjtBQUN4QkMsYUFBSyxVQURtQjtBQUV4QkMsZ0JBQVE7QUFGZ0IsT0FBbkIsRUFHSixNQUhJLENBQVA7QUFJRDs7O2dDQUVXQyxNLEVBQVE7QUFDbEIsYUFBTyxLQUFLSCxhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFdBRG1CO0FBRXhCQyxnQkFBUSxLQUZnQjtBQUd4QkUsWUFBSUQ7QUFIb0IsT0FBbkIsRUFJSixNQUpJLENBQVA7QUFLRDs7OytCQUVVRSxFLEVBQUk7QUFDYixVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsMkJBQWlCSSxFQURPO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixFQUdKLE1BSEksQ0FBUDtBQUlEOzs7a0NBRWFHLEUsRUFBSTtBQUNoQixVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsMkJBQWlCSSxFQURPO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixDQUFQO0FBSUQ7OzttQ0FFY0ksRyxFQUFLO0FBQ2xCLFVBQUksQ0FBQ0EsR0FBTCxFQUFVO0FBQ1IsZUFBT2hDLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFdBRG1CO0FBRXhCQyxnQkFBUSxRQUZnQjtBQUd4Qkk7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7a0NBRWFDLEksRUFBTTtBQUNsQixVQUFJLENBQUNBLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMsYUFBSyxXQURtQjtBQUV4QkMsZ0JBQVEsTUFGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O2tDQUVhRixFLEVBQUlFLEksRUFBTTtBQUN0QixVQUFJLENBQUNGLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDcUMsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQywyQkFBaUJJLEVBRE87QUFFeEJILGdCQUFRLEtBRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OzttQ0FFY0EsSSxFQUFNO0FBQ25CLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFdBRG1CO0FBRXhCQyxnQkFBUSxLQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7a0NBRWFKLE0sRUFBUTtBQUNwQixhQUFPLEtBQUtILGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssYUFEbUI7QUFFeEJDLGdCQUFRLEtBRmdCO0FBR3hCRSxZQUFJRDtBQUhvQixPQUFuQixFQUlKLE1BSkksQ0FBUDtBQUtEOzs7Z0NBRVdFLEUsRUFBSTtBQUNkLFVBQUksQ0FBQ0EsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQyw2QkFBbUJJLEVBREs7QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLEVBR0osTUFISSxDQUFQO0FBSUQ7OzttQ0FFY0ssSSxFQUFNO0FBQ25CLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLGFBRG1CO0FBRXhCQyxnQkFBUSxNQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7bUNBRWNGLEUsRUFBSUUsSSxFQUFNO0FBQ3ZCLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUNnQyxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLDZCQUFtQkksRUFESztBQUV4QkgsZ0JBQVEsS0FGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O21DQUVjRixFLEVBQUk7QUFDakIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLDZCQUFtQkksRUFESztBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsQ0FBUDtBQUlEOzs7Z0NBRVdDLE0sRUFBUTtBQUNsQixhQUFPLEtBQUtILGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssV0FEbUI7QUFFeEJDLGdCQUFRLEtBRmdCO0FBR3hCRSxZQUFJRDtBQUhvQixPQUFuQixFQUlKLE1BSkksQ0FBUDtBQUtEOzs7K0JBRVVFLEUsRUFBSTtBQUNiLFVBQUksQ0FBQ0EsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQywyQkFBaUJJLEVBRE87QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLEVBR0osTUFISSxDQUFQO0FBSUQ7OztrQ0FFYUcsRSxFQUFJRSxJLEVBQU07QUFDdEIsVUFBSSxDQUFDRixFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELFVBQUksQ0FBQ3FDLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMsMkJBQWlCSSxFQURPO0FBRXhCSCxnQkFBUSxLQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7a0NBRWFGLEUsRUFBSUUsSSxFQUFNO0FBQ3RCLFVBQUksQ0FBQ0YsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUNxQyxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLDJCQUFpQkksRUFETztBQUV4QkgsZ0JBQVEsTUFGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O2tDQUVhRixFLEVBQUk7QUFDaEIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLDJCQUFpQkksRUFETztBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsQ0FBUDtBQUlEOzs7bUNBRWNJLEcsRUFBSztBQUNsQixVQUFJLENBQUNBLEdBQUwsRUFBVTtBQUNSLGVBQU9oQyxZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsd0JBRHdCO0FBRXhCQyxnQkFBUSxRQUZnQjtBQUd4Qkk7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7MENBRXFCRCxFLEVBQUk7QUFDeEIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLHdDQUE4QkksRUFETjtBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsQ0FBUDtBQUlEOzs7OEJBRVNDLE0sRUFBUTtBQUNoQixhQUFPLEtBQUtILGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssUUFEbUI7QUFFeEJDLGdCQUFRLEtBRmdCO0FBR3hCRSxZQUFJRDtBQUhvQixPQUFuQixFQUlKLE1BSkksQ0FBUDtBQUtEOzs7NkJBRVFFLEUsRUFBSTtBQUNYLFVBQUksQ0FBQ0EsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQyx3QkFBY0ksRUFEVTtBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsRUFHSixNQUhJLENBQVA7QUFJRDs7O2dDQUVXSyxJLEVBQU07QUFDaEIsVUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssUUFEbUI7QUFFeEJDLGdCQUFRLE1BRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OztnQ0FFV0YsRSxFQUFJRSxJLEVBQU07QUFDcEIsVUFBSSxDQUFDRixFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELFVBQUksQ0FBQ3FDLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMsd0JBQWNJLEVBRFU7QUFFeEJILGdCQUFRLEtBRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OztnQ0FFV0YsRSxFQUFJO0FBQ2QsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLHdCQUFjSSxFQURVO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixDQUFQO0FBSUQ7Ozs4QkFFU0MsTSxFQUFRO0FBQ2hCLGFBQU8sS0FBS0gsYUFBTCxDQUFtQjtBQUN4QkMsYUFBSyxTQURtQjtBQUV4QkMsZ0JBQVEsS0FGZ0I7QUFHeEJFLFlBQUlEO0FBSG9CLE9BQW5CLEVBSUosTUFKSSxDQUFQO0FBS0Q7Ozs2QkFFUUUsRSxFQUFJO0FBQ1gsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLHlCQUFlSSxFQURTO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixDQUFQO0FBSUQ7OztnQ0FFV0csRSxFQUFJRSxJLEVBQU07QUFDcEIsVUFBSSxDQUFDRixFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELFVBQUksQ0FBQ3FDLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMseUJBQWVJLEVBRFM7QUFFeEJILGdCQUFRLEtBRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OztnQ0FFV0EsSSxFQUFNO0FBQ2hCLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxzQkFEd0I7QUFFeEJDLGdCQUFRLE1BRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OztpQ0FFWUosTSxFQUFRO0FBQ25CLGFBQU8sS0FBS0gsYUFBTCxDQUFtQjtBQUN4QkMsYUFBSyxZQURtQjtBQUV4QkMsZ0JBQVEsS0FGZ0I7QUFHeEJFLFlBQUlEO0FBSG9CLE9BQW5CLEVBSUosTUFKSSxDQUFQO0FBS0Q7OztrQ0FFYUksSSxFQUFNO0FBQ2xCLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFlBRG1CO0FBRXhCQyxnQkFBUSxNQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7a0NBRWFGLEUsRUFBSUUsSSxFQUFNO0FBQ3RCLFVBQUksQ0FBQ0YsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUNxQyxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLDRCQUFrQkksRUFETTtBQUV4QkgsZ0JBQVEsS0FGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O2tDQUVhRixFLEVBQUk7QUFDaEIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLDRCQUFrQkksRUFETTtBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsRUFHSixNQUhJLENBQVA7QUFJRDs7O2lDQUVZQyxNLEVBQVE7QUFDbkIsYUFBTyxLQUFLSCxhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFlBRG1CO0FBRXhCQyxnQkFBUSxLQUZnQjtBQUd4QkUsWUFBSUQ7QUFIb0IsT0FBbkIsRUFJSixNQUpJLENBQVA7QUFLRDs7O2dDQUVXRSxFLEVBQUk7QUFDZCxVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsNEJBQWtCSSxFQURNO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixFQUdKLE1BSEksQ0FBUDtBQUlEOzs7bUNBRWNLLEksRUFBTTtBQUNuQixVQUFJLENBQUNBLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMsYUFBSyxZQURtQjtBQUV4QkMsZ0JBQVEsTUFGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O21DQUVjRixFLEVBQUlFLEksRUFBTTtBQUN2QixVQUFJLENBQUNGLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDcUMsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyw0QkFBa0JJLEVBRE07QUFFeEJILGdCQUFRLEtBRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OzttQ0FFY0YsRSxFQUFJO0FBQ2pCLFVBQUksQ0FBQ0EsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQyw0QkFBa0JJLEVBRE07QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLENBQVA7QUFJRDs7OzhCQUVTQyxNLEVBQVE7QUFDaEIsYUFBTyxLQUFLSCxhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFNBRG1CO0FBRXhCQyxnQkFBUSxLQUZnQjtBQUd4QkUsWUFBSUQ7QUFIb0IsT0FBbkIsRUFJSixNQUpJLENBQVA7QUFLRDs7OzZCQUVRRSxFLEVBQUk7QUFDWCxVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMseUJBQWVJLEVBRFM7QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLEVBR0osTUFISSxDQUFQO0FBSUQ7OztnQ0FFV0csRSxFQUFJO0FBQ2QsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLHlCQUFlSSxFQURTO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixDQUFQO0FBSUQ7OzttQ0FFYztBQUNiLGFBQU8sS0FBS0YsYUFBTCxDQUFtQjtBQUN4QkMsYUFBSyxTQURtQjtBQUV4QkMsZ0JBQVE7QUFGZ0IsT0FBbkIsQ0FBUDtBQUlEOzs7aUNBRVlDLE0sRUFBUTtBQUNuQixhQUFPLEtBQUtILGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssWUFEbUI7QUFFeEJDLGdCQUFRLEtBRmdCO0FBR3hCRSxZQUFJRDtBQUhvQixPQUFuQixFQUlKLE1BSkksQ0FBUDtBQUtEOzs7K0JBRVVFLEUsRUFBSTtBQUNiLFVBQUksQ0FBQ0EsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQyw0QkFBa0JJLEVBRE07QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLEVBR0osTUFISSxDQUFQO0FBSUQ7OztrQ0FFYUssSSxFQUFNO0FBQ2xCLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFlBRG1CO0FBRXhCQyxnQkFBUSxNQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7a0NBRWFGLEUsRUFBSUUsSSxFQUFNO0FBQ3RCLFVBQUksQ0FBQ0YsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUNxQyxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLDRCQUFrQkksRUFETTtBQUV4QkgsZ0JBQVEsS0FGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O2tDQUVhRixFLEVBQUk7QUFDaEIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLDRCQUFrQkksRUFETTtBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsQ0FBUDtBQUlEOzs7c0NBRWlCQyxNLEVBQVE7QUFDeEIsYUFBTyxLQUFLSCxhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLGlCQURtQjtBQUV4QkMsZ0JBQVEsS0FGZ0I7QUFHeEJFLFlBQUlEO0FBSG9CLE9BQW5CLEVBSUosTUFKSSxDQUFQO0FBS0Q7OztxQ0FFZ0JFLEUsRUFBSTtBQUNuQixVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsaUNBQXVCSSxFQURDO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixFQUdKLE1BSEksQ0FBUDtBQUlEOzs7d0NBRW1CSyxJLEVBQU07QUFDeEIsVUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssaUJBRG1CO0FBRXhCQyxnQkFBUSxNQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7d0NBRW1CRixFLEVBQUlFLEksRUFBTTtBQUM1QixVQUFJLENBQUNGLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDcUMsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxpQ0FBdUJJLEVBREM7QUFFeEJILGdCQUFRLEtBRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7Ozt3Q0FFbUJGLEUsRUFBSTtBQUN0QixVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsaUNBQXVCSSxFQURDO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixDQUFQO0FBSUQ7OztxQ0FFZ0JDLE0sRUFBUTtBQUN2QixhQUFPLEtBQUtILGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssZ0JBRG1CO0FBRXhCQyxnQkFBUSxLQUZnQjtBQUd4QkUsWUFBSUQ7QUFIb0IsT0FBbkIsRUFJSixNQUpJLENBQVA7QUFLRDs7O29DQUVlRSxFLEVBQUk7QUFDbEIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLGdDQUFzQkksRUFERTtBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsRUFHSixNQUhJLENBQVA7QUFJRDs7O3VDQUVrQkssSSxFQUFNO0FBQ3ZCLFVBQUksQ0FBQ0EsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLGdCQURtQjtBQUV4QkMsZ0JBQVEsTUFGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O3VDQUVrQkYsRSxFQUFJRSxJLEVBQU07QUFDM0IsVUFBSSxDQUFDRixFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELFVBQUksQ0FBQ3FDLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMsZ0NBQXNCSSxFQURFO0FBRXhCSCxnQkFBUSxLQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7dUNBRWtCRixFLEVBQUk7QUFDckIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLGdDQUFzQkksRUFERTtBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsQ0FBUDtBQUlEOzs7c0NBRWlCQyxNLEVBQVE7QUFDeEIsYUFBTyxLQUFLSCxhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLGlCQURtQjtBQUV4QkMsZ0JBQVEsS0FGZ0I7QUFHeEJFLFlBQUlEO0FBSG9CLE9BQW5CLEVBSUosTUFKSSxDQUFQO0FBS0Q7OztxQ0FFZ0JFLEUsRUFBSTtBQUNuQixVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsaUNBQXVCSSxFQURDO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixFQUdKLE1BSEksQ0FBUDtBQUlEOzs7d0NBRW1CSyxJLEVBQU07QUFDeEIsVUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssaUJBRG1CO0FBRXhCQyxnQkFBUSxNQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7d0NBRW1CRixFLEVBQUlFLEksRUFBTTtBQUM1QixVQUFJLENBQUNGLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsVUFBSSxDQUFDcUMsSUFBTCxFQUFXO0FBQ1QsZUFBT2pDLFlBQVlMLE1BQU1JLFlBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUsyQixhQUFMLENBQW1CO0FBQ3hCQyxpQ0FBdUJJLEVBREM7QUFFeEJILGdCQUFRLEtBRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7Ozt3Q0FFbUJGLEUsRUFBSTtBQUN0QixVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsaUNBQXVCSSxFQURDO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixDQUFQO0FBSUQ7Ozs2QkFFUUMsTSxFQUFRO0FBQ2YsYUFBTyxLQUFLSCxhQUFMLENBQW1CO0FBQ3hCQyxhQUFLLFFBRG1CO0FBRXhCQyxnQkFBUSxLQUZnQjtBQUd4QkUsWUFBSUQ7QUFIb0IsT0FBbkIsRUFJSixNQUpJLENBQVA7QUFLRDs7OzRCQUVPRSxFLEVBQUk7QUFDVixVQUFJLENBQUNBLEVBQUwsRUFBUztBQUNQLGVBQU8vQixZQUFZTCxNQUFNQyxVQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLOEIsYUFBTCxDQUFtQjtBQUN4QkMsd0JBQWNJLEVBRFU7QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLEVBR0osTUFISSxDQUFQO0FBSUQ7OzsrQkFFVUssSSxFQUFNO0FBQ2YsVUFBSSxDQUFDQSxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLGFBQUssUUFEbUI7QUFFeEJDLGdCQUFRLE1BRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OzsrQkFFVUYsRSxFQUFJRSxJLEVBQU07QUFDbkIsVUFBSSxDQUFDRixFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELFVBQUksQ0FBQ3FDLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMsd0JBQWNJLEVBRFU7QUFFeEJILGdCQUFRLEtBRmdCO0FBR3hCSztBQUh3QixPQUFuQixDQUFQO0FBS0Q7OzsrQkFFVUYsRSxFQUFJO0FBQ2IsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLHdCQUFjSSxFQURVO0FBRXhCSCxnQkFBUTtBQUZnQixPQUFuQixDQUFQO0FBSUQ7OztvQ0FFZUMsTSxFQUFRO0FBQ3RCLGFBQU8sS0FBS0gsYUFBTCxDQUFtQjtBQUN4QkMsYUFBSyxlQURtQjtBQUV4QkMsZ0JBQVEsS0FGZ0I7QUFHeEJFLFlBQUlEO0FBSG9CLE9BQW5CLEVBSUosTUFKSSxDQUFQO0FBS0Q7OzttQ0FFY0UsRSxFQUFJO0FBQ2pCLFVBQUksQ0FBQ0EsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQywrQkFBcUJJLEVBREc7QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLEVBR0osTUFISSxDQUFQO0FBSUQ7OztzQ0FFaUJHLEUsRUFBSUUsSSxFQUFNO0FBQzFCLFVBQUksQ0FBQ0YsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUNxQyxJQUFMLEVBQVc7QUFDVCxlQUFPakMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLCtCQUFxQkksRUFERztBQUV4QkgsZ0JBQVEsTUFGZ0I7QUFHeEJLO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O3NDQUVpQkYsRSxFQUFJRSxJLEVBQU07QUFDMUIsVUFBSSxDQUFDRixFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELFVBQUksQ0FBQ3FDLElBQUwsRUFBVztBQUNULGVBQU9qQyxZQUFZTCxNQUFNSSxZQUFsQixDQUFQO0FBQ0Q7O0FBRUQsYUFBTyxLQUFLMkIsYUFBTCxDQUFtQjtBQUN4QkMsK0JBQXFCSSxFQURHO0FBRXhCSCxnQkFBUSxLQUZnQjtBQUd4Qks7QUFId0IsT0FBbkIsQ0FBUDtBQUtEOzs7c0NBRWlCRixFLEVBQUk7QUFDcEIsVUFBSSxDQUFDQSxFQUFMLEVBQVM7QUFDUCxlQUFPL0IsWUFBWUwsTUFBTUMsVUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzhCLGFBQUwsQ0FBbUI7QUFDeEJDLCtCQUFxQkksRUFERztBQUV4QkgsZ0JBQVE7QUFGZ0IsT0FBbkIsQ0FBUDtBQUlEOzs7Ozs7QUFJSE0sT0FBT0MsT0FBUCxHQUFpQjlCLFFBQWpCIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcmVxdWVzdCA9IHJlcXVpcmUoJ3JlcXVlc3QtcHJvbWlzZS1uYXRpdmUnKVxuXG5jb25zdCBFUlJPUiA9IHtcbiAgTUlTU0lOR19JRDoge1xuICAgIGNvZGU6ICdtaXNzaW5nX2lkJyxcbiAgICBtZXNzYWdlOiAnTWlzc2luZyBgaWRgIHBhcmFtZXRlcidcbiAgfSxcbiAgTUlTU0lOR19CT0RZOiB7XG4gICAgY29kZTogJ21pc3NpbmdfYm9keScsXG4gICAgbWVzc2FnZTogJ01pc3NpbmcgYSBwcm9wZXIgYGJvZHlgIHBhcmFtZXRlcidcbiAgfVxufVxuXG5jb25zdCBoYW5kbGVFcnJvciA9IGVyciA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3QoZXJyKSlcblxuY2xhc3MgU2hvcHdhcmUge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XG4gICAgaWYgKCFvcHRpb25zKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdObyBob3N0LCB1c2VyIG9yIGFwaSBrZXkgZm91bmQuJylcbiAgICB9XG5cbiAgICB0aGlzLmhvc3QgPSBvcHRpb25zLmhvc3RcbiAgICB0aGlzLnVzZXIgPSBvcHRpb25zLnVzZXJcbiAgICB0aGlzLmFwaUtleSA9IG9wdGlvbnMuYXBpS2V5XG5cbiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0LmRlZmF1bHRzKHtcbiAgICAgIGJhc2VVcmw6IHRoaXMuaG9zdCArICcvYXBpLycsXG4gICAgICB0aW1lb3V0OiAzMDAwMCxcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdVc2VyLUFnZW50JzogJ1Nob3B3YXJlIEFQSSBDbGllbnQnLFxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnXG4gICAgICB9LFxuICAgICAgYXV0aDoge1xuICAgICAgICB1c2VyOiB0aGlzLnVzZXIsXG4gICAgICAgIHBhc3M6IHRoaXMuYXBpS2V5LFxuICAgICAgICBzZW5kSW1tZWRpYXRlbHk6IGZhbHNlXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGhhbmRsZVJlcXVlc3QoY29uZmlnLCBzZWxlY3Rvcikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLnJlcXVlc3QoY29uZmlnKVxuICAgICAgICAudGhlbihyZXMgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHNlbGVjdG9yID8gcmVzW3NlbGVjdG9yXSA6IHJlc1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2VEYXRhKVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyLm1lc3NhZ2UpXG4gICAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIHZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICd2ZXJzaW9uLycsXG4gICAgICBtZXRob2Q6ICdHRVQnXG4gICAgfSwgJ2RhdGEnKVxuICB9XG5cbiAgZ2V0QXJ0aWNsZXMocGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdhcnRpY2xlcy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRBcnRpY2xlKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBhcnRpY2xlcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdHRVQnXG4gICAgfSwgJ2RhdGEnKVxuICB9XG5cbiAgZGVsZXRlQXJ0aWNsZShpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgYXJ0aWNsZXMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJ1xuICAgIH0pXG4gIH1cblxuICBkZWxldGVBcnRpY2xlcyhpZHMpIHtcbiAgICBpZiAoIWlkcykge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdhcnRpY2xlcy8nLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIGlkc1xuICAgIH0pXG4gIH1cblxuICBjcmVhdGVBcnRpY2xlKGJvZHkpIHtcbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdhcnRpY2xlcy8nLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZUFydGljbGUoaWQsIGJvZHkpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBhcnRpY2xlcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVBcnRpY2xlcyhib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnYXJ0aWNsZXMvJyxcbiAgICAgIG1ldGhvZDogJ1BVVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIGdldENhdGVnb3JpZXMocGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdjYXRlZ29yaWVzLycsXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgcXM6IHBhcmFtc1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIGdldENhdGVnb3J5KGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBjYXRlZ29yaWVzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0dFVCdcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBjcmVhdGVDYXRlZ29yeShib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnY2F0ZWdvcmllcy8nLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZUNhdGVnb3J5KGlkLCBib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY2F0ZWdvcmllcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICBkZWxldGVDYXRlZ29yeShpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY2F0ZWdvcmllcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXG4gICAgfSlcbiAgfVxuXG4gIGdldFZhcmlhbnRzKHBhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAndmFyaWFudHMvJyxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBxczogcGFyYW1zXG4gICAgfSwgJ2RhdGEnKVxuICB9XG5cbiAgZ2V0VmFyaWFudChpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgdmFyaWFudHMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnR0VUJ1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIHVwZGF0ZVZhcmlhbnQoaWQsIGJvZHkpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGB2YXJpYW50cy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICBjcmVhdGVWYXJpYW50KGlkLCBib2R5KSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgdmFyaWFudHMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIGRlbGV0ZVZhcmlhbnQoaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYHZhcmlhbnRzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlVmFyaWFudHMoaWRzKSB7XG4gICAgaWYgKCFpZHMpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgdmFyaWFudHMvYCxcbiAgICAgIG1ldGhvZDogJ0RFTEVURScsXG4gICAgICBpZHNcbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhdGVBcnRpY2xlSW1hZ2VzKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBnZW5lcmF0ZUFydGljbGVJbWFnZXMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJ1xuICAgIH0pXG4gIH1cblxuICBsaXN0TWVkaWEocGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdtZWRpYS8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRNZWRpYShpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgbWVkaWEvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnR0VUJ1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIGNyZWF0ZU1lZGlhKGJvZHkpIHtcbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdtZWRpYS8nLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZU1lZGlhKGlkLCBib2R5KSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgbWVkaWEvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlTWVkaWEoaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYG1lZGlhLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcbiAgICB9KVxuICB9XG5cbiAgZ2V0T3JkZXJzKHBhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnb3JkZXJzLycsXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgcXM6IHBhcmFtc1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIGdldE9yZGVyKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBvcmRlcnMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnR0VUJ1xuICAgIH0pXG4gIH1cblxuICB1cGRhdGVPcmRlcihpZCwgYm9keSkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIGlmICghYm9keSkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYG9yZGVycy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cbiAgXG4gIGNyZWF0ZU9yZGVyKGJvZHkpIHtcbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBvcmRlcnMvYCxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICBnZXRBZGRyZXNzZXMocGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdhZGRyZXNzZXMvJyxcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICBxczogcGFyYW1zXG4gICAgfSwgJ2RhdGEnKVxuICB9XG5cbiAgY3JlYXRlQWRkcmVzcyhib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnYWRkcmVzc2VzLycsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgdXBkYXRlQWRkcmVzcyhpZCwgYm9keSkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIGlmICghYm9keSkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYGFkZHJlc3Nlcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICBkZWxldGVBZGRyZXNzKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBhZGRyZXNzZXMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJ1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIGdldEN1c3RvbWVycyhwYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogJ2N1c3RvbWVycy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRDdXN0b21lcihpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY3VzdG9tZXJzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0dFVCdcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBjcmVhdGVDdXN0b21lcihib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnY3VzdG9tZXJzLycsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgdXBkYXRlQ3VzdG9tZXIoaWQsIGJvZHkpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBjdXN0b21lcnMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlQ3VzdG9tZXIoaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYGN1c3RvbWVycy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXG4gICAgfSlcbiAgfVxuXG4gIGdldENhY2hlcyhwYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogJ2NhY2hlcy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRDYWNoZShpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY2FjaGVzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0dFVCdcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBkZWxldGVDYWNoZShpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY2FjaGVzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlQ2FjaGVzKCkge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnY2FjaGVzLycsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXG4gICAgfSlcbiAgfVxuXG4gIGdldENvdW50cmllcyhwYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogJ2NvdW50cmllcy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRDb3VudHJ5KGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBjb3VudHJpZXMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnR0VUJ1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIGNyZWF0ZUNvdW50cnkoYm9keSkge1xuICAgIGlmICghYm9keSkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogJ2NvdW50cmllcy8nLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZUNvdW50cnkoaWQsIGJvZHkpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBjb3VudHJpZXMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlQ291bnRyeShpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY291bnRyaWVzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcbiAgICB9KVxuICB9XG5cbiAgZ2V0Q3VzdG9tZXJHcm91cHMocGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdjdXN0b21lckdyb3Vwcy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRDdXN0b21lckdyb3VwKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBjdXN0b21lckdyb3Vwcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdHRVQnXG4gICAgfSwgJ2RhdGEnKVxuICB9XG5cbiAgY3JlYXRlQ3VzdG9tZXJHcm91cChib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnY3VzdG9tZXJHcm91cHMvJyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVDdXN0b21lckdyb3VwKGlkLCBib2R5KSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY3VzdG9tZXJHcm91cHMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlQ3VzdG9tZXJHcm91cChpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgY3VzdG9tZXJHcm91cHMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJ1xuICAgIH0pXG4gIH1cblxuICBnZXRNYW51ZmFjdHVyZXJzKHBhcmFtcykge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnbWFudWZhY3R1cmVycy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRNYW51ZmFjdHVyZXIoaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYG1hbnVmYWN0dXJlcnMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnR0VUJ1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIGNyZWF0ZU1hbnVmYWN0dXJlcihib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAnbWFudWZhY3R1cmVycy8nLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZU1hbnVmYWN0dXJlcihpZCwgYm9keSkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIGlmICghYm9keSkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYG1hbnVmYWN0dXJlcnMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlTWFudWZhY3R1cmVyKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBtYW51ZmFjdHVyZXJzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcbiAgICB9KVxuICB9XG5cbiAgZ2V0UHJvcGVydHlHcm91cHMocGFyYW1zKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdwcm9wZXJ0eUdyb3Vwcy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRQcm9wZXJ0eUdyb3VwKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBwcm9wZXJ0eUdyb3Vwcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdHRVQnXG4gICAgfSwgJ2RhdGEnKVxuICB9XG5cbiAgY3JlYXRlUHJvcGVydHlHcm91cChib2R5KSB7XG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiAncHJvcGVydHlHcm91cHMvJyxcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICB1cGRhdGVQcm9wZXJ0eUdyb3VwKGlkLCBib2R5KSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgaWYgKCFib2R5KSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgcHJvcGVydHlHcm91cHMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlUHJvcGVydHlHcm91cChpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgcHJvcGVydHlHcm91cHMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnREVMRVRFJ1xuICAgIH0pXG4gIH1cblxuICBnZXRTaG9wcyhwYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogJ3Nob3BzLycsXG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgcXM6IHBhcmFtc1xuICAgIH0sICdkYXRhJylcbiAgfVxuXG4gIGdldFNob3AoaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYHNob3BzLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0dFVCdcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBjcmVhdGVTaG9wKGJvZHkpIHtcbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6ICdzaG9wcy8nLFxuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBib2R5XG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZVNob3AoaWQsIGJvZHkpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBzaG9wcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdQVVQnLFxuICAgICAgYm9keVxuICAgIH0pXG4gIH1cblxuICBkZWxldGVTaG9wKGlkKSB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGBzaG9wcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXG4gICAgfSlcbiAgfVxuXG4gIGdldFRyYW5zbGF0aW9ucyhwYXJhbXMpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogJ3RyYW5zbGF0aW9ucy8nLFxuICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgIHFzOiBwYXJhbXNcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBnZXRUcmFuc2xhdGlvbihpZCkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xuICAgICAgdXJsOiBgdHJhbnNsYXRpb25zLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ0dFVCdcbiAgICB9LCAnZGF0YScpXG4gIH1cblxuICBjcmVhdGVUcmFuc2xhdGlvbihpZCwgYm9keSkge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxuICAgIH1cblxuICAgIGlmICghYm9keSkge1xuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYHRyYW5zbGF0aW9ucy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgdXBkYXRlVHJhbnNsYXRpb24oaWQsIGJvZHkpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICBpZiAoIWJvZHkpIHtcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XG4gICAgICB1cmw6IGB0cmFuc2xhdGlvbnMvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIGJvZHlcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlVHJhbnNsYXRpb24oaWQpIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcbiAgICAgIHVybDogYHRyYW5zbGF0aW9ucy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXG4gICAgfSlcbiAgfVxuXG59XG5cbm1vZHVsZS5leHBvcnRzID0gU2hvcHdhcmVcbiJdfQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LmpzIl0sIm5hbWVzIjpbInJlcXVlc3QiLCJyZXF1aXJlIiwiRVJST1IiLCJNSVNTSU5HX0lEIiwiY29kZSIsIm1lc3NhZ2UiLCJNSVNTSU5HX0JPRFkiLCJoYW5kbGVFcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZXJyIiwiU2hvcHdhcmUiLCJvcHRpb25zIiwiY29uc29sZSIsImVycm9yIiwiaG9zdCIsInVzZXIiLCJhcGlLZXkiLCJkZWZhdWx0cyIsImJhc2VVcmwiLCJ0aW1lb3V0IiwianNvbiIsImhlYWRlcnMiLCJhdXRoIiwicGFzcyIsInNlbmRJbW1lZGlhdGVseSIsImNvbmZpZyIsInNlbGVjdG9yIiwidGhlbiIsInJlc3BvbnNlRGF0YSIsInJlcyIsImNhdGNoIiwiaGFuZGxlUmVxdWVzdCIsInVybCIsIm1ldGhvZCIsInBhcmFtcyIsInFzIiwiaWQiLCJvcmRlcm51bWJlciIsImlkcyIsImJvZHkiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFNQSxVQUFVQyxRQUFRLHdCQUFSLENBQWhCOztBQUVBLElBQU1DLFFBQVE7QUFDWkMsY0FBWTtBQUNWQyxVQUFNLFlBREk7QUFFVkMsYUFBUztBQUZDLEdBREE7QUFLWkMsZ0JBQWM7QUFDWkYsVUFBTSxjQURNO0FBRVpDLGFBQVM7QUFGRztBQUxGLENBQWQ7O0FBV0EsSUFBTUUsY0FBYyxTQUFkQSxXQUFjO0FBQUEsU0FBTyxJQUFJQyxPQUFKLENBQVksVUFBQ0MsT0FBRCxFQUFVQyxNQUFWO0FBQUEsV0FBcUJBLE9BQU9DLEdBQVAsQ0FBckI7QUFBQSxHQUFaLENBQVA7QUFBQSxDQUFwQjs7SUFFTUMsUTtBQUNKLG9CQUFZQyxPQUFaLEVBQXFCO0FBQUE7O0FBQ25CLFFBQUksQ0FBQ0EsT0FBTCxFQUFjO0FBQ1pDLGNBQVFDLEtBQVIsQ0FBYyxpQ0FBZDtBQUNEOztBQUVELFNBQUtDLElBQUwsR0FBWUgsUUFBUUcsSUFBcEI7QUFD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Q0gsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxVQUFJLENBQUNzQyxJQUFMLEVBQVc7QUFDVCxlQUFPbEMsWUFBWUwsTUFBTUksWUFBbEIsQ0FBUDtBQUNEOztBQUVELGFBQU8sS0FBSzJCLGFBQUwsQ0FBbUI7QUFDeEJDLCtCQUFxQkksRUFERztBQUV4QkgsZ0JBQVEsS0FGZ0I7QUFHeEJNO0FBSHdCLE9BQW5CLENBQVA7QUFLRDs7O3NDQUVpQkgsRSxFQUFJO0FBQ3BCLFVBQUksQ0FBQ0EsRUFBTCxFQUFTO0FBQ1AsZUFBTy9CLFlBQVlMLE1BQU1DLFVBQWxCLENBQVA7QUFDRDs7QUFFRCxhQUFPLEtBQUs4QixhQUFMLENBQW1CO0FBQ3hCQywrQkFBcUJJLEVBREc7QUFFeEJILGdCQUFRO0FBRmdCLE9BQW5CLENBQVA7QUFJRDs7Ozs7O0FBSUhPLE9BQU9DLE9BQVAsR0FBaUIvQixRQUFqQiIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHJlcXVlc3QgPSByZXF1aXJlKCdyZXF1ZXN0LXByb21pc2UtbmF0aXZlJylcclxuXHJcbmNvbnN0IEVSUk9SID0ge1xyXG4gIE1JU1NJTkdfSUQ6IHtcclxuICAgIGNvZGU6ICdtaXNzaW5nX2lkJyxcclxuICAgIG1lc3NhZ2U6ICdNaXNzaW5nIGBpZGAgcGFyYW1ldGVyJ1xyXG4gIH0sXHJcbiAgTUlTU0lOR19CT0RZOiB7XHJcbiAgICBjb2RlOiAnbWlzc2luZ19ib2R5JyxcclxuICAgIG1lc3NhZ2U6ICdNaXNzaW5nIGEgcHJvcGVyIGBib2R5YCBwYXJhbWV0ZXInXHJcbiAgfVxyXG59XHJcblxyXG5jb25zdCBoYW5kbGVFcnJvciA9IGVyciA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiByZWplY3QoZXJyKSlcclxuXHJcbmNsYXNzIFNob3B3YXJlIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignTm8gaG9zdCwgdXNlciBvciBhcGkga2V5IGZvdW5kLicpXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ob3N0ID0gb3B0aW9ucy5ob3N0XHJcbiAgICB0aGlzLnVzZXIgPSBvcHRpb25zLnVzZXJcclxuICAgIHRoaXMuYXBpS2V5ID0gb3B0aW9ucy5hcGlLZXlcclxuXHJcbiAgICB0aGlzLnJlcXVlc3QgPSByZXF1ZXN0LmRlZmF1bHRzKHtcclxuICAgICAgYmFzZVVybDogdGhpcy5ob3N0ICsgJy9hcGkvJyxcclxuICAgICAgdGltZW91dDogMzAwMDAsXHJcbiAgICAgIGpzb246IHRydWUsXHJcbiAgICAgIGhlYWRlcnM6IHtcclxuICAgICAgICAnVXNlci1BZ2VudCc6ICdTaG9wd2FyZSBBUEkgQ2xpZW50JyxcclxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnXHJcbiAgICAgIH0sXHJcbiAgICAgIGF1dGg6IHtcclxuICAgICAgICB1c2VyOiB0aGlzLnVzZXIsXHJcbiAgICAgICAgcGFzczogdGhpcy5hcGlLZXksXHJcbiAgICAgICAgc2VuZEltbWVkaWF0ZWx5OiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVxdWVzdChjb25maWcsIHNlbGVjdG9yKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLnJlcXVlc3QoY29uZmlnKVxyXG4gICAgICAgIC50aGVuKHJlcyA9PiB7XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSBzZWxlY3RvciA/IHJlc1tzZWxlY3Rvcl0gOiByZXNcclxuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2VEYXRhKVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVyciA9PiB7XHJcbiAgICAgICAgICByZWplY3QoZXJyLm1lc3NhZ2UpXHJcbiAgICAgICAgfSlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB2ZXJzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ3ZlcnNpb24vJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJ1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgZ2V0QXJ0aWNsZXMocGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnYXJ0aWNsZXMvJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcXM6IHBhcmFtc1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgZ2V0QXJ0aWNsZShpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgYXJ0aWNsZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBnZXRBcnRpY2xlQnlPcmRlcm51bWJlcihvcmRlcm51bWJlcikge1xyXG4gICAgaWYoIW9yZGVybnVtYmVyKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBhcnRpY2xlcy8ke29yZGVybnVtYmVyfT91c2VOdW1iZXJBc0lkPXRydWVgLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXJ0aWNsZShpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgYXJ0aWNsZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQXJ0aWNsZXMoaWRzKSB7XHJcbiAgICBpZiAoIWlkcykge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnYXJ0aWNsZXMvJyxcclxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcclxuICAgICAgaWRzXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQXJ0aWNsZShib2R5KSB7XHJcbiAgICBpZiAoIWJvZHkpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnYXJ0aWNsZXMvJyxcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVBcnRpY2xlKGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBhcnRpY2xlcy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVBcnRpY2xlcyhib2R5KSB7XHJcbiAgICBpZiAoIWJvZHkpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnYXJ0aWNsZXMvJyxcclxuICAgICAgbWV0aG9kOiAnUFVUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldENhdGVnb3JpZXMocGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnY2F0ZWdvcmllcy8nLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICBxczogcGFyYW1zXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBnZXRDYXRlZ29yeShpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgY2F0ZWdvcmllcy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCdcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGNyZWF0ZUNhdGVnb3J5KGJvZHkpIHtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICdjYXRlZ29yaWVzLycsXHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2F0ZWdvcnkoaWQsIGJvZHkpIHtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYGNhdGVnb3JpZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdQVVQnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ2F0ZWdvcnkoaWQpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYGNhdGVnb3JpZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0VmFyaWFudHMocGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAndmFyaWFudHMvJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcXM6IHBhcmFtc1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgZ2V0VmFyaWFudChpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgdmFyaWFudHMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYXJpYW50KGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGB2YXJpYW50cy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjcmVhdGVWYXJpYW50KGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGB2YXJpYW50cy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlVmFyaWFudChpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgdmFyaWFudHMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlVmFyaWFudHMoaWRzKSB7XHJcbiAgICBpZiAoIWlkcykge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgdmFyaWFudHMvYCxcclxuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcclxuICAgICAgaWRzXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVBcnRpY2xlSW1hZ2VzKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBnZW5lcmF0ZUFydGljbGVJbWFnZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdQVVQnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbGlzdE1lZGlhKHBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ21lZGlhLycsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgIHFzOiBwYXJhbXNcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGdldE1lZGlhKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBtZWRpYS8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCdcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGNyZWF0ZU1lZGlhKGJvZHkpIHtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICdtZWRpYS8nLFxyXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZU1lZGlhKGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBtZWRpYS8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVNZWRpYShpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgbWVkaWEvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0T3JkZXJzKHBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ29yZGVycy8nLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICBxczogcGFyYW1zXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBnZXRPcmRlcihpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgb3JkZXJzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnR0VUJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldE9yZGVyQnlPcmRlcm51bWJlcihvcmRlcm51bWJlcikge1xyXG4gICAgaWYgKCFvcmRlcm51bWJlcikge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgb3JkZXJzLyR7b3JkZXJudW1iZXJ9P3VzZU51bWJlckFzSWQ9dHJ1ZWAsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCdcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVPcmRlcihpZCwgYm9keSkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWJvZHkpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgb3JkZXJzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnUFVUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGNyZWF0ZU9yZGVyKGJvZHkpIHtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBvcmRlcnMvYCxcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRBZGRyZXNzZXMocGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnYWRkcmVzc2VzLycsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgIHFzOiBwYXJhbXNcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGNyZWF0ZUFkZHJlc3MoYm9keSkge1xyXG4gICAgaWYgKCFib2R5KSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ2FkZHJlc3Nlcy8nLFxyXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFkZHJlc3MoaWQsIGJvZHkpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFib2R5KSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYGFkZHJlc3Nlcy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVBZGRyZXNzKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBhZGRyZXNzZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBnZXRDdXN0b21lcnMocGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnY3VzdG9tZXJzLycsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgIHFzOiBwYXJhbXNcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGdldEN1c3RvbWVyKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBjdXN0b21lcnMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBjcmVhdGVDdXN0b21lcihib2R5KSB7XHJcbiAgICBpZiAoIWJvZHkpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnY3VzdG9tZXJzLycsXHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ3VzdG9tZXIoaWQsIGJvZHkpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFib2R5KSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYGN1c3RvbWVycy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVDdXN0b21lcihpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgY3VzdG9tZXJzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnREVMRVRFJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldENhY2hlcyhwYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICdjYWNoZXMvJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcXM6IHBhcmFtc1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FjaGUoaWQpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYGNhY2hlcy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCdcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGRlbGV0ZUNhY2hlKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBjYWNoZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ2FjaGVzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ2NhY2hlcy8nLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q291bnRyaWVzKHBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ2NvdW50cmllcy8nLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICBxczogcGFyYW1zXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJ5KGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBjb3VudHJpZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBjcmVhdGVDb3VudHJ5KGJvZHkpIHtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICdjb3VudHJpZXMvJyxcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDb3VudHJ5KGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBjb3VudHJpZXMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdQVVQnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlQ291bnRyeShpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgY291bnRyaWVzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnREVMRVRFJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldEN1c3RvbWVyR3JvdXBzKHBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ2N1c3RvbWVyR3JvdXBzLycsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgIHFzOiBwYXJhbXNcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGdldEN1c3RvbWVyR3JvdXAoaWQpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYGN1c3RvbWVyR3JvdXBzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnR0VUJ1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQ3VzdG9tZXJHcm91cChib2R5KSB7XHJcbiAgICBpZiAoIWJvZHkpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnY3VzdG9tZXJHcm91cHMvJyxcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICB1cGRhdGVDdXN0b21lckdyb3VwKGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBjdXN0b21lckdyb3Vwcy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ1BVVCcsXHJcbiAgICAgIGJvZHlcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBkZWxldGVDdXN0b21lckdyb3VwKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBjdXN0b21lckdyb3Vwcy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRNYW51ZmFjdHVyZXJzKHBhcmFtcykge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ21hbnVmYWN0dXJlcnMvJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcXM6IHBhcmFtc1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgZ2V0TWFudWZhY3R1cmVyKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBtYW51ZmFjdHVyZXJzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnR0VUJ1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlTWFudWZhY3R1cmVyKGJvZHkpIHtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICdtYW51ZmFjdHVyZXJzLycsXHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlTWFudWZhY3R1cmVyKGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBtYW51ZmFjdHVyZXJzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnUFVUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZU1hbnVmYWN0dXJlcihpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgbWFudWZhY3R1cmVycy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRQcm9wZXJ0eUdyb3VwcyhwYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICdwcm9wZXJ0eUdyb3Vwcy8nLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICBxczogcGFyYW1zXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBnZXRQcm9wZXJ0eUdyb3VwKGlkKSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGBwcm9wZXJ0eUdyb3Vwcy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCdcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGNyZWF0ZVByb3BlcnR5R3JvdXAoYm9keSkge1xyXG4gICAgaWYgKCFib2R5KSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogJ3Byb3BlcnR5R3JvdXBzLycsXHJcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvcGVydHlHcm91cChpZCwgYm9keSkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWJvZHkpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfQk9EWSlcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgcHJvcGVydHlHcm91cHMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdQVVQnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlUHJvcGVydHlHcm91cChpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgcHJvcGVydHlHcm91cHMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdERUxFVEUnXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0U2hvcHMocGFyYW1zKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiAnc2hvcHMvJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcXM6IHBhcmFtc1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgZ2V0U2hvcChpZCkge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19JRClcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXF1ZXN0KHtcclxuICAgICAgdXJsOiBgc2hvcHMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdHRVQnXHJcbiAgICB9LCAnZGF0YScpXHJcbiAgfVxyXG5cclxuICBjcmVhdGVTaG9wKGJvZHkpIHtcclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICdzaG9wcy8nLFxyXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNob3AoaWQsIGJvZHkpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFib2R5KSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0JPRFkpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYHNob3BzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnUFVUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNob3AoaWQpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYHNob3BzLyR7aWR9YCxcclxuICAgICAgbWV0aG9kOiAnREVMRVRFJ1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGdldFRyYW5zbGF0aW9ucyhwYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6ICd0cmFuc2xhdGlvbnMvJyxcclxuICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgcXM6IHBhcmFtc1xyXG4gICAgfSwgJ2RhdGEnKVxyXG4gIH1cclxuXHJcbiAgZ2V0VHJhbnNsYXRpb24oaWQpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYHRyYW5zbGF0aW9ucy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0dFVCdcclxuICAgIH0sICdkYXRhJylcclxuICB9XHJcblxyXG4gIGNyZWF0ZVRyYW5zbGF0aW9uKGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGB0cmFuc2xhdGlvbnMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgYm9keVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRyYW5zbGF0aW9uKGlkLCBib2R5KSB7XHJcbiAgICBpZiAoIWlkKSB7XHJcbiAgICAgIHJldHVybiBoYW5kbGVFcnJvcihFUlJPUi5NSVNTSU5HX0lEKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghYm9keSkge1xyXG4gICAgICByZXR1cm4gaGFuZGxlRXJyb3IoRVJST1IuTUlTU0lOR19CT0RZKVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmhhbmRsZVJlcXVlc3Qoe1xyXG4gICAgICB1cmw6IGB0cmFuc2xhdGlvbnMvJHtpZH1gLFxyXG4gICAgICBtZXRob2Q6ICdQVVQnLFxyXG4gICAgICBib2R5XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlVHJhbnNsYXRpb24oaWQpIHtcclxuICAgIGlmICghaWQpIHtcclxuICAgICAgcmV0dXJuIGhhbmRsZUVycm9yKEVSUk9SLk1JU1NJTkdfSUQpXHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVxdWVzdCh7XHJcbiAgICAgIHVybDogYHRyYW5zbGF0aW9ucy8ke2lkfWAsXHJcbiAgICAgIG1ldGhvZDogJ0RFTEVURSdcclxuICAgIH0pXHJcbiAgfVxyXG5cclxufVxyXG5cclxubW9kdWxlLmV4cG9ydHMgPSBTaG9wd2FyZVxyXG4iXX0= \ No newline at end of file diff --git a/src/index.js b/src/index.js index 877f9f6..d4aa0dd 100644 --- a/src/index.js +++ b/src/index.js @@ -78,6 +78,17 @@ class Shopware { }, 'data') } + getArticleByOrdernumber(ordernumber) { + if(!ordernumber) { + return handleError(ERROR.MISSING_ID) + } + + return this.handleRequest({ + url: `articles/${ordernumber}?useNumberAsId=true`, + method: 'GET' + }) + } + deleteArticle(id) { if (!id) { return handleError(ERROR.MISSING_ID) @@ -361,6 +372,17 @@ class Shopware { }) } + getOrderByOrdernumber(ordernumber) { + if (!ordernumber) { + return handleError(ERROR.MISSING_ID) + } + + return this.handleRequest({ + url: `orders/${ordernumber}?useNumberAsId=true`, + method: 'GET' + }) + } + updateOrder(id, body) { if (!id) { return handleError(ERROR.MISSING_ID) @@ -376,7 +398,7 @@ class Shopware { body }) } - + createOrder(body) { if (!body) { return handleError(ERROR.MISSING_BODY)