@ultipa-graph/ultipa-driver 6.0.0 → 6.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/printers.js CHANGED
@@ -309,4 +309,4 @@ function inferPropertyType(value) {
309
309
  return types_1.PropertyType.MAP;
310
310
  return types_1.PropertyType.UNSET;
311
311
  }
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJpbnRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7OztBQVNILGdDQXFEQztBQUtELDBEQWdCQztBQUtELGdDQXFEQztBQUtELDBEQWNDO0FBS0QsZ0NBYUM7QUFLRCxnQ0FvQkM7QUFLRCw0QkE4Q0M7QUE1UEQsNERBQWtDO0FBQ2xDLG1DQUFtRTtBQUduRTs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBNkI7SUFDckUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLFVBQVUsR0FBdUIsU0FBUyxDQUFDO0lBQy9DLElBQUksWUFBWSxHQUEwQixJQUFJLENBQUM7SUFFL0MsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSTtZQUFFLFNBQVM7UUFFcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFaEUsSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUMxRCxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENB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U0FBUztRQUFFLE9BQU8sb0JBQVksQ0FBQyxJQUFJLENBQUM7SUFDcEUsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxvQkFBWSxDQUFDLElBQUksQ0FBQztJQUN6RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDO0lBQzVFLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLG9CQUFZLENBQUMsTUFBTSxDQUFDO0lBQzFELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLG9CQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLG9CQUFZLENBQUMsSUFBSSxDQUFDO0lBQ25ELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sb0JBQVksQ0FBQyxHQUFHLENBQUM7SUFDdkQsT0FBTyxvQkFBWSxDQUFDLEtBQUssQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFByZXR0eSBwcmludGVycyBmb3IgR1FMREIgZGF0YSB0eXBlcy5cclxuICovXHJcblxyXG5pbXBvcnQgQ2xpVGFibGUgZnJvbSAnY2xpLXRhYmxlMyc7XHJcbmltcG9ydCB7IFNjaGVtYSwgUHJvcGVydHlUeXBlLCBUYWJsZSBhcyBEYXRhVGFibGUgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgUmVzcG9uc2UsIE5vZGUsIEVkZ2UsIFBhdGggfSBmcm9tICcuL3Jlc3BvbnNlJztcclxuXHJcbi8qKlxyXG4gKiBQcmludCBub2RlcyBpbiB0YWJ1bGFyIGZvcm1hdCBncm91cGVkIGJ5IHNjaGVtYS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcmludE5vZGVzKG5vZGVzOiBOb2RlW10sIHNjaGVtYXM/OiBNYXA8c3RyaW5nLCBTY2hlbWE+KTogc3RyaW5nIHtcclxuICBpZiAoIW5vZGVzIHx8IG5vZGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuICdObyBub2RlcyBmb3VuZC4nO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGxldCBsYXN0U2NoZW1hOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgbGV0IGN1cnJlbnRUYWJsZTogQ2xpVGFibGUuVGFibGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcbiAgICBpZiAoIW5vZGUpIGNvbnRpbnVlO1xyXG5cclxuICAgIGNvbnN0IHNjaGVtYU5hbWUgPSBub2RlLmxhYmVscy5sZW5ndGggPiAwID8gbm9kZS5sYWJlbHNbMF0gOiAnJztcclxuXHJcbiAgICBpZiAobGFzdFNjaGVtYSA9PT0gdW5kZWZpbmVkIHx8IHNjaGVtYU5hbWUgIT09IGxhc3RTY2hlbWEpIHtcclxuICAgICAgaWYgKGN1cnJlbnRUYWJsZSkge1xyXG4gICAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnRUYWJsZS50b1N0cmluZygpKTtcclxuICAgICAgICByZXN1bHQucHVzaCgnJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBbJ0lEJywgJ0xhYmVscyddO1xyXG4gICAgICBpZiAoc2NoZW1hcyAmJiBzY2hlbWFzLmhhcyhzY2hlbWFOYW1lKSkge1xyXG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBzY2hlbWFzLmdldChzY2hlbWFOYW1lKSEucHJvcGVydGllcykge1xyXG4gICAgICAgICAgaGVhZGVycy5wdXNoKHByb3AubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGhlYWRlcnMucHVzaCguLi5PYmplY3Qua2V5cyhub2RlLnByb3BlcnRpZXMpKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY3VycmVudFRhYmxlID0gbmV3IENsaVRhYmxlKHsgaGVhZDogaGVhZGVycyB9KSBhcyBDbGlUYWJsZS5UYWJsZTtcclxuICAgICAgbGFzdFNjaGVtYSA9IHNjaGVtYU5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgcm93OiBzdHJpbmdbXSA9IFtub2RlLmlkLCBmb3JtYXRMYWJlbHMobm9kZS5sYWJlbHMpXTtcclxuICAgIGlmIChzY2hlbWFzICYmIHNjaGVtYXMuaGFzKHNjaGVtYU5hbWUpKSB7XHJcbiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBzY2hlbWFzLmdldChzY2hlbWFOYW1lKSEucHJvcGVydGllcykge1xyXG4gICAgICAgIHJvdy5wdXNoKGZvcm1hdFZhbHVlKG5vZGUucHJvcGVydGllc1twcm9wLm5hbWVdKSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG5vZGUucHJvcGVydGllcykpIHtcclxuICAgICAgICByb3cucHVzaChmb3JtYXRWYWx1ZShub2RlLnByb3BlcnRpZXNba2V5XSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY3VycmVudFRhYmxlIS5wdXNoKHJvdyk7XHJcbiAgfVxyXG5cclxuICBpZiAoY3VycmVudFRhYmxlKSB7XHJcbiAgICByZXN1bHQucHVzaChjdXJyZW50VGFibGUudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICByZXN1bHQucHVzaChgXFxuJHtub2Rlcy5sZW5ndGh9IG5vZGUocylgKTtcclxuICByZXR1cm4gcmVzdWx0LmpvaW4oJ1xcbicpO1xyXG59XHJcblxyXG4vKipcclxuICogUHJpbnQgbm9kZXMgZGVyaXZpbmcgc2NoZW1hIGZyb20gZGF0YS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcmludE5vZGVzV2l0aG91dFNjaGVtYShub2RlczogTm9kZVtdKTogc3RyaW5nIHtcclxuICBpZiAoIW5vZGVzIHx8IG5vZGVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgcmV0dXJuICdObyBub2RlcyBmb3VuZC4nO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc2NoZW1hcyA9IG5ldyBNYXA8c3RyaW5nLCBTY2hlbWE+KCk7XHJcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XHJcbiAgICBpZiAoIW5vZGUpIGNvbnRpbnVlO1xyXG4gICAgZm9yIChjb25zdCBsYWJlbCBvZiBub2RlLmxhYmVscykge1xyXG4gICAgICBpZiAoIXNjaGVtYXMuaGFzKGxhYmVsKSkge1xyXG4gICAgICAgIHNjaGVtYXMuc2V0KGxhYmVsLCBidWlsZFNjaGVtYUZyb21Ob2RlKGxhYmVsLCBub2RlKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBwcmludE5vZGVzKG5vZGVzLCBzY2hlbWFzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByaW50IGVkZ2VzIGluIHRhYnVsYXIgZm9ybWF0IGdyb3VwZWQgYnkgc2NoZW1hLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByaW50RWRnZXMoZWRnZXM6IEVkZ2VbXSwgc2NoZW1hcz86IE1hcDxzdHJpbmcsIFNjaGVtYT4pOiBzdHJpbmcge1xyXG4gIGlmICghZWRnZXMgfHwgZWRnZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICByZXR1cm4gJ05vIGVkZ2VzIGZvdW5kLic7XHJcbiAgfVxyXG5cclxuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XHJcbiAgbGV0IGxhc3RTY2hlbWE6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBsZXQgY3VycmVudFRhYmxlOiBDbGlUYWJsZS5UYWJsZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBmb3IgKGNvbnN0IGVkZ2Ugb2YgZWRnZXMpIHtcclxuICAgIGlmICghZWRnZSkgY29udGludWU7XHJcblxyXG4gICAgY29uc3Qgc2NoZW1hTmFtZSA9IGVkZ2UubGFiZWw7XHJcblxyXG4gICAgaWYgKGxhc3RTY2hlbWEgPT09IHVuZGVmaW5lZCB8fCBzY2hlbWFOYW1lICE9PSBsYXN0U2NoZW1hKSB7XHJcbiAgICAgIGlmIChjdXJyZW50VGFibGUpIHtcclxuICAgICAgICByZXN1bHQucHVzaChjdXJyZW50VGFibGUudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgcmVzdWx0LnB1c2goJycpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBoZWFkZXJzID0gWydJRCcsICdGUk9NJywgJ1RPJywgJ0xhYmVsJ107XHJcbiAgICAgIGlmIChzY2hlbWFzICYmIHNjaGVtYXMuaGFzKHNjaGVtYU5hbWUpKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIHNjaGVtYXMuZ2V0KHNjaGVtYU5hbWUpIS5wcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICBoZWFkZXJzLnB1c2gocHJvcC5uYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaGVhZGVycy5wdXNoKC4uLk9iamVjdC5rZXlzKGVkZ2UucHJvcGVydGllcykpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjdXJyZW50VGFibGUgPSBuZXcgQ2xpVGFibGUoeyBoZWFkOiBoZWFkZXJzIH0pIGFzIENsaVRhYmxlLlRhYmxlO1xyXG4gICAgICBsYXN0U2NoZW1hID0gc2NoZW1hTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb3c6IHN0cmluZ1tdID0gW2VkZ2UuaWQsIGVkZ2UuZnJvbU5vZGVJZCwgZWRnZS50b05vZGVJZCwgZWRnZS5sYWJlbF07XHJcbiAgICBpZiAoc2NoZW1hcyAmJiBzY2hlbWFzLmhhcyhzY2hlbWFOYW1lKSkge1xyXG4gICAgICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NoZW1hcy5nZXQoc2NoZW1hTmFtZSkhLnByb3BlcnRpZXMpIHtcclxuICAgICAgICByb3cucHVzaChmb3JtYXRWYWx1ZShlZGdlLnByb3BlcnRpZXNbcHJvcC5uYW1lXSkpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhlZGdlLnByb3BlcnRpZXMpKSB7XHJcbiAgICAgICAgcm93LnB1c2goZm9ybWF0VmFsdWUoZWRnZS5wcm9wZXJ0aWVzW2tleV0pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGN1cnJlbnRUYWJsZSEucHVzaChyb3cpO1xyXG4gIH1cclxuXHJcbiAgaWYgKGN1cnJlbnRUYWJsZSkge1xyXG4gICAgcmVzdWx0LnB1c2goY3VycmVudFRhYmxlLnRvU3RyaW5nKCkpO1xyXG4gIH1cclxuXHJcbiAgcmVzdWx0LnB1c2goYFxcbiR7ZWRnZXMubGVuZ3RofSBlZGdlKHMpYCk7XHJcbiAgcmV0dXJuIHJlc3VsdC5qb2luKCdcXG4nKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByaW50IGVkZ2VzIGRlcml2aW5nIHNjaGVtYSBmcm9tIGRhdGEuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRFZGdlc1dpdGhvdXRTY2hlbWEoZWRnZXM6IEVkZ2VbXSk6IHN0cmluZyB7XHJcbiAgaWYgKCFlZGdlcyB8fCBlZGdlcy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiAnTm8gZWRnZXMgZm91bmQuJztcclxuICB9XHJcblxyXG4gIGNvbnN0IHNjaGVtYXMgPSBuZXcgTWFwPHN0cmluZywgU2NoZW1hPigpO1xyXG4gIGZvciAoY29uc3QgZWRnZSBvZiBlZGdlcykge1xyXG4gICAgaWYgKCFlZGdlKSBjb250aW51ZTtcclxuICAgIGlmIChlZGdlLmxhYmVsICYmICFzY2hlbWFzLmhhcyhlZGdlLmxhYmVsKSkge1xyXG4gICAgICBzY2hlbWFzLnNldChlZGdlLmxhYmVsLCBidWlsZFNjaGVtYUZyb21FZGdlKGVkZ2UubGFiZWwsIGVkZ2UpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBwcmludEVkZ2VzKGVkZ2VzLCBzY2hlbWFzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByaW50IHBhdGhzIHdpdGggbm9kZS1lZGdlIHNlcXVlbmNlIG5vdGF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByaW50UGF0aHMocGF0aHM6IFBhdGhbXSk6IHN0cmluZyB7XHJcbiAgaWYgKCFwYXRocyB8fCBwYXRocy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiAnTm8gcGF0aHMgZm91bmQuJztcclxuICB9XHJcblxyXG4gIGNvbnN0IHRhYmxlID0gbmV3IENsaVRhYmxlKHsgaGVhZDogWycjJywgJ1BhdGgnXSB9KSBhcyBDbGlUYWJsZS5UYWJsZTtcclxuXHJcbiAgcGF0aHMuZm9yRWFjaCgocGF0aCwgaSkgPT4ge1xyXG4gICAgaWYgKCFwYXRoKSByZXR1cm47XHJcbiAgICB0YWJsZS5wdXNoKFtTdHJpbmcoaSksIGZvcm1hdFBhdGgocGF0aCldKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHRhYmxlLnRvU3RyaW5nKCkgKyBgXFxuJHtwYXRocy5sZW5ndGh9IHBhdGgocylgO1xyXG59XHJcblxyXG4vKipcclxuICogUHJpbnQgZ2VuZXJpYyB0YWJsZSBkYXRhLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByaW50VGFibGUoZGF0YVRhYmxlOiBEYXRhVGFibGUpOiBzdHJpbmcge1xyXG4gIGlmICghZGF0YVRhYmxlIHx8ICFkYXRhVGFibGUuaGVhZGVycyB8fCBkYXRhVGFibGUuaGVhZGVycy5sZW5ndGggPT09IDApIHtcclxuICAgIHJldHVybiAnTm8gdGFibGUgZGF0YS4nO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaGVhZGVycyA9IGRhdGFUYWJsZS5oZWFkZXJzLm1hcCgoaDogeyBuYW1lOiBzdHJpbmcgfSkgPT4gaC5uYW1lKTtcclxuICBjb25zdCBjbGlUYWJsZSA9IG5ldyBDbGlUYWJsZSh7IGhlYWQ6IGhlYWRlcnMgfSkgYXMgQ2xpVGFibGUuVGFibGU7XHJcblxyXG4gIGZvciAoY29uc3Qgcm93IG9mIGRhdGFUYWJsZS5yb3dzKSB7XHJcbiAgICBjbGlUYWJsZS5wdXNoKHJvdy5tYXAoKHY6IHVua25vd24pID0+IGZvcm1hdFZhbHVlKHYpKSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XHJcbiAgaWYgKGRhdGFUYWJsZS5uYW1lKSB7XHJcbiAgICByZXN1bHQucHVzaChgVGFibGU6ICR7ZGF0YVRhYmxlLm5hbWV9YCk7XHJcbiAgfVxyXG4gIHJlc3VsdC5wdXNoKGNsaVRhYmxlLnRvU3RyaW5nKCkpO1xyXG4gIHJlc3VsdC5wdXNoKGBcXG4ke2RhdGFUYWJsZS5yb3dzLmxlbmd0aH0gcm93KHMpYCk7XHJcblxyXG4gIHJldHVybiByZXN1bHQuam9pbignXFxuJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBdXRvLWRldGVjdCB0eXBlIGZyb20gUmVzcG9uc2UgYW5kIHByaW50IGFjY29yZGluZ2x5LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByaW50QW55KHJlc3A6IFJlc3BvbnNlKTogc3RyaW5nIHtcclxuICBpZiAoIXJlc3AgfHwgcmVzcC5pc0VtcHR5KCkpIHtcclxuICAgIHJldHVybiAnTm8gZGF0YS4nO1xyXG4gIH1cclxuXHJcbiAgLy8gVHJ5IHRvIGF1dG8tZGV0ZWN0IHRoZSB0eXBlIGZyb20gdGhlIGZpcnN0IGNvbHVtblxyXG4gIGlmIChyZXNwLmNvbHVtbnMubGVuZ3RoID4gMCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgYXIgPSByZXNwLmdldCgwKTtcclxuXHJcbiAgICAgIC8vIFRyeSBlZGdlcyBmaXJzdFxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IHsgZWRnZXMsIHNjaGVtYXMgfSA9IGFyLmFzRWRnZXMoKTtcclxuICAgICAgICBpZiAoZWRnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHByaW50RWRnZXMoZWRnZXMsIHNjaGVtYXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIE5vdCBlZGdlcywgY29udGludWVcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVHJ5IG5vZGVzXHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgeyBub2Rlcywgc2NoZW1hcyB9ID0gYXIuYXNOb2RlcygpO1xyXG4gICAgICAgIGlmIChub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gcHJpbnROb2Rlcyhub2Rlcywgc2NoZW1hcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gTm90IG5vZGVzLCBjb250aW51ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBUcnkgcGF0aHNcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBwYXRocyA9IGFyLmFzUGF0aHMoKTtcclxuICAgICAgICBpZiAocGF0aHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgcmV0dXJuIHByaW50UGF0aHMocGF0aHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIE5vdCBwYXRocywgY29udGludWVcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAvLyBGYWxsIHRocm91Z2ggdG8gdGFibGVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIEZhbGxiYWNrIHRvIHRhYmxlIGZvcm1hdCAodXNlIGRlcHJlY2F0ZWQgbWV0aG9kIGZvciBtdWx0aS1jb2x1bW4gZGlzcGxheSlcclxuICByZXR1cm4gcHJpbnRUYWJsZShyZXNwLmFzVGFibGUoKSk7XHJcbn1cclxuXHJcbi8vIEhlbHBlciBmdW5jdGlvbnNcclxuXHJcbmZ1bmN0aW9uIGZvcm1hdExhYmVscyhsYWJlbHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcclxuICBpZiAoIWxhYmVscyB8fCBsYWJlbHMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XHJcbiAgcmV0dXJuICdbJyArIGxhYmVscy5qb2luKCcsICcpICsgJ10nO1xyXG59XHJcblxyXG5mdW5jdGlvbiBmb3JtYXRWYWx1ZSh2OiBhbnkpOiBzdHJpbmcge1xyXG4gIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCkgcmV0dXJuICc8bmlsPic7XHJcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcclxuICAgIHJldHVybiAnWycgKyB2Lm1hcChmb3JtYXRWYWx1ZSkuam9pbignLCAnKSArICddJztcclxuICB9XHJcbiAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xyXG4gICAgY29uc3QgcGFydHMgPSBPYmplY3QuZW50cmllcyh2KS5tYXAoKFtrLCB2YWxdKSA9PiBgJHtrfTogJHtmb3JtYXRWYWx1ZSh2YWwpfWApO1xyXG4gICAgcmV0dXJuICd7JyArIHBhcnRzLmpvaW4oJywgJykgKyAnfSc7XHJcbiAgfVxyXG4gIHJldHVybiBTdHJpbmcodik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGZvcm1hdFBhdGgocGF0aDogUGF0aCk6IHN0cmluZyB7XHJcbiAgaWYgKCFwYXRoKSByZXR1cm4gJzxuaWw+JztcclxuXHJcbiAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW107XHJcbiAgbGV0IG5vZGVJZHggPSAwO1xyXG4gIGxldCBlZGdlSWR4ID0gMDtcclxuXHJcbiAgd2hpbGUgKG5vZGVJZHggPCBwYXRoLm5vZGVzLmxlbmd0aCB8fCBlZGdlSWR4IDwgcGF0aC5lZGdlcy5sZW5ndGgpIHtcclxuICAgIGlmIChub2RlSWR4IDwgcGF0aC5ub2Rlcy5sZW5ndGgpIHtcclxuICAgICAgY29uc3Qgbm9kZSA9IHBhdGgubm9kZXNbbm9kZUlkeF07XHJcbiAgICAgIGNvbnN0IGxhYmVsID0gbm9kZS5sYWJlbHMubGVuZ3RoID4gMCA/ICc6JyArIG5vZGUubGFiZWxzWzBdIDogJyc7XHJcbiAgICAgIHBhcnRzLnB1c2goYCgke25vZGUuaWR9JHtsYWJlbH0pYCk7XHJcbiAgICAgIG5vZGVJZHgrKztcclxuICAgIH1cclxuICAgIGlmIChlZGdlSWR4IDwgcGF0aC5lZGdlcy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgZWRnZSA9IHBhdGguZWRnZXNbZWRnZUlkeF07XHJcbiAgICAgIHBhcnRzLnB1c2goYC1bJHtlZGdlLmlkfToke2VkZ2UubGFiZWx9XS0+YCk7XHJcbiAgICAgIGVkZ2VJZHgrKztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBwYXJ0cy5qb2luKCcgJyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbnRhaW5zQW55KGFycjogc3RyaW5nW10sIC4uLml0ZW1zOiBzdHJpbmdbXSk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBhcnIuc29tZShzID0+IGl0ZW1zLmluY2x1ZGVzKHMpKTtcclxufVxyXG5cclxuZnVuY3Rpb24gYnVpbGRTY2hlbWFGcm9tTm9kZShsYWJlbDogc3RyaW5nLCBub2RlOiBOb2RlKTogU2NoZW1hIHtcclxuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmVudHJpZXMobm9kZS5wcm9wZXJ0aWVzKS5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7XHJcbiAgICBuYW1lLFxyXG4gICAgdHlwZTogaW5mZXJQcm9wZXJ0eVR5cGUodmFsdWUpLFxyXG4gIH0pKTtcclxuICByZXR1cm4geyBuYW1lOiBsYWJlbCwgcHJvcGVydGllcyB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBidWlsZFNjaGVtYUZyb21FZGdlKGxhYmVsOiBzdHJpbmcsIGVkZ2U6IEVkZ2UpOiBTY2hlbWEge1xyXG4gIGNvbnN0IHByb3BlcnRpZXMgPSBPYmplY3QuZW50cmllcyhlZGdlLnByb3BlcnRpZXMpLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHtcclxuICAgIG5hbWUsXHJcbiAgICB0eXBlOiBpbmZlclByb3BlcnR5VHlwZSh2YWx1ZSksXHJcbiAgfSkpO1xyXG4gIHJldHVybiB7IG5hbWU6IGxhYmVsLCBwcm9wZXJ0aWVzIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGluZmVyUHJvcGVydHlUeXBlKHZhbHVlOiBhbnkpOiBQcm9wZXJ0eVR5cGUge1xyXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gUHJvcGVydHlUeXBlLk5VTEw7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gUHJvcGVydHlUeXBlLkJPT0w7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcclxuICAgIHJldHVybiBOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSA/IFByb3BlcnR5VHlwZS5JTlQ2NCA6IFByb3BlcnR5VHlwZS5ET1VCTEU7XHJcbiAgfVxyXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gUHJvcGVydHlUeXBlLlNUUklORztcclxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbHVlKSkgcmV0dXJuIFByb3BlcnR5VHlwZS5CTE9CO1xyXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkgcmV0dXJuIFByb3BlcnR5VHlwZS5MSVNUO1xyXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSByZXR1cm4gUHJvcGVydHlUeXBlLk1BUDtcclxuICByZXR1cm4gUHJvcGVydHlUeXBlLlVOU0VUO1xyXG59XHJcbiJdfQ==
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJpbnRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOzs7OztBQVNILGdDQXFEQztBQUtELDBEQWdCQztBQUtELGdDQXFEQztBQUtELDBEQWNDO0FBS0QsZ0NBYUM7QUFLRCxnQ0FvQkM7QUFLRCw0QkE4Q0M7QUE1UEQsNERBQWtDO0FBQ2xDLG1DQUFtRTtBQUduRTs7R0FFRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxLQUFhLEVBQUUsT0FBNkI7SUFDckUsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUM1QixJQUFJLFVBQVUsR0FBdUIsU0FBUyxDQUFDO0lBQy9DLElBQUksWUFBWSxHQUEwQixJQUFJLENBQUM7SUFFL0MsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSTtZQUFFLFNBQVM7UUFFcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFaEUsSUFBSSxVQUFVLEtBQUssU0FBUyxJQUFJLFVBQVUsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUMxRCxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFFRCxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxRQUFRLENB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U0FBUztRQUFFLE9BQU8sb0JBQVksQ0FBQyxJQUFJLENBQUM7SUFDcEUsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTO1FBQUUsT0FBTyxvQkFBWSxDQUFDLElBQUksQ0FBQztJQUN6RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLG9CQUFZLENBQUMsTUFBTSxDQUFDO0lBQzVFLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLG9CQUFZLENBQUMsTUFBTSxDQUFDO0lBQzFELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLG9CQUFZLENBQUMsSUFBSSxDQUFDO0lBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLG9CQUFZLENBQUMsSUFBSSxDQUFDO0lBQ25ELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTtRQUFFLE9BQU8sb0JBQVksQ0FBQyxHQUFHLENBQUM7SUFDdkQsT0FBTyxvQkFBWSxDQUFDLEtBQUssQ0FBQztBQUM1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBQcmV0dHkgcHJpbnRlcnMgZm9yIEdRTERCIGRhdGEgdHlwZXMuXG4gKi9cblxuaW1wb3J0IENsaVRhYmxlIGZyb20gJ2NsaS10YWJsZTMnO1xuaW1wb3J0IHsgU2NoZW1hLCBQcm9wZXJ0eVR5cGUsIFRhYmxlIGFzIERhdGFUYWJsZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUmVzcG9uc2UsIE5vZGUsIEVkZ2UsIFBhdGggfSBmcm9tICcuL3Jlc3BvbnNlJztcblxuLyoqXG4gKiBQcmludCBub2RlcyBpbiB0YWJ1bGFyIGZvcm1hdCBncm91cGVkIGJ5IHNjaGVtYS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50Tm9kZXMobm9kZXM6IE5vZGVbXSwgc2NoZW1hcz86IE1hcDxzdHJpbmcsIFNjaGVtYT4pOiBzdHJpbmcge1xuICBpZiAoIW5vZGVzIHx8IG5vZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnTm8gbm9kZXMgZm91bmQuJztcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGxhc3RTY2hlbWE6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgbGV0IGN1cnJlbnRUYWJsZTogQ2xpVGFibGUuVGFibGUgfCBudWxsID0gbnVsbDtcblxuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICBpZiAoIW5vZGUpIGNvbnRpbnVlO1xuXG4gICAgY29uc3Qgc2NoZW1hTmFtZSA9IG5vZGUubGFiZWxzLmxlbmd0aCA+IDAgPyBub2RlLmxhYmVsc1swXSA6ICcnO1xuXG4gICAgaWYgKGxhc3RTY2hlbWEgPT09IHVuZGVmaW5lZCB8fCBzY2hlbWFOYW1lICE9PSBsYXN0U2NoZW1hKSB7XG4gICAgICBpZiAoY3VycmVudFRhYmxlKSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKGN1cnJlbnRUYWJsZS50b1N0cmluZygpKTtcbiAgICAgICAgcmVzdWx0LnB1c2goJycpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBoZWFkZXJzID0gWydJRCcsICdMYWJlbHMnXTtcbiAgICAgIGlmIChzY2hlbWFzICYmIHNjaGVtYXMuaGFzKHNjaGVtYU5hbWUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBzY2hlbWFzLmdldChzY2hlbWFOYW1lKSEucHJvcGVydGllcykge1xuICAgICAgICAgIGhlYWRlcnMucHVzaChwcm9wLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJzLnB1c2goLi4uT2JqZWN0LmtleXMobm9kZS5wcm9wZXJ0aWVzKSk7XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRUYWJsZSA9IG5ldyBDbGlUYWJsZSh7IGhlYWQ6IGhlYWRlcnMgfSkgYXMgQ2xpVGFibGUuVGFibGU7XG4gICAgICBsYXN0U2NoZW1hID0gc2NoZW1hTmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCByb3c6IHN0cmluZ1tdID0gW25vZGUuaWQsIGZvcm1hdExhYmVscyhub2RlLmxhYmVscyldO1xuICAgIGlmIChzY2hlbWFzICYmIHNjaGVtYXMuaGFzKHNjaGVtYU5hbWUpKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NoZW1hcy5nZXQoc2NoZW1hTmFtZSkhLnByb3BlcnRpZXMpIHtcbiAgICAgICAgcm93LnB1c2goZm9ybWF0VmFsdWUobm9kZS5wcm9wZXJ0aWVzW3Byb3AubmFtZV0pKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobm9kZS5wcm9wZXJ0aWVzKSkge1xuICAgICAgICByb3cucHVzaChmb3JtYXRWYWx1ZShub2RlLnByb3BlcnRpZXNba2V5XSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGN1cnJlbnRUYWJsZSEucHVzaChyb3cpO1xuICB9XG5cbiAgaWYgKGN1cnJlbnRUYWJsZSkge1xuICAgIHJlc3VsdC5wdXNoKGN1cnJlbnRUYWJsZS50b1N0cmluZygpKTtcbiAgfVxuXG4gIHJlc3VsdC5wdXNoKGBcXG4ke25vZGVzLmxlbmd0aH0gbm9kZShzKWApO1xuICByZXR1cm4gcmVzdWx0LmpvaW4oJ1xcbicpO1xufVxuXG4vKipcbiAqIFByaW50IG5vZGVzIGRlcml2aW5nIHNjaGVtYSBmcm9tIGRhdGEuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludE5vZGVzV2l0aG91dFNjaGVtYShub2RlczogTm9kZVtdKTogc3RyaW5nIHtcbiAgaWYgKCFub2RlcyB8fCBub2Rlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJ05vIG5vZGVzIGZvdW5kLic7XG4gIH1cblxuICBjb25zdCBzY2hlbWFzID0gbmV3IE1hcDxzdHJpbmcsIFNjaGVtYT4oKTtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgaWYgKCFub2RlKSBjb250aW51ZTtcbiAgICBmb3IgKGNvbnN0IGxhYmVsIG9mIG5vZGUubGFiZWxzKSB7XG4gICAgICBpZiAoIXNjaGVtYXMuaGFzKGxhYmVsKSkge1xuICAgICAgICBzY2hlbWFzLnNldChsYWJlbCwgYnVpbGRTY2hlbWFGcm9tTm9kZShsYWJlbCwgbm9kZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwcmludE5vZGVzKG5vZGVzLCBzY2hlbWFzKTtcbn1cblxuLyoqXG4gKiBQcmludCBlZGdlcyBpbiB0YWJ1bGFyIGZvcm1hdCBncm91cGVkIGJ5IHNjaGVtYS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50RWRnZXMoZWRnZXM6IEVkZ2VbXSwgc2NoZW1hcz86IE1hcDxzdHJpbmcsIFNjaGVtYT4pOiBzdHJpbmcge1xuICBpZiAoIWVkZ2VzIHx8IGVkZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnTm8gZWRnZXMgZm91bmQuJztcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGxhc3RTY2hlbWE6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgbGV0IGN1cnJlbnRUYWJsZTogQ2xpVGFibGUuVGFibGUgfCBudWxsID0gbnVsbDtcblxuICBmb3IgKGNvbnN0IGVkZ2Ugb2YgZWRnZXMpIHtcbiAgICBpZiAoIWVkZ2UpIGNvbnRpbnVlO1xuXG4gICAgY29uc3Qgc2NoZW1hTmFtZSA9IGVkZ2UubGFiZWw7XG5cbiAgICBpZiAobGFzdFNjaGVtYSA9PT0gdW5kZWZpbmVkIHx8IHNjaGVtYU5hbWUgIT09IGxhc3RTY2hlbWEpIHtcbiAgICAgIGlmIChjdXJyZW50VGFibGUpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goY3VycmVudFRhYmxlLnRvU3RyaW5nKCkpO1xuICAgICAgICByZXN1bHQucHVzaCgnJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBbJ0lEJywgJ0ZST00nLCAnVE8nLCAnTGFiZWwnXTtcbiAgICAgIGlmIChzY2hlbWFzICYmIHNjaGVtYXMuaGFzKHNjaGVtYU5hbWUpKSB7XG4gICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBzY2hlbWFzLmdldChzY2hlbWFOYW1lKSEucHJvcGVydGllcykge1xuICAgICAgICAgIGhlYWRlcnMucHVzaChwcm9wLm5hbWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBoZWFkZXJzLnB1c2goLi4uT2JqZWN0LmtleXMoZWRnZS5wcm9wZXJ0aWVzKSk7XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRUYWJsZSA9IG5ldyBDbGlUYWJsZSh7IGhlYWQ6IGhlYWRlcnMgfSkgYXMgQ2xpVGFibGUuVGFibGU7XG4gICAgICBsYXN0U2NoZW1hID0gc2NoZW1hTmFtZTtcbiAgICB9XG5cbiAgICBjb25zdCByb3c6IHN0cmluZ1tdID0gW2VkZ2UuaWQsIGVkZ2UuZnJvbU5vZGVJZCwgZWRnZS50b05vZGVJZCwgZWRnZS5sYWJlbF07XG4gICAgaWYgKHNjaGVtYXMgJiYgc2NoZW1hcy5oYXMoc2NoZW1hTmFtZSkpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBzY2hlbWFzLmdldChzY2hlbWFOYW1lKSEucHJvcGVydGllcykge1xuICAgICAgICByb3cucHVzaChmb3JtYXRWYWx1ZShlZGdlLnByb3BlcnRpZXNbcHJvcC5uYW1lXSkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhlZGdlLnByb3BlcnRpZXMpKSB7XG4gICAgICAgIHJvdy5wdXNoKGZvcm1hdFZhbHVlKGVkZ2UucHJvcGVydGllc1trZXldKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY3VycmVudFRhYmxlIS5wdXNoKHJvdyk7XG4gIH1cblxuICBpZiAoY3VycmVudFRhYmxlKSB7XG4gICAgcmVzdWx0LnB1c2goY3VycmVudFRhYmxlLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgcmVzdWx0LnB1c2goYFxcbiR7ZWRnZXMubGVuZ3RofSBlZGdlKHMpYCk7XG4gIHJldHVybiByZXN1bHQuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogUHJpbnQgZWRnZXMgZGVyaXZpbmcgc2NoZW1hIGZyb20gZGF0YS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50RWRnZXNXaXRob3V0U2NoZW1hKGVkZ2VzOiBFZGdlW10pOiBzdHJpbmcge1xuICBpZiAoIWVkZ2VzIHx8IGVkZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAnTm8gZWRnZXMgZm91bmQuJztcbiAgfVxuXG4gIGNvbnN0IHNjaGVtYXMgPSBuZXcgTWFwPHN0cmluZywgU2NoZW1hPigpO1xuICBmb3IgKGNvbnN0IGVkZ2Ugb2YgZWRnZXMpIHtcbiAgICBpZiAoIWVkZ2UpIGNvbnRpbnVlO1xuICAgIGlmIChlZGdlLmxhYmVsICYmICFzY2hlbWFzLmhhcyhlZGdlLmxhYmVsKSkge1xuICAgICAgc2NoZW1hcy5zZXQoZWRnZS5sYWJlbCwgYnVpbGRTY2hlbWFGcm9tRWRnZShlZGdlLmxhYmVsLCBlZGdlKSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHByaW50RWRnZXMoZWRnZXMsIHNjaGVtYXMpO1xufVxuXG4vKipcbiAqIFByaW50IHBhdGhzIHdpdGggbm9kZS1lZGdlIHNlcXVlbmNlIG5vdGF0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRQYXRocyhwYXRoczogUGF0aFtdKTogc3RyaW5nIHtcbiAgaWYgKCFwYXRocyB8fCBwYXRocy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJ05vIHBhdGhzIGZvdW5kLic7XG4gIH1cblxuICBjb25zdCB0YWJsZSA9IG5ldyBDbGlUYWJsZSh7IGhlYWQ6IFsnIycsICdQYXRoJ10gfSkgYXMgQ2xpVGFibGUuVGFibGU7XG5cbiAgcGF0aHMuZm9yRWFjaCgocGF0aCwgaSkgPT4ge1xuICAgIGlmICghcGF0aCkgcmV0dXJuO1xuICAgIHRhYmxlLnB1c2goW1N0cmluZyhpKSwgZm9ybWF0UGF0aChwYXRoKV0pO1xuICB9KTtcblxuICByZXR1cm4gdGFibGUudG9TdHJpbmcoKSArIGBcXG4ke3BhdGhzLmxlbmd0aH0gcGF0aChzKWA7XG59XG5cbi8qKlxuICogUHJpbnQgZ2VuZXJpYyB0YWJsZSBkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRUYWJsZShkYXRhVGFibGU6IERhdGFUYWJsZSk6IHN0cmluZyB7XG4gIGlmICghZGF0YVRhYmxlIHx8ICFkYXRhVGFibGUuaGVhZGVycyB8fCBkYXRhVGFibGUuaGVhZGVycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJ05vIHRhYmxlIGRhdGEuJztcbiAgfVxuXG4gIGNvbnN0IGhlYWRlcnMgPSBkYXRhVGFibGUuaGVhZGVycy5tYXAoKGg6IHsgbmFtZTogc3RyaW5nIH0pID0+IGgubmFtZSk7XG4gIGNvbnN0IGNsaVRhYmxlID0gbmV3IENsaVRhYmxlKHsgaGVhZDogaGVhZGVycyB9KSBhcyBDbGlUYWJsZS5UYWJsZTtcblxuICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhVGFibGUucm93cykge1xuICAgIGNsaVRhYmxlLnB1c2gocm93Lm1hcCgodjogdW5rbm93bikgPT4gZm9ybWF0VmFsdWUodikpKTtcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogc3RyaW5nW10gPSBbXTtcbiAgaWYgKGRhdGFUYWJsZS5uYW1lKSB7XG4gICAgcmVzdWx0LnB1c2goYFRhYmxlOiAke2RhdGFUYWJsZS5uYW1lfWApO1xuICB9XG4gIHJlc3VsdC5wdXNoKGNsaVRhYmxlLnRvU3RyaW5nKCkpO1xuICByZXN1bHQucHVzaChgXFxuJHtkYXRhVGFibGUucm93cy5sZW5ndGh9IHJvdyhzKWApO1xuXG4gIHJldHVybiByZXN1bHQuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogQXV0by1kZXRlY3QgdHlwZSBmcm9tIFJlc3BvbnNlIGFuZCBwcmludCBhY2NvcmRpbmdseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByaW50QW55KHJlc3A6IFJlc3BvbnNlKTogc3RyaW5nIHtcbiAgaWYgKCFyZXNwIHx8IHJlc3AuaXNFbXB0eSgpKSB7XG4gICAgcmV0dXJuICdObyBkYXRhLic7XG4gIH1cblxuICAvLyBUcnkgdG8gYXV0by1kZXRlY3QgdGhlIHR5cGUgZnJvbSB0aGUgZmlyc3QgY29sdW1uXG4gIGlmIChyZXNwLmNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhciA9IHJlc3AuZ2V0KDApO1xuXG4gICAgICAvLyBUcnkgZWRnZXMgZmlyc3RcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgZWRnZXMsIHNjaGVtYXMgfSA9IGFyLmFzRWRnZXMoKTtcbiAgICAgICAgaWYgKGVkZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXR1cm4gcHJpbnRFZGdlcyhlZGdlcywgc2NoZW1hcyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gTm90IGVkZ2VzLCBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBUcnkgbm9kZXNcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgbm9kZXMsIHNjaGVtYXMgfSA9IGFyLmFzTm9kZXMoKTtcbiAgICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXR1cm4gcHJpbnROb2Rlcyhub2Rlcywgc2NoZW1hcyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gTm90IG5vZGVzLCBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICAvLyBUcnkgcGF0aHNcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhdGhzID0gYXIuYXNQYXRocygpO1xuICAgICAgICBpZiAocGF0aHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiBwcmludFBhdGhzKHBhdGhzKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBOb3QgcGF0aHMsIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gRmFsbCB0aHJvdWdoIHRvIHRhYmxlXG4gICAgfVxuICB9XG5cbiAgLy8gRmFsbGJhY2sgdG8gdGFibGUgZm9ybWF0ICh1c2UgZGVwcmVjYXRlZCBtZXRob2QgZm9yIG11bHRpLWNvbHVtbiBkaXNwbGF5KVxuICByZXR1cm4gcHJpbnRUYWJsZShyZXNwLmFzVGFibGUoKSk7XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbnNcblxuZnVuY3Rpb24gZm9ybWF0TGFiZWxzKGxhYmVsczogc3RyaW5nW10pOiBzdHJpbmcge1xuICBpZiAoIWxhYmVscyB8fCBsYWJlbHMubGVuZ3RoID09PSAwKSByZXR1cm4gJyc7XG4gIHJldHVybiAnWycgKyBsYWJlbHMuam9pbignLCAnKSArICddJztcbn1cblxuZnVuY3Rpb24gZm9ybWF0VmFsdWUodjogYW55KTogc3RyaW5nIHtcbiAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJzxuaWw+JztcbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICByZXR1cm4gJ1snICsgdi5tYXAoZm9ybWF0VmFsdWUpLmpvaW4oJywgJykgKyAnXSc7XG4gIH1cbiAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHBhcnRzID0gT2JqZWN0LmVudHJpZXModikubWFwKChbaywgdmFsXSkgPT4gYCR7a306ICR7Zm9ybWF0VmFsdWUodmFsKX1gKTtcbiAgICByZXR1cm4gJ3snICsgcGFydHMuam9pbignLCAnKSArICd9JztcbiAgfVxuICByZXR1cm4gU3RyaW5nKHYpO1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQYXRoKHBhdGg6IFBhdGgpOiBzdHJpbmcge1xuICBpZiAoIXBhdGgpIHJldHVybiAnPG5pbD4nO1xuXG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBsZXQgbm9kZUlkeCA9IDA7XG4gIGxldCBlZGdlSWR4ID0gMDtcblxuICB3aGlsZSAobm9kZUlkeCA8IHBhdGgubm9kZXMubGVuZ3RoIHx8IGVkZ2VJZHggPCBwYXRoLmVkZ2VzLmxlbmd0aCkge1xuICAgIGlmIChub2RlSWR4IDwgcGF0aC5ub2Rlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBwYXRoLm5vZGVzW25vZGVJZHhdO1xuICAgICAgY29uc3QgbGFiZWwgPSBub2RlLmxhYmVscy5sZW5ndGggPiAwID8gJzonICsgbm9kZS5sYWJlbHNbMF0gOiAnJztcbiAgICAgIHBhcnRzLnB1c2goYCgke25vZGUuaWR9JHtsYWJlbH0pYCk7XG4gICAgICBub2RlSWR4Kys7XG4gICAgfVxuICAgIGlmIChlZGdlSWR4IDwgcGF0aC5lZGdlcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGVkZ2UgPSBwYXRoLmVkZ2VzW2VkZ2VJZHhdO1xuICAgICAgcGFydHMucHVzaChgLVske2VkZ2UuaWR9OiR7ZWRnZS5sYWJlbH1dLT5gKTtcbiAgICAgIGVkZ2VJZHgrKztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFydHMuam9pbignICcpO1xufVxuXG5mdW5jdGlvbiBjb250YWluc0FueShhcnI6IHN0cmluZ1tdLCAuLi5pdGVtczogc3RyaW5nW10pOiBib29sZWFuIHtcbiAgcmV0dXJuIGFyci5zb21lKHMgPT4gaXRlbXMuaW5jbHVkZXMocykpO1xufVxuXG5mdW5jdGlvbiBidWlsZFNjaGVtYUZyb21Ob2RlKGxhYmVsOiBzdHJpbmcsIG5vZGU6IE5vZGUpOiBTY2hlbWEge1xuICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmVudHJpZXMobm9kZS5wcm9wZXJ0aWVzKS5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7XG4gICAgbmFtZSxcbiAgICB0eXBlOiBpbmZlclByb3BlcnR5VHlwZSh2YWx1ZSksXG4gIH0pKTtcbiAgcmV0dXJuIHsgbmFtZTogbGFiZWwsIHByb3BlcnRpZXMgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRTY2hlbWFGcm9tRWRnZShsYWJlbDogc3RyaW5nLCBlZGdlOiBFZGdlKTogU2NoZW1hIHtcbiAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5lbnRyaWVzKGVkZ2UucHJvcGVydGllcykubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgIG5hbWUsXG4gICAgdHlwZTogaW5mZXJQcm9wZXJ0eVR5cGUodmFsdWUpLFxuICB9KSk7XG4gIHJldHVybiB7IG5hbWU6IGxhYmVsLCBwcm9wZXJ0aWVzIH07XG59XG5cbmZ1bmN0aW9uIGluZmVyUHJvcGVydHlUeXBlKHZhbHVlOiBhbnkpOiBQcm9wZXJ0eVR5cGUge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIFByb3BlcnR5VHlwZS5OVUxMO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHJldHVybiBQcm9wZXJ0eVR5cGUuQk9PTDtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgPyBQcm9wZXJ0eVR5cGUuSU5UNjQgOiBQcm9wZXJ0eVR5cGUuRE9VQkxFO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gUHJvcGVydHlUeXBlLlNUUklORztcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcih2YWx1ZSkpIHJldHVybiBQcm9wZXJ0eVR5cGUuQkxPQjtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4gUHJvcGVydHlUeXBlLkxJU1Q7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSByZXR1cm4gUHJvcGVydHlUeXBlLk1BUDtcbiAgcmV0dXJuIFByb3BlcnR5VHlwZS5VTlNFVDtcbn1cbiJdfQ==