monkey-front-core 0.0.618 → 0.0.619

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.
@@ -64,6 +64,10 @@ export class MonkeyEcxUtils {
64
64
  MX: {
65
65
  CPF: CountryMasks.RFC1,
66
66
  CNPJ: CountryMasks.RFC2
67
+ },
68
+ US: {
69
+ CPF: CountryMasks.EIN,
70
+ CNPJ: CountryMasks.EIN
67
71
  }
68
72
  }[country.toUpperCase()]?.[type];
69
73
  }
@@ -583,4 +587,4 @@ export function base64ToBuffer(base64) {
583
587
  }
584
588
  return bytes.buffer;
585
589
  }
586
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLDRCQUE0QjtBQUM1QixzQ0FBc0M7QUFDdEMsZ0NBQWdDO0FBQ2hDLG1DQUFtQztBQUNuQywyQkFBMkI7QUFDM0IsaUNBQWlDO0FBQ2pDLGdDQUFnQztBQUNoQywyQkFBMkI7QUFFM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLHFDQUFxQztBQUNyQyxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUN0QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVcsRUFBRSxPQUFnQjtRQUNsRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxLQUFLLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuQyxJQUFJLE9BQU8sS0FBSyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbkMsSUFBSSxPQUFPLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7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QU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRztZQUNqQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxHQUFHLEVBQUUsRUFBRTtZQUNQLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxD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QyxJQUFJLEVBQUUsQ0FBQztRQUVqRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLGFBQWEsR0FBRztZQUNwQixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0os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SyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkM7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLWRhbmdsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdXNlbGVzcy1lc2NhcGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBsdXNwbHVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZWRlY2xhcmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIHZhcnMtb24tdG9wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12YXIgKi9cblxuaW1wb3J0IHsgZGF0YWRvZ0xvZ3MgfSBmcm9tICdAZGF0YWRvZy9icm93c2VyLWxvZ3MnO1xuaW1wb3J0IHsgQ05QSlZhbGlkYXRvciB9IGZyb20gJy4vQ05QSic7XG5pbXBvcnQgeyBDUEZWYWxpZGF0b3IgfSBmcm9tICcuL0NQRic7XG5pbXBvcnQgeyBDb3VudHJ5TWFza3MgfSBmcm9tICcuL3N0YXRpY3MnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBibG9jay1zY29wZWQtdmFyICovXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4VXRpbHMge1xuICBzdGF0aWMgcGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh0cDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRwICE9PSBudWxsICYmIHRwICE9PSB1bmRlZmluZWQgJiYgdHAgIT09ICcnO1xuICB9XG5cbiAgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZywgY291bnRyeT86IHN0cmluZykge1xuICAgIGlmICghZG9jKSByZXR1cm4gJyc7XG4gICAgaWYgKGNvdW50cnkgPT09ICdjbCcpIHJldHVybiAnUlVUJztcbiAgICBpZiAoY291bnRyeSA9PT0gJ214JykgcmV0dXJuICdSRkMnO1xuICAgIGlmIChjb3VudHJ5ID09PSAndXMnKSByZXR1cm4gJ0VJTic7XG4gICAgcmV0dXJuIGRvYy5sZW5ndGggPD0gMTEgPyAnQ1BGJyA6ICdDTlBKJztcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudE1hc2sodHlwZTogc3RyaW5nLCBjb3VudHJ5ID0gJycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgQlI6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuQ1BGLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuQ05QSixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5DUEZ9fHwke0NvdW50cnlNYXNrcy5DTlBKfWBcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6IENvdW50cnlNYXNrcy5SVVQxLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuUlVUMixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5SVVQxfXx8JHtDb3VudHJ5TWFza3MuUlVUMn1gXG4gICAgICB9LFxuICAgICAgTVg6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuUkZDMSxcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLlJGQzIsXG4gICAgICAgICcnOiBgJHtDb3VudHJ5TWFza3MuUkZDMX18fCR7Q291bnRyeU1hc2tzLlJGQzJ9YFxuICAgICAgfSxcbiAgICAgIFVTOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgJyc6IENvdW50cnlNYXNrcy5FSU5cbiAgICAgIH1cbiAgICB9W2NvdW50cnkudG9VcHBlckNhc2UoKV0/Llt0eXBlXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudFBsYWNlaG9sZGVyKHR5cGU6IHN0cmluZywgY291bnRyeSA9ICcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEJSOiB7XG4gICAgICAgIENQRjogJzAwMC4wMDAuMDAwLVhYJyxcbiAgICAgICAgQ05QSjogJzAwLjAwMC4wMDAvMDAwMC0wMCdcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6ICcwMDAwMDAwLUEnLFxuICAgICAgICBDTlBKOiAnMDAwMDAwMC1BJ1xuICAgICAgfSxcbiAgICAgIE1YOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLlJGQzEsXG4gICAgICAgIENOUEo6IENvdW50cnlNYXNrcy5SRkMyXG4gICAgICB9XG4gICAgfVtjb3VudHJ5LnRvVXBwZXJDYXNlKCldPy5bdHlwZV07XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0RG9jdW1lbnRXaXRoTWFzayhkb2M6IHN0cmluZywgd2l0aFR5cGU/OiBib29sZWFuLCBjb3VudHJ5Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRvYykgcmV0dXJuIGRvYztcbiAgICBsZXQgZm9ybWF0ZWQ6IHN0cmluZyA9ICcnO1xuICAgIGlmIChjb3VudHJ5ID09PSAnY2wnKSB7XG4gICAgICBmb3JtYXRlZCA9IGRvYy5yZXBsYWNlKC9eKFxcZHsxLDJ9KShcXGR7M30pKFxcZHszfSkoXFx3ezF9KSQvLCAnJDEuJDIuJDMtJDQnKTtcbiAgICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xuICAgIH1cbiAgICBpZiAoY291bnRyeSA9PT0gJ3VzJykge1xuICAgICAgZm9ybWF0ZWQgPSBkb2MucmVwbGFjZSgvXihcXGR7Mn0pKFxcZHs3fSkkLywgJyQxLSQyJyk7XG4gICAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgICB9XG4gICAgaWYgKGRvYy5sZW5ndGggPT09IDE0KSB7XG4gICAgICBjb25zdCBjbGVhbmVkID0gZG9jLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykudG9VcHBlckNhc2UoKTtcblxuICAgICAgZm9ybWF0ZWQgPSBjbGVhbmVkXG4gICAgICAgIC5yZXBsYWNlKC9eKFtBLVowLTldezJ9KShbQS1aMC05XSkvLCAnJDEuJDInKVxuICAgICAgICAucmVwbGFjZSgvXihbQS1aMC05XXsyfSlcXC4oW0EtWjAtOV17M30pKFtBLVowLTldKS8sICckMS4kMi4kMycpXG4gICAgICAgIC5yZXBsYWNlKC9cXC4oXFx3ezN9KShcXHcpLywgJy4kMS8kMicpXG4gICAgICAgIC5yZXBsYWNlKC8oXFxkezR9KShcXGQpLywgJyQxLSQyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdGVkID0gZG9jXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSlcXC4oXFxkezN9KShcXGQpLywgJyQxLiQyLiQzJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dpdGhUeXBlID8gYCR7dGhpcy5nZXREb2N1bWVudFR5cGUoZG9jKX06YCA6ICcnfSAke2Zvcm1hdGVkfWA7XG4gIH1cblxuICBzdGF0aWMgY3V0Rmlyc3RMYXN0TmFtZSh2YWx1ZTogc3RyaW5nLCB0cDogc3RyaW5nID0gJ2ZpcnN0Jykge1xuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnRyaW0oKT8uc3BsaXQoJyAnKTtcblxuICAgIGlmICh0cCA9PT0gJ2ZpcnN0JykgcmV0dXJuIHNwbGl0WzBdO1xuICAgIHJldHVybiBzcGxpdD8uc3BsaWNlKDEsIHNwbGl0Lmxlbmd0aCk/LmpvaW4oJyAnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0NQRkNOUEpWYWxpZChkb2N1bWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgZG9jdW1lbnQgPSBkb2N1bWVudC5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xuXG4gICAgY29uc3QgaGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UobmV3IFJlZ0V4cChkb2N1bWVudC5jaGFyQXQoMCksICdnJyksICcnKTtcbiAgICBpZiAoIWhhbmRsZWQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDExKSB7XG4gICAgICBsZXQgYmFzZSA9IFsxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCA5OyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbOV0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgYmFzZSA9IFsxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDk7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pIDtcbiAgICAgIGlmIChkb2N1bWVudFsxMF0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDE0IHx8IC8wezE0fS8udGVzdChkb2N1bWVudCkpIHtcbiAgICAgIGNvbnN0IGJhc2UgPSBbNiwgNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSkgO1xuICAgICAgaWYgKGRvY3VtZW50WzEyXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDEyOyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbMTNdICE9ICgobiAlPSAxMSkgPCAyID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGlzQ1BGQWxwaGFudW1lcmljQ05QSlZhbGlkKGRvY3VtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBkb2N1bWVudCA9IGRvY3VtZW50LnJlcGxhY2UoL1suLy1dL2csICcnKTtcblxuICAgIGNvbnN0IGhhbmRsZWQgPSBkb2N1bWVudC5yZXBsYWNlKG5ldyBSZWdFeHAoZG9jdW1lbnQuY2hhckF0KDApLCAnZycpLCAnJyk7XG4gICAgaWYgKCFoYW5kbGVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxMSkge1xuICAgICAgcmV0dXJuIENQRlZhbGlkYXRvci5pc1ZhbGlkKGRvY3VtZW50KTtcbiAgICB9XG4gICAgaWYgKGRvY3VtZW50Lmxlbmd0aCA9PT0gMTQgfHwgLzB7MTR9Ly50ZXN0KGRvY3VtZW50KSkge1xuICAgICAgcmV0dXJuIENOUEpWYWxpZGF0b3IuaXNWYWxpZChkb2N1bWVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFJVVChkb2N1bWVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkb2N1bWVudCB8fCBkb2N1bWVudC50cmltKCkubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGRvY3VtZW50SGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UoL1teMC05a0tdL2csICcnKTtcblxuICAgIGlmIChkb2N1bWVudEhhbmRsZWQubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgY2FsY0R2ID0gKHJ1dDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gYCR7cnV0fWA7XG4gICAgICBsZXQgc3VtID0gMDtcbiAgICAgIGxldCBtdWx0ID0gMjtcblxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBtdWx0ICogTnVtYmVyKHZhbHVlLmNoYXJBdCh2YWx1ZS5sZW5ndGggLSBpKSk7XG5cbiAgICAgICAgc3VtICs9IGluZGV4O1xuXG4gICAgICAgIGlmIChtdWx0IDwgNykge1xuICAgICAgICAgIG11bHQgKz0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtdWx0ID0gMjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkdkVzcGVyYWRvID0gMTEgLSAoc3VtICUgMTEpO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDEwKSByZXR1cm4gJ0snO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDExKSByZXR1cm4gJzAnO1xuICAgICAgcmV0dXJuIGAke2R2RXNwZXJhZG99YDtcbiAgICB9O1xuXG4gICAgY29uc3QgbnVtID0gZG9jdW1lbnRIYW5kbGVkLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBkZ3YgPSBkb2N1bWVudEhhbmRsZWQuc2xpY2UoLTEpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICBjb25zdCBkdkNhbGMgPSBjYWxjRHYobnVtKTtcbiAgICByZXR1cm4gZHZDYWxjID09PSBkZ3Y7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRSRkMoZG9jdW1lbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IFJGQ19SRUdFWFAgPSAvXihbQS1aw5FcXHgyNl17Myw0fSkoWzAtOV17Nn0pKFtBLVowLTldezN9KSQvO1xuICAgIGNvbnN0IFNQRUNJQUxfQ0FTRVMgPSB7XG4gICAgICBYRVhYMDEwMTAxMDAwOiAnZm9yZWlnbicsXG4gICAgICBYQVhYMDEwMTAxMDAwOiAnZ2VuZXJpYydcbiAgICB9O1xuICAgIGNvbnN0IEZPUkJJRERFTl9XT1JEUyA9IFtcbiAgICAgICdCVUVJJyxcbiAgICAgICdCVUVZJyxcbiAgICAgICdDQUNBJyxcbiAgICAgICdDQUNPJyxcbiAgICAgICdDQUdBJyxcbiAgICAgICdDQUdPJyxcbiAgICAgICdDQUtBJyxcbiAgICAgICdDQUtPJyxcbiAgICAgICdDT0dFJyxcbiAgICAgICdDT0pBJyxcbiAgICAgICdDT0pFJyxcbiAgICAgICdDT0pJJyxcbiAgICAgICdDT0pPJyxcbiAgICAgICdDVUxPJyxcbiAgICAgICdGRVRPJyxcbiAgICAgICdHVUVZJyxcbiAgICAgICdKT1RPJyxcbiAgICAgICdLQUNBJyxcbiAgICAgICdLQUNPJyxcbiAgICAgICdLQUdBJyxcbiAgICAgICdLQUdPJyxcbiAgICAgICdLT0dFJyxcbiAgICAgICdLT0pPJyxcbiAgICAgICdLQUtBJyxcbiAgICAgICdLVUxPJyxcbiAgICAgICdNQU1FJyxcbiAgICAgICdNQU1PJyxcbiAgICAgICdNRUFSJyxcbiAgICAgICdNRUFTJyxcbiAgICAgICdNRU9OJyxcbiAgICAgICdNSU9OJyxcbiAgICAgICdNT0NPJyxcbiAgICAgICdNVUxBJyxcbiAgICAgICdQRURBJyxcbiAgICAgICdQRURPJyxcbiAgICAgICdQRU5FJyxcbiAgICAgICdQVVRBJyxcbiAgICAgICdQVVRPJyxcbiAgICAgICdRVUxPJyxcbiAgICAgICdSQVRBJyxcbiAgICAgICdSVUlOJ1xuICAgIF07XG5cbiAgICBjb25zdCBWQUxVRVNfTUFQID0ge1xuICAgICAgMDogMCxcbiAgICAgIDE6IDEsXG4gICAgICAyOiAyLFxuICAgICAgMzogMyxcbiAgICAgIDQ6IDQsXG4gICAgICA1OiA1LFxuICAgICAgNjogNixcbiAgICAgIDc6IDcsXG4gICAgICA4OiA4LFxuICAgICAgOTogOSxcbiAgICAgIEE6IDEwLFxuICAgICAgQjogMTEsXG4gICAgICBDOiAxMixcbiAgICAgIEQ6IDEzLFxuICAgICAgRTogMTQsXG4gICAgICBGOiAxNSxcbiAgICAgIEc6IDE2LFxuICAgICAgSDogMTcsXG4gICAgICBJOiAxOCxcbiAgICAgIEo6IDE5LFxuICAgICAgSzogMjAsXG4gICAgICBMOiAyMSxcbiAgICAgIE06IDIyLFxuICAgICAgTjogMjMsXG4gICAgICAnJic6IDI0LFxuICAgICAgTzogMjUsXG4gICAgICBQOiAyNixcbiAgICAgIFE6IDI3LFxuICAgICAgUjogMjgsXG4gICAgICBTOiAyOSxcbiAgICAgIFQ6IDMwLFxuICAgICAgVTogMzEsXG4gICAgICBWOiAzMixcbiAgICAgIFc6IDMzLFxuICAgICAgWDogMzQsXG4gICAgICBZOiAzNSxcbiAgICAgIFo6IDM2LFxuICAgICAgJyAnOiAzNyxcbiAgICAgIMOROiAzOFxuICAgIH07XG5cbiAgICBjb25zdCBnZXRTY29yZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGRvYy5zcGxpdCgnJykucmV2ZXJzZSgpLnJlZHVjZSgoc3VtLCBjaGFyLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaSArIDI7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gVkFMVUVTX01BUFtjaGFyXSB8fCAwO1xuICAgICAgICByZXR1cm4gc3VtICsgdmFsdWUgKiBpbmRleDtcbiAgICAgIH0sIDApO1xuICAgIH07XG5cbiAgICBjb25zdCBwYXJzZUlucHV0ID0gKGRvYzogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gU3RyaW5nKGRvYylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAudG9VcHBlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW14wLTlBLVrDkVxceDI2XS9nLCAnJyk7XG4gICAgfTtcblxuICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IGRvYy5zbGljZSgwLCAtMykuc2xpY2UoLTYpO1xuICAgICAgY29uc3QgeWVhciA9IGRhdGVTdHIuc2xpY2UoMCwgMik7XG4gICAgICBjb25zdCBtb250aCA9IGRhdGVTdHIuc2xpY2UoMiwgNCk7XG4gICAgICBjb25zdCBkYXkgPSBkYXRlU3RyLnNsaWNlKDQsIDYpO1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGAyMCR7eWVhcn0tJHttb250aH0tJHtkYXl9YCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgICByZXR1cm4gIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsaWRhdGVWZXJpZmljYXRpb25EaWdpdCA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGlnaXQgPSBkb2Muc2xpY2UoLTEpO1xuICAgICAgY29uc3QgcmZjID0gZG9jLmxlbmd0aCA9PT0gMTIgPyBgICR7ZG9jfWAgOiBkb2M7XG4gICAgICBjb25zdCBiYXNlID0gcmZjLnNsaWNlKDAsIC0xKTtcbiAgICAgIGNvbnN0IHNjb3JlID0gZ2V0U2NvcmUoYmFzZSk7XG4gICAgICBjb25zdCBtb2QgPSAoMTEwMDAgLSBzY29yZSkgJSAxMTtcbiAgICAgIGlmIChtb2QgPT09IDExKSByZXR1cm4gZGlnaXQgPT09ICcwJztcbiAgICAgIGlmIChtb2QgPT09IDEwKSByZXR1cm4gZGlnaXQgPT09ICdBJztcbiAgICAgIHJldHVybiBTdHJpbmcobW9kKSA9PT0gZGlnaXQ7XG4gICAgfTtcblxuICAgIGNvbnN0IGlzU3BlY2lhbENhc2UgPSAoZG9jOiBzdHJpbmcpID0+IHsgcmV0dXJuIGRvYyBpbiBTUEVDSUFMX0NBU0VTOyB9O1xuXG4gICAgY29uc3QgaGFzRm9yYmlkZGVuV29yZHMgPSAoZG9jOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IChkb2MgfHwgJycpLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIEZPUkJJRERFTl9XT1JEUy5pbmNsdWRlcyhwcmVmaXgpO1xuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5wdXQgPSBwYXJzZUlucHV0KGRvY3VtZW50KTtcblxuICAgICAgaWYgKGlzU3BlY2lhbENhc2UoaW5wdXQpKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZEZvcm1hdCA9IFJGQ19SRUdFWFAudGVzdChpbnB1dCk7XG4gICAgICBpZiAoIWhhc1ZhbGlkRm9ybWF0KSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZERhdGUgPSB2YWxpZGF0ZURhdGUoaW5wdXQpO1xuICAgICAgaWYgKCFoYXNWYWxpZERhdGUpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGhhc1ZhbGlkRGlnaXQgPSB2YWxpZGF0ZVZlcmlmaWNhdGlvbkRpZ2l0KGlucHV0KTtcbiAgICAgIGlmICghaGFzVmFsaWREaWdpdCkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKGhhc0ZvcmJpZGRlbldvcmRzKGlucHV0KSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3QgdG8gZG9cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRFSU4oZWluOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGVhbmVkRUlOID0gZWluPy5yZXBsYWNlKC9cXEQvZywgJycpIHx8ICcnO1xuXG4gICAgaWYgKGNsZWFuZWRFSU4ubGVuZ3RoICE9PSA5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRQcmVmaXhlcyA9IFtcbiAgICAgICcxMCcsXG4gICAgICAnMTInLFxuICAgICAgJzYwJyxcbiAgICAgICc2NycsXG4gICAgICAnNTAnLFxuICAgICAgJzUzJyxcbiAgICAgICcwMScsXG4gICAgICAnMDInLFxuICAgICAgJzAzJyxcbiAgICAgICcwNCcsXG4gICAgICAnMDUnLFxuICAgICAgJzA2JyxcbiAgICAgICcxMScsXG4gICAgICAnMTMnLFxuICAgICAgJzE0JyxcbiAgICAgICcxNicsXG4gICAgICAnMjEnLFxuICAgICAgJzIyJyxcbiAgICAgICcyMycsXG4gICAgICAnMjUnLFxuICAgICAgJzM0JyxcbiAgICAgICc1MScsXG4gICAgICAnNTInLFxuICAgICAgJzU0JyxcbiAgICAgICc1NScsXG4gICAgICAnNTYnLFxuICAgICAgJzU3JyxcbiAgICAgICc1OCcsXG4gICAgICAnNTknLFxuICAgICAgJzY1JyxcbiAgICAgICczMCcsXG4gICAgICAnMzInLFxuICAgICAgJzM1JyxcbiAgICAgICczNicsXG4gICAgICAnMzcnLFxuICAgICAgJzM4JyxcbiAgICAgICc2MScsXG4gICAgICAnMTUnLFxuICAgICAgJzI0JyxcbiAgICAgICcyMCcsXG4gICAgICAnMjYnLFxuICAgICAgJzI3JyxcbiAgICAgICc0NScsXG4gICAgICAnNDYnLFxuICAgICAgJzQ3JyxcbiAgICAgICc4MScsXG4gICAgICAnODInLFxuICAgICAgJzgzJyxcbiAgICAgICc4NCcsXG4gICAgICAnODUnLFxuICAgICAgJzQwJyxcbiAgICAgICc0NCcsXG4gICAgICAnOTQnLFxuICAgICAgJzk1JyxcbiAgICAgICc4MCcsXG4gICAgICAnOTAnLFxuICAgICAgJzMzJyxcbiAgICAgICczOScsXG4gICAgICAnNDEnLFxuICAgICAgJzQyJyxcbiAgICAgICc0MycsXG4gICAgICAnNDYnLFxuICAgICAgJzQ4JyxcbiAgICAgICc2MicsXG4gICAgICAnNjMnLFxuICAgICAgJzY0JyxcbiAgICAgICc2NicsXG4gICAgICAnNjgnLFxuICAgICAgJzcxJyxcbiAgICAgICc3MicsXG4gICAgICAnNzMnLFxuICAgICAgJzc0JyxcbiAgICAgICc3NScsXG4gICAgICAnNzYnLFxuICAgICAgJzc3JyxcbiAgICAgICc4NicsXG4gICAgICAnODcnLFxuICAgICAgJzg4JyxcbiAgICAgICc5MScsXG4gICAgICAnOTInLFxuICAgICAgJzkzJyxcbiAgICAgICc5OCcsXG4gICAgICAnOTknLFxuICAgICAgJzMxJ1xuICAgIF07XG5cbiAgICBjb25zdCBwcmVmaXggPSBjbGVhbmVkRUlOLnN1YnN0cmluZygwLCAyKTtcblxuICAgIHJldHVybiB2YWxpZFByZWZpeGVzLmluZGV4T2YocHJlZml4KSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZFVybCh0eHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhodHRwcz86XFwvXFwvKD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16MC05XVthLXowLTktXXswLDYxfVthLXowLTldKSg6P1xcZCopXFwvPyhbYS16X1xcXFwvMC05XFwtIy5dKilcXD8/KFthLXpfXFxcXC8wLTlcXC0jPSZdKikvZztcbiAgICByZXR1cm4gcmVnZXgudGVzdCh0eHQpO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKHppcENvZGU6IHN0cmluZywgY291bnRyeT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxlbmd0aCA9IHtcbiAgICAgIGJyOiA4LFxuICAgICAgY2w6IDcsXG4gICAgICBteDogNSxcbiAgICAgIHVzOiA1XG4gICAgfVtjb3VudHJ5IHx8ICdiciddO1xuXG4gICAgcmV0dXJuIGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMoemlwQ29kZSl9YC5sZW5ndGggPT09IGxlbmd0aDtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkRW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHJldHVybiAvXltcXHctLl0rQChbXFx3LV0rXFwuKStbXFx3LV17MSw2NH0kLy50ZXN0KGVtYWlsIHx8ICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRSYW5kb21TdHJpbmcobGVuOiBudW1iZXIsIGNoYXJTZXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNoYXJTZXQgPSBjaGFyU2V0IHx8ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG5cbiAgICBjb25zdCByYW5kb21TdHJpbmc6IHN0cmluZyA9IG5ldyBBcnJheShsZW4pXG4gICAgICAuZmlsbCgnMScpXG4gICAgICAubWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNoYXJTZXQ/LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0Py5sZW5ndGgpKTtcbiAgICAgIH0pXG4gICAgICAuam9pbignJyk7XG4gICAgcmV0dXJuIHJhbmRvbVN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBoYW5kbGVPbmx5TnVtYmVycyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgvW14wLTldL2cpLCAnJyk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoL1teMC05QS1aYS16XS8sICdnJyksICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBjYXBpdGFsaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXppcENvZGUpIHJldHVybiB6aXBDb2RlO1xuICAgIGNvbnN0IGZvcm1hdGVkOiBzdHJpbmcgPSB6aXBDb2RlXG4gICAgICAucmVwbGFjZSgvXihcXGR7NX0pKFxcZCkvLCAnJDEtJDInKVxuICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG5cbiAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgbGV0IGwgPSAwO1xuICAgIHdoaWxlIChzaXplID49IDEwMjQgJiYgKytsKSB7XG4gICAgICBzaXplIC89IDEwMjQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoc2l6ZSA8IDEwICYmIGwgPiAwID8gMSA6IDApfSAke3VuaXRzW2xdfWA7XG4gIH1cblxuICBzdGF0aWMgc3VmZmx1ZShkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICBmb3IgKGxldCBpID0gZGF0YS5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XG4gICAgICBjb25zdCB0ZW1wID0gZGF0YVtpXTtcbiAgICAgIGRhdGFbaV0gPSBkYXRhW2pdO1xuICAgICAgZGF0YVtqXSA9IHRlbXA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZUJsb2JGaWxlKHRoZUJsb2I6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZykge1xuICAgIGZ1bmN0aW9uIGJsb2JUb0ZpbGUodGhlQmxvYjogYW55LCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBiID0gdGhlQmxvYjtcbiAgICAgIGIubGFzdE1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBiLm5hbWUgPSBmaWxlTmFtZTtcbiAgICAgIHJldHVybiBiO1xuICAgIH1cblxuICAgIGxldCBmaWxlOiBhbnk7XG4gICAgaWYgKCEobmF2aWdhdG9yIGFzIGFueSkubXNTYXZlQmxvYikge1xuICAgICAgZmlsZSA9IG5ldyBGaWxlKFt0aGVCbG9iXSwgZmlsZU5hbWUsIHtcbiAgICAgICAgdHlwZTogZmlsZVR5cGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZSA9IG5ldyBCbG9iKFt0aGVCbG9iXSwge1xuICAgICAgICB0eXBlOiBmaWxlVHlwZSxcbiAgICAgIH0pO1xuICAgICAgZmlsZSA9IGJsb2JUb0ZpbGUoZmlsZSwgZmlsZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZTtcbiAgfVxuXG4gIHN0YXRpYyB0cnVuY2F0ZSh0ZXh0OiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gMjUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1pZENoYXIgPSAnLi4uJztcbiAgICBpZiAoIXRleHQpIHJldHVybiBtaWRDaGFyO1xuICAgIGlmICh0ZXh0ICYmIHRleHQubGVuZ3RoIDw9IG1heExlbmd0aCkgcmV0dXJuIHRleHQ7XG5cbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5jZWlsKG1heExlbmd0aCAvIDIpO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGV4dC5sZW5ndGggLSBsZWZ0ICsgMTtcblxuICAgIHJldHVybiBgJHt0ZXh0LnN1YnN0cigwLCBsZWZ0KX0gJHttaWRDaGFyfSAke3RleHQuc3Vic3RyaW5nKHJpZ2h0KX1gO1xuICB9XG5cbiAgc3RhdGljIGlzTG9jYWxob3N0KCkge1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93Py5sb2NhdGlvbjtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xuICB9XG5cbiAgc3RhdGljIGlzU2FtZU9yaWdpbihmcm9udGVuZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5pdGlhbFBhdGg6IHN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgcmV0dXJuIChpbml0aWFsUGF0aCB8fCAnJykgPT09IGZyb250ZW5kO1xuICB9XG5cbiAgc3RhdGljIHJlcGxhY2VWYXJpYWJsZXMoZGF0YTogc3RyaW5nLCBvYmo6IGFueSkge1xuICAgIGxldCBoYW5kbGVkID0gZGF0YTtcbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaGFuZGxlZCA9IGhhbmRsZWQucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtrZXl9fWAsICdnJyksIGAke3ZhbHVlfWApO1xuICAgIH0pO1xuICAgIHJldHVybiBoYW5kbGVkO1xuICB9XG5cbiAgc3RhdGljIHRyaW1WYWx1ZXNUb1NhdmUob2JqOiBhbnksIGZpZWxkczogc3RyaW5nW10pIHtcbiAgICBsZXQgcmV0ID0gb2JqO1xuICAgIGNvbnN0IGdyb3VwZWQgPSBmaWVsZHMuam9pbignIycpO1xuICAgIE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmIChncm91cGVkLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgcmV0ID0ge1xuICAgICAgICAgIC4uLnJldCxcbiAgICAgICAgICBba2V5XTogYCR7dmFsdWV9YC50cmltKClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dzRXJyb3JUeXBlcyA9ICdvaycgfFxuICAnZGVidWcnIHxcbiAgJ2luZm8nIHxcbiAgJ25vdGljZScgfFxuICAnd2FybicgfFxuICAnZXJyb3InIHxcbiAgJ2NyaXRpY2FsJyB8XG4gICdhbGVydCcgfFxuICAnZW1lcmcnO1xuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dQYXJhbXMgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29udGV4dD86IGFueTtcbiAgZXJyb3I/OiBFcnJvcjtcbiAgdHlwZT86IE1vbmtleUVjeExvZ3NFcnJvclR5cGVzO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4TG9ncyB7XG4gIHN0YXRpYyBsb2cocGFyYW1zOiBNb25rZXlFY3hMb2dQYXJhbXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB0eXBlLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvciB9ID0gcGFyYW1zO1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyW3R5cGUgfHwgJ2Vycm9yJ10obWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdCB0byBkb1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyVG9CYXNlNjQoYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHN0cmluZyB7XG4gIGxldCBiaW5hcnkgPSAnJztcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xuICB9XG4gIHJldHVybiB3aW5kb3cuYnRvYShiaW5hcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9CdWZmZXIoYmFzZTY0OiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XG4gIGNvbnN0IGxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGJ5dGVzW2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gIH1cbiAgcmV0dXJuIGJ5dGVzLmJ1ZmZlcjtcbn1cbiJdfQ==
590
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktZnJvbnQtY29yZS9zcmMvbGliL2NvcmUvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUNBQWlDO0FBQ2pDLDRCQUE0QjtBQUM1QixzQ0FBc0M7QUFDdEMsZ0NBQWdDO0FBQ2hDLG1DQUFtQztBQUNuQywyQkFBMkI7QUFDM0IsaUNBQWlDO0FBQ2pDLGdDQUFnQztBQUNoQywyQkFBMkI7QUFFM0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLHFDQUFxQztBQUNyQyxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMseUJBQXlCLENBQUMsRUFBTztRQUN0QyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksRUFBRSxLQUFLLFNBQVMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQVcsRUFBRSxPQUFnQjtRQUNsRCxJQUFJLENBQUMsR0FBRztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxLQUFLLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNuQyxJQUFJLE9BQU8sS0FBSyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDbkMsSUFBSSxPQUFPLEtBQUssSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzNDLENBQUM7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LFFBQVEsQ0FBQyxNQUFNLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNyRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQUUsQ0FBQztZQUM5RCxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQUUsQ0FBQztZQUMvRCxJQUFJLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7WUFFRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFD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QixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtZQUNOLE1BQU07WUFDTixNQUFNO1lBQ04sTUFBTTtTQUNQLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRztZQUNqQixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lBQ0wsQ0FBQyxFQUFFLEVBQUU7WUFDTCxDQUFDLEVBQUUsRUFBRTtZQUNMLENBQUMsRUFBRSxFQUFFO1lB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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDdkM7SUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLWRhbmdsZSAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tdXNlbGVzcy1lc2NhcGUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXBsdXNwbHVzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1jb25kLWFzc2lnbiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZWRlY2xhcmUgKi9cbi8qIGVzbGludC1kaXNhYmxlIHZhcnMtb24tdG9wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby12YXIgKi9cblxuaW1wb3J0IHsgZGF0YWRvZ0xvZ3MgfSBmcm9tICdAZGF0YWRvZy9icm93c2VyLWxvZ3MnO1xuaW1wb3J0IHsgQ05QSlZhbGlkYXRvciB9IGZyb20gJy4vQ05QSic7XG5pbXBvcnQgeyBDUEZWYWxpZGF0b3IgfSBmcm9tICcuL0NQRic7XG5pbXBvcnQgeyBDb3VudHJ5TWFza3MgfSBmcm9tICcuL3N0YXRpY3MnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBibG9jay1zY29wZWQtdmFyICovXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4VXRpbHMge1xuICBzdGF0aWMgcGVyc2lzdE51bGxFbXB0eVVuZGVmaW5lZCh0cDogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRwICE9PSBudWxsICYmIHRwICE9PSB1bmRlZmluZWQgJiYgdHAgIT09ICcnO1xuICB9XG5cbiAgc3RhdGljIGdldERvY3VtZW50VHlwZShkb2M6IHN0cmluZywgY291bnRyeT86IHN0cmluZykge1xuICAgIGlmICghZG9jKSByZXR1cm4gJyc7XG4gICAgaWYgKGNvdW50cnkgPT09ICdjbCcpIHJldHVybiAnUlVUJztcbiAgICBpZiAoY291bnRyeSA9PT0gJ214JykgcmV0dXJuICdSRkMnO1xuICAgIGlmIChjb3VudHJ5ID09PSAndXMnKSByZXR1cm4gJ0VJTic7XG4gICAgcmV0dXJuIGRvYy5sZW5ndGggPD0gMTEgPyAnQ1BGJyA6ICdDTlBKJztcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudE1hc2sodHlwZTogc3RyaW5nLCBjb3VudHJ5ID0gJycpIHtcbiAgICByZXR1cm4ge1xuICAgICAgQlI6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuQ1BGLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuQ05QSixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5DUEZ9fHwke0NvdW50cnlNYXNrcy5DTlBKfWBcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6IENvdW50cnlNYXNrcy5SVVQxLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuUlVUMixcbiAgICAgICAgJyc6IGAke0NvdW50cnlNYXNrcy5SVVQxfXx8JHtDb3VudHJ5TWFza3MuUlVUMn1gXG4gICAgICB9LFxuICAgICAgTVg6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuUkZDMSxcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLlJGQzIsXG4gICAgICAgICcnOiBgJHtDb3VudHJ5TWFza3MuUkZDMX18fCR7Q291bnRyeU1hc2tzLlJGQzJ9YFxuICAgICAgfSxcbiAgICAgIFVTOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgQ05QSjogQ291bnRyeU1hc2tzLkVJTixcbiAgICAgICAgJyc6IENvdW50cnlNYXNrcy5FSU5cbiAgICAgIH1cbiAgICB9W2NvdW50cnkudG9VcHBlckNhc2UoKV0/Llt0eXBlXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXREb2N1bWVudFBsYWNlaG9sZGVyKHR5cGU6IHN0cmluZywgY291bnRyeSA9ICcnKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIEJSOiB7XG4gICAgICAgIENQRjogJzAwMC4wMDAuMDAwLVhYJyxcbiAgICAgICAgQ05QSjogJzAwLjAwMC4wMDAvMDAwMC0wMCdcbiAgICAgIH0sXG4gICAgICBDTDoge1xuICAgICAgICBDUEY6ICcwMDAwMDAwLUEnLFxuICAgICAgICBDTlBKOiAnMDAwMDAwMC1BJ1xuICAgICAgfSxcbiAgICAgIE1YOiB7XG4gICAgICAgIENQRjogQ291bnRyeU1hc2tzLlJGQzEsXG4gICAgICAgIENOUEo6IENvdW50cnlNYXNrcy5SRkMyXG4gICAgICB9LFxuICAgICAgVVM6IHtcbiAgICAgICAgQ1BGOiBDb3VudHJ5TWFza3MuRUlOLFxuICAgICAgICBDTlBKOiBDb3VudHJ5TWFza3MuRUlOXG4gICAgICB9XG4gICAgfVtjb3VudHJ5LnRvVXBwZXJDYXNlKCldPy5bdHlwZV07XG4gIH1cblxuICBzdGF0aWMgZm9ybWF0RG9jdW1lbnRXaXRoTWFzayhkb2M6IHN0cmluZywgd2l0aFR5cGU/OiBib29sZWFuLCBjb3VudHJ5Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWRvYykgcmV0dXJuIGRvYztcbiAgICBsZXQgZm9ybWF0ZWQ6IHN0cmluZyA9ICcnO1xuICAgIGlmIChjb3VudHJ5ID09PSAnY2wnKSB7XG4gICAgICBmb3JtYXRlZCA9IGRvYy5yZXBsYWNlKC9eKFxcZHsxLDJ9KShcXGR7M30pKFxcZHszfSkoXFx3ezF9KSQvLCAnJDEuJDIuJDMtJDQnKTtcbiAgICAgIHJldHVybiBgJHtmb3JtYXRlZH1gO1xuICAgIH1cbiAgICBpZiAoY291bnRyeSA9PT0gJ3VzJykge1xuICAgICAgZm9ybWF0ZWQgPSBkb2MucmVwbGFjZSgvXihcXGR7Mn0pKFxcZHs3fSkkLywgJyQxLSQyJyk7XG4gICAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgICB9XG4gICAgaWYgKGRvYy5sZW5ndGggPT09IDE0KSB7XG4gICAgICBjb25zdCBjbGVhbmVkID0gZG9jLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCAnJykudG9VcHBlckNhc2UoKTtcblxuICAgICAgZm9ybWF0ZWQgPSBjbGVhbmVkXG4gICAgICAgIC5yZXBsYWNlKC9eKFtBLVowLTldezJ9KShbQS1aMC05XSkvLCAnJDEuJDInKVxuICAgICAgICAucmVwbGFjZSgvXihbQS1aMC05XXsyfSlcXC4oW0EtWjAtOV17M30pKFtBLVowLTldKS8sICckMS4kMi4kMycpXG4gICAgICAgIC5yZXBsYWNlKC9cXC4oXFx3ezN9KShcXHcpLywgJy4kMS8kMicpXG4gICAgICAgIC5yZXBsYWNlKC8oXFxkezR9KShcXGQpLywgJyQxLSQyJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm1hdGVkID0gZG9jXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSkoXFxkKS8sICckMS4kMicpXG4gICAgICAgIC5yZXBsYWNlKC9eKFxcZHszfSlcXC4oXFxkezN9KShcXGQpLywgJyQxLiQyLiQzJylcbiAgICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3dpdGhUeXBlID8gYCR7dGhpcy5nZXREb2N1bWVudFR5cGUoZG9jKX06YCA6ICcnfSAke2Zvcm1hdGVkfWA7XG4gIH1cblxuICBzdGF0aWMgY3V0Rmlyc3RMYXN0TmFtZSh2YWx1ZTogc3RyaW5nLCB0cDogc3RyaW5nID0gJ2ZpcnN0Jykge1xuICAgIGNvbnN0IHNwbGl0ID0gdmFsdWU/LnRyaW0oKT8uc3BsaXQoJyAnKTtcblxuICAgIGlmICh0cCA9PT0gJ2ZpcnN0JykgcmV0dXJuIHNwbGl0WzBdO1xuICAgIHJldHVybiBzcGxpdD8uc3BsaWNlKDEsIHNwbGl0Lmxlbmd0aCk/LmpvaW4oJyAnKTtcbiAgfVxuXG4gIHN0YXRpYyBpc0NQRkNOUEpWYWxpZChkb2N1bWVudDogYW55KTogYm9vbGVhbiB7XG4gICAgZG9jdW1lbnQgPSBkb2N1bWVudC5yZXBsYWNlKC9bXlxcZF0vZywgJycpO1xuXG4gICAgY29uc3QgaGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UobmV3IFJlZ0V4cChkb2N1bWVudC5jaGFyQXQoMCksICdnJyksICcnKTtcbiAgICBpZiAoIWhhbmRsZWQpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDExKSB7XG4gICAgICBsZXQgYmFzZSA9IFsxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMF07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCA5OyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbOV0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgYmFzZSA9IFsxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDBdO1xuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDk7IG4gKz0gZG9jdW1lbnRbaV0gKiBiYXNlW2krK10pIDtcbiAgICAgIGlmIChkb2N1bWVudFsxMF0gIT0gKChuICU9IDExKSA8PSAxID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChkb2N1bWVudC5sZW5ndGggPT09IDE0IHx8IC8wezE0fS8udGVzdChkb2N1bWVudCkpIHtcbiAgICAgIGNvbnN0IGJhc2UgPSBbNiwgNSwgNCwgMywgMiwgOSwgOCwgNywgNiwgNSwgNCwgMywgMl07XG4gICAgICBmb3IgKHZhciBpID0gMCwgbiA9IDA7IGkgPCAxMjsgbiArPSBkb2N1bWVudFtpXSAqIGJhc2VbKytpXSkgO1xuICAgICAgaWYgKGRvY3VtZW50WzEyXSAhPSAoKG4gJT0gMTEpIDwgMiA/IDAgOiAxMSAtIG4pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSAwOyBpIDw9IDEyOyBuICs9IGRvY3VtZW50W2ldICogYmFzZVtpKytdKSA7XG4gICAgICBpZiAoZG9jdW1lbnRbMTNdICE9ICgobiAlPSAxMSkgPCAyID8gMCA6IDExIC0gbikpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGlzQ1BGQWxwaGFudW1lcmljQ05QSlZhbGlkKGRvY3VtZW50OiBhbnkpOiBib29sZWFuIHtcbiAgICBkb2N1bWVudCA9IGRvY3VtZW50LnJlcGxhY2UoL1suLy1dL2csICcnKTtcblxuICAgIGNvbnN0IGhhbmRsZWQgPSBkb2N1bWVudC5yZXBsYWNlKG5ldyBSZWdFeHAoZG9jdW1lbnQuY2hhckF0KDApLCAnZycpLCAnJyk7XG4gICAgaWYgKCFoYW5kbGVkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoZG9jdW1lbnQubGVuZ3RoID09PSAxMSkge1xuICAgICAgcmV0dXJuIENQRlZhbGlkYXRvci5pc1ZhbGlkKGRvY3VtZW50KTtcbiAgICB9XG4gICAgaWYgKGRvY3VtZW50Lmxlbmd0aCA9PT0gMTQgfHwgLzB7MTR9Ly50ZXN0KGRvY3VtZW50KSkge1xuICAgICAgcmV0dXJuIENOUEpWYWxpZGF0b3IuaXNWYWxpZChkb2N1bWVudCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNWYWxpZFJVVChkb2N1bWVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFkb2N1bWVudCB8fCBkb2N1bWVudC50cmltKCkubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGRvY3VtZW50SGFuZGxlZCA9IGRvY3VtZW50LnJlcGxhY2UoL1teMC05a0tdL2csICcnKTtcblxuICAgIGlmIChkb2N1bWVudEhhbmRsZWQubGVuZ3RoIDwgMykgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgY2FsY0R2ID0gKHJ1dDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gYCR7cnV0fWA7XG4gICAgICBsZXQgc3VtID0gMDtcbiAgICAgIGxldCBtdWx0ID0gMjtcblxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSBtdWx0ICogTnVtYmVyKHZhbHVlLmNoYXJBdCh2YWx1ZS5sZW5ndGggLSBpKSk7XG5cbiAgICAgICAgc3VtICs9IGluZGV4O1xuXG4gICAgICAgIGlmIChtdWx0IDwgNykge1xuICAgICAgICAgIG11bHQgKz0gMTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtdWx0ID0gMjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBkdkVzcGVyYWRvID0gMTEgLSAoc3VtICUgMTEpO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDEwKSByZXR1cm4gJ0snO1xuICAgICAgaWYgKGR2RXNwZXJhZG8gPT09IDExKSByZXR1cm4gJzAnO1xuICAgICAgcmV0dXJuIGAke2R2RXNwZXJhZG99YDtcbiAgICB9O1xuXG4gICAgY29uc3QgbnVtID0gZG9jdW1lbnRIYW5kbGVkLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBkZ3YgPSBkb2N1bWVudEhhbmRsZWQuc2xpY2UoLTEpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICBjb25zdCBkdkNhbGMgPSBjYWxjRHYobnVtKTtcbiAgICByZXR1cm4gZHZDYWxjID09PSBkZ3Y7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRSRkMoZG9jdW1lbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IFJGQ19SRUdFWFAgPSAvXihbQS1aw5FcXHgyNl17Myw0fSkoWzAtOV17Nn0pKFtBLVowLTldezN9KSQvO1xuICAgIGNvbnN0IFNQRUNJQUxfQ0FTRVMgPSB7XG4gICAgICBYRVhYMDEwMTAxMDAwOiAnZm9yZWlnbicsXG4gICAgICBYQVhYMDEwMTAxMDAwOiAnZ2VuZXJpYydcbiAgICB9O1xuICAgIGNvbnN0IEZPUkJJRERFTl9XT1JEUyA9IFtcbiAgICAgICdCVUVJJyxcbiAgICAgICdCVUVZJyxcbiAgICAgICdDQUNBJyxcbiAgICAgICdDQUNPJyxcbiAgICAgICdDQUdBJyxcbiAgICAgICdDQUdPJyxcbiAgICAgICdDQUtBJyxcbiAgICAgICdDQUtPJyxcbiAgICAgICdDT0dFJyxcbiAgICAgICdDT0pBJyxcbiAgICAgICdDT0pFJyxcbiAgICAgICdDT0pJJyxcbiAgICAgICdDT0pPJyxcbiAgICAgICdDVUxPJyxcbiAgICAgICdGRVRPJyxcbiAgICAgICdHVUVZJyxcbiAgICAgICdKT1RPJyxcbiAgICAgICdLQUNBJyxcbiAgICAgICdLQUNPJyxcbiAgICAgICdLQUdBJyxcbiAgICAgICdLQUdPJyxcbiAgICAgICdLT0dFJyxcbiAgICAgICdLT0pPJyxcbiAgICAgICdLQUtBJyxcbiAgICAgICdLVUxPJyxcbiAgICAgICdNQU1FJyxcbiAgICAgICdNQU1PJyxcbiAgICAgICdNRUFSJyxcbiAgICAgICdNRUFTJyxcbiAgICAgICdNRU9OJyxcbiAgICAgICdNSU9OJyxcbiAgICAgICdNT0NPJyxcbiAgICAgICdNVUxBJyxcbiAgICAgICdQRURBJyxcbiAgICAgICdQRURPJyxcbiAgICAgICdQRU5FJyxcbiAgICAgICdQVVRBJyxcbiAgICAgICdQVVRPJyxcbiAgICAgICdRVUxPJyxcbiAgICAgICdSQVRBJyxcbiAgICAgICdSVUlOJ1xuICAgIF07XG5cbiAgICBjb25zdCBWQUxVRVNfTUFQID0ge1xuICAgICAgMDogMCxcbiAgICAgIDE6IDEsXG4gICAgICAyOiAyLFxuICAgICAgMzogMyxcbiAgICAgIDQ6IDQsXG4gICAgICA1OiA1LFxuICAgICAgNjogNixcbiAgICAgIDc6IDcsXG4gICAgICA4OiA4LFxuICAgICAgOTogOSxcbiAgICAgIEE6IDEwLFxuICAgICAgQjogMTEsXG4gICAgICBDOiAxMixcbiAgICAgIEQ6IDEzLFxuICAgICAgRTogMTQsXG4gICAgICBGOiAxNSxcbiAgICAgIEc6IDE2LFxuICAgICAgSDogMTcsXG4gICAgICBJOiAxOCxcbiAgICAgIEo6IDE5LFxuICAgICAgSzogMjAsXG4gICAgICBMOiAyMSxcbiAgICAgIE06IDIyLFxuICAgICAgTjogMjMsXG4gICAgICAnJic6IDI0LFxuICAgICAgTzogMjUsXG4gICAgICBQOiAyNixcbiAgICAgIFE6IDI3LFxuICAgICAgUjogMjgsXG4gICAgICBTOiAyOSxcbiAgICAgIFQ6IDMwLFxuICAgICAgVTogMzEsXG4gICAgICBWOiAzMixcbiAgICAgIFc6IDMzLFxuICAgICAgWDogMzQsXG4gICAgICBZOiAzNSxcbiAgICAgIFo6IDM2LFxuICAgICAgJyAnOiAzNyxcbiAgICAgIMOROiAzOFxuICAgIH07XG5cbiAgICBjb25zdCBnZXRTY29yZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGRvYy5zcGxpdCgnJykucmV2ZXJzZSgpLnJlZHVjZSgoc3VtLCBjaGFyLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaSArIDI7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gVkFMVUVTX01BUFtjaGFyXSB8fCAwO1xuICAgICAgICByZXR1cm4gc3VtICsgdmFsdWUgKiBpbmRleDtcbiAgICAgIH0sIDApO1xuICAgIH07XG5cbiAgICBjb25zdCBwYXJzZUlucHV0ID0gKGRvYzogc3RyaW5nKSA9PiB7XG4gICAgICByZXR1cm4gU3RyaW5nKGRvYylcbiAgICAgICAgLnRyaW0oKVxuICAgICAgICAudG9VcHBlckNhc2UoKVxuICAgICAgICAucmVwbGFjZSgvW14wLTlBLVrDkVxceDI2XS9nLCAnJyk7XG4gICAgfTtcblxuICAgIGNvbnN0IHZhbGlkYXRlRGF0ZSA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGF0ZVN0ciA9IGRvYy5zbGljZSgwLCAtMykuc2xpY2UoLTYpO1xuICAgICAgY29uc3QgeWVhciA9IGRhdGVTdHIuc2xpY2UoMCwgMik7XG4gICAgICBjb25zdCBtb250aCA9IGRhdGVTdHIuc2xpY2UoMiwgNCk7XG4gICAgICBjb25zdCBkYXkgPSBkYXRlU3RyLnNsaWNlKDQsIDYpO1xuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGAyMCR7eWVhcn0tJHttb250aH0tJHtkYXl9YCk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1nbG9iYWxzXG4gICAgICByZXR1cm4gIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdmFsaWRhdGVWZXJpZmljYXRpb25EaWdpdCA9IChkb2M6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZGlnaXQgPSBkb2Muc2xpY2UoLTEpO1xuICAgICAgY29uc3QgcmZjID0gZG9jLmxlbmd0aCA9PT0gMTIgPyBgICR7ZG9jfWAgOiBkb2M7XG4gICAgICBjb25zdCBiYXNlID0gcmZjLnNsaWNlKDAsIC0xKTtcbiAgICAgIGNvbnN0IHNjb3JlID0gZ2V0U2NvcmUoYmFzZSk7XG4gICAgICBjb25zdCBtb2QgPSAoMTEwMDAgLSBzY29yZSkgJSAxMTtcbiAgICAgIGlmIChtb2QgPT09IDExKSByZXR1cm4gZGlnaXQgPT09ICcwJztcbiAgICAgIGlmIChtb2QgPT09IDEwKSByZXR1cm4gZGlnaXQgPT09ICdBJztcbiAgICAgIHJldHVybiBTdHJpbmcobW9kKSA9PT0gZGlnaXQ7XG4gICAgfTtcblxuICAgIGNvbnN0IGlzU3BlY2lhbENhc2UgPSAoZG9jOiBzdHJpbmcpID0+IHsgcmV0dXJuIGRvYyBpbiBTUEVDSUFMX0NBU0VTOyB9O1xuXG4gICAgY29uc3QgaGFzRm9yYmlkZGVuV29yZHMgPSAoZG9jOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IHByZWZpeCA9IChkb2MgfHwgJycpLnNsaWNlKDAsIDQpO1xuICAgICAgcmV0dXJuIEZPUkJJRERFTl9XT1JEUy5pbmNsdWRlcyhwcmVmaXgpO1xuICAgIH07XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaW5wdXQgPSBwYXJzZUlucHV0KGRvY3VtZW50KTtcblxuICAgICAgaWYgKGlzU3BlY2lhbENhc2UoaW5wdXQpKSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZEZvcm1hdCA9IFJGQ19SRUdFWFAudGVzdChpbnB1dCk7XG4gICAgICBpZiAoIWhhc1ZhbGlkRm9ybWF0KSByZXR1cm4gZmFsc2U7XG4gICAgICBjb25zdCBoYXNWYWxpZERhdGUgPSB2YWxpZGF0ZURhdGUoaW5wdXQpO1xuICAgICAgaWYgKCFoYXNWYWxpZERhdGUpIHJldHVybiBmYWxzZTtcbiAgICAgIGNvbnN0IGhhc1ZhbGlkRGlnaXQgPSB2YWxpZGF0ZVZlcmlmaWNhdGlvbkRpZ2l0KGlucHV0KTtcbiAgICAgIGlmICghaGFzVmFsaWREaWdpdCkgcmV0dXJuIGZhbHNlO1xuICAgICAgaWYgKGhhc0ZvcmJpZGRlbldvcmRzKGlucHV0KSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBub3QgdG8gZG9cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRFSU4oZWluOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBjbGVhbmVkRUlOID0gZWluPy5yZXBsYWNlKC9cXEQvZywgJycpIHx8ICcnO1xuXG4gICAgaWYgKGNsZWFuZWRFSU4ubGVuZ3RoICE9PSA5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRQcmVmaXhlcyA9IFtcbiAgICAgICcxMCcsXG4gICAgICAnMTInLFxuICAgICAgJzYwJyxcbiAgICAgICc2NycsXG4gICAgICAnNTAnLFxuICAgICAgJzUzJyxcbiAgICAgICcwMScsXG4gICAgICAnMDInLFxuICAgICAgJzAzJyxcbiAgICAgICcwNCcsXG4gICAgICAnMDUnLFxuICAgICAgJzA2JyxcbiAgICAgICcxMScsXG4gICAgICAnMTMnLFxuICAgICAgJzE0JyxcbiAgICAgICcxNicsXG4gICAgICAnMjEnLFxuICAgICAgJzIyJyxcbiAgICAgICcyMycsXG4gICAgICAnMjUnLFxuICAgICAgJzM0JyxcbiAgICAgICc1MScsXG4gICAgICAnNTInLFxuICAgICAgJzU0JyxcbiAgICAgICc1NScsXG4gICAgICAnNTYnLFxuICAgICAgJzU3JyxcbiAgICAgICc1OCcsXG4gICAgICAnNTknLFxuICAgICAgJzY1JyxcbiAgICAgICczMCcsXG4gICAgICAnMzInLFxuICAgICAgJzM1JyxcbiAgICAgICczNicsXG4gICAgICAnMzcnLFxuICAgICAgJzM4JyxcbiAgICAgICc2MScsXG4gICAgICAnMTUnLFxuICAgICAgJzI0JyxcbiAgICAgICcyMCcsXG4gICAgICAnMjYnLFxuICAgICAgJzI3JyxcbiAgICAgICc0NScsXG4gICAgICAnNDYnLFxuICAgICAgJzQ3JyxcbiAgICAgICc4MScsXG4gICAgICAnODInLFxuICAgICAgJzgzJyxcbiAgICAgICc4NCcsXG4gICAgICAnODUnLFxuICAgICAgJzQwJyxcbiAgICAgICc0NCcsXG4gICAgICAnOTQnLFxuICAgICAgJzk1JyxcbiAgICAgICc4MCcsXG4gICAgICAnOTAnLFxuICAgICAgJzMzJyxcbiAgICAgICczOScsXG4gICAgICAnNDEnLFxuICAgICAgJzQyJyxcbiAgICAgICc0MycsXG4gICAgICAnNDYnLFxuICAgICAgJzQ4JyxcbiAgICAgICc2MicsXG4gICAgICAnNjMnLFxuICAgICAgJzY0JyxcbiAgICAgICc2NicsXG4gICAgICAnNjgnLFxuICAgICAgJzcxJyxcbiAgICAgICc3MicsXG4gICAgICAnNzMnLFxuICAgICAgJzc0JyxcbiAgICAgICc3NScsXG4gICAgICAnNzYnLFxuICAgICAgJzc3JyxcbiAgICAgICc4NicsXG4gICAgICAnODcnLFxuICAgICAgJzg4JyxcbiAgICAgICc5MScsXG4gICAgICAnOTInLFxuICAgICAgJzkzJyxcbiAgICAgICc5OCcsXG4gICAgICAnOTknLFxuICAgICAgJzMxJ1xuICAgIF07XG5cbiAgICBjb25zdCBwcmVmaXggPSBjbGVhbmVkRUlOLnN1YnN0cmluZygwLCAyKTtcblxuICAgIHJldHVybiB2YWxpZFByZWZpeGVzLmluZGV4T2YocHJlZml4KSAhPT0gLTE7XG4gIH1cblxuICBzdGF0aWMgaXNWYWxpZFVybCh0eHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZ2V4ID0gLyhodHRwcz86XFwvXFwvKD86W2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/XFwuKStbYS16MC05XVthLXowLTktXXswLDYxfVthLXowLTldKSg6P1xcZCopXFwvPyhbYS16X1xcXFwvMC05XFwtIy5dKilcXD8/KFthLXpfXFxcXC8wLTlcXC0jPSZdKikvZztcbiAgICByZXR1cm4gcmVnZXgudGVzdCh0eHQpO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKHppcENvZGU6IHN0cmluZywgY291bnRyeT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxlbmd0aCA9IHtcbiAgICAgIGJyOiA4LFxuICAgICAgY2w6IDcsXG4gICAgICBteDogNSxcbiAgICAgIHVzOiA1XG4gICAgfVtjb3VudHJ5IHx8ICdiciddO1xuXG4gICAgcmV0dXJuIGAke3RoaXMuaGFuZGxlT25seU51bWJlcnMoemlwQ29kZSl9YC5sZW5ndGggPT09IGxlbmd0aDtcbiAgfVxuXG4gIHN0YXRpYyBpc1ZhbGlkRW1haWwoZW1haWw6IHN0cmluZykge1xuICAgIHJldHVybiAvXltcXHctLl0rQChbXFx3LV0rXFwuKStbXFx3LV17MSw2NH0kLy50ZXN0KGVtYWlsIHx8ICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRSYW5kb21TdHJpbmcobGVuOiBudW1iZXIsIGNoYXJTZXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNoYXJTZXQgPSBjaGFyU2V0IHx8ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XG5cbiAgICBjb25zdCByYW5kb21TdHJpbmc6IHN0cmluZyA9IG5ldyBBcnJheShsZW4pXG4gICAgICAuZmlsbCgnMScpXG4gICAgICAubWFwKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIGNoYXJTZXQ/LmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyU2V0Py5sZW5ndGgpKTtcbiAgICAgIH0pXG4gICAgICAuam9pbignJyk7XG4gICAgcmV0dXJuIHJhbmRvbVN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBoYW5kbGVPbmx5TnVtYmVycyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgvW14wLTldL2cpLCAnJyk7XG4gIH1cblxuICBzdGF0aWMgaGFuZGxlT25seUFscGhhTnVtZXJpYyh2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAoL1teMC05QS1aYS16XS8sICdnJyksICcnKTtcbiAgfVxuXG4gIHN0YXRpYyBjYXBpdGFsaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHt2YWx1ZS5zbGljZSgxKX1gO1xuICB9XG5cbiAgc3RhdGljIGZvcm1hdFppcENvZGUoemlwQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXppcENvZGUpIHJldHVybiB6aXBDb2RlO1xuICAgIGNvbnN0IGZvcm1hdGVkOiBzdHJpbmcgPSB6aXBDb2RlXG4gICAgICAucmVwbGFjZSgvXihcXGR7NX0pKFxcZCkvLCAnJDEtJDInKVxuICAgICAgLnJlcGxhY2UoL1xcLihcXGR7M30pKFxcZCkvLCAnLiQxLSQyJyk7XG5cbiAgICByZXR1cm4gYCR7Zm9ybWF0ZWR9YDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRGaWxlU2l6ZShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ107XG4gICAgbGV0IGwgPSAwO1xuICAgIHdoaWxlIChzaXplID49IDEwMjQgJiYgKytsKSB7XG4gICAgICBzaXplIC89IDEwMjQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtzaXplLnRvRml4ZWQoc2l6ZSA8IDEwICYmIGwgPiAwID8gMSA6IDApfSAke3VuaXRzW2xdfWA7XG4gIH1cblxuICBzdGF0aWMgc3VmZmx1ZShkYXRhOiBhbnlbXSk6IGFueVtdIHtcbiAgICBmb3IgKGxldCBpID0gZGF0YS5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XG4gICAgICBjb25zdCB0ZW1wID0gZGF0YVtpXTtcbiAgICAgIGRhdGFbaV0gPSBkYXRhW2pdO1xuICAgICAgZGF0YVtqXSA9IHRlbXA7XG4gICAgfVxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZUJsb2JGaWxlKHRoZUJsb2I6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgZmlsZVR5cGU6IHN0cmluZykge1xuICAgIGZ1bmN0aW9uIGJsb2JUb0ZpbGUodGhlQmxvYjogYW55LCBmaWxlTmFtZTogc3RyaW5nKSB7XG4gICAgICBjb25zdCBiID0gdGhlQmxvYjtcbiAgICAgIGIubGFzdE1vZGlmaWVkRGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBiLm5hbWUgPSBmaWxlTmFtZTtcbiAgICAgIHJldHVybiBiO1xuICAgIH1cblxuICAgIGxldCBmaWxlOiBhbnk7XG4gICAgaWYgKCEobmF2aWdhdG9yIGFzIGFueSkubXNTYXZlQmxvYikge1xuICAgICAgZmlsZSA9IG5ldyBGaWxlKFt0aGVCbG9iXSwgZmlsZU5hbWUsIHtcbiAgICAgICAgdHlwZTogZmlsZVR5cGUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZSA9IG5ldyBCbG9iKFt0aGVCbG9iXSwge1xuICAgICAgICB0eXBlOiBmaWxlVHlwZSxcbiAgICAgIH0pO1xuICAgICAgZmlsZSA9IGJsb2JUb0ZpbGUoZmlsZSwgZmlsZU5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmlsZTtcbiAgfVxuXG4gIHN0YXRpYyB0cnVuY2F0ZSh0ZXh0OiBzdHJpbmcsIG1heExlbmd0aDogbnVtYmVyID0gMjUpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1pZENoYXIgPSAnLi4uJztcbiAgICBpZiAoIXRleHQpIHJldHVybiBtaWRDaGFyO1xuICAgIGlmICh0ZXh0ICYmIHRleHQubGVuZ3RoIDw9IG1heExlbmd0aCkgcmV0dXJuIHRleHQ7XG5cbiAgICBjb25zdCBsZWZ0ID0gTWF0aC5jZWlsKG1heExlbmd0aCAvIDIpO1xuICAgIGNvbnN0IHJpZ2h0ID0gdGV4dC5sZW5ndGggLSBsZWZ0ICsgMTtcblxuICAgIHJldHVybiBgJHt0ZXh0LnN1YnN0cigwLCBsZWZ0KX0gJHttaWRDaGFyfSAke3RleHQuc3Vic3RyaW5nKHJpZ2h0KX1gO1xuICB9XG5cbiAgc3RhdGljIGlzTG9jYWxob3N0KCkge1xuICAgIGNvbnN0IHsgaHJlZiB9ID0gd2luZG93Py5sb2NhdGlvbjtcbiAgICBpZiAoIWhyZWYpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gaHJlZj8uc2VhcmNoKCdsb2NhbGhvc3QnKSA+PSAwO1xuICB9XG5cbiAgc3RhdGljIGlzU2FtZU9yaWdpbihmcm9udGVuZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaW5pdGlhbFBhdGg6IHN0cmluZyA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgcmV0dXJuIChpbml0aWFsUGF0aCB8fCAnJykgPT09IGZyb250ZW5kO1xuICB9XG5cbiAgc3RhdGljIHJlcGxhY2VWYXJpYWJsZXMoZGF0YTogc3RyaW5nLCBvYmo6IGFueSkge1xuICAgIGxldCBoYW5kbGVkID0gZGF0YTtcbiAgICBPYmplY3QuZW50cmllcyhvYmopLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaGFuZGxlZCA9IGhhbmRsZWQucmVwbGFjZShuZXcgUmVnRXhwKGB7JHtrZXl9fWAsICdnJyksIGAke3ZhbHVlfWApO1xuICAgIH0pO1xuICAgIHJldHVybiBoYW5kbGVkO1xuICB9XG5cbiAgc3RhdGljIHRyaW1WYWx1ZXNUb1NhdmUob2JqOiBhbnksIGZpZWxkczogc3RyaW5nW10pIHtcbiAgICBsZXQgcmV0ID0gb2JqO1xuICAgIGNvbnN0IGdyb3VwZWQgPSBmaWVsZHMuam9pbignIycpO1xuICAgIE9iamVjdC5lbnRyaWVzKG9iaikubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgIGlmIChncm91cGVkLmluY2x1ZGVzKGtleSkpIHtcbiAgICAgICAgcmV0ID0ge1xuICAgICAgICAgIC4uLnJldCxcbiAgICAgICAgICBba2V5XTogYCR7dmFsdWV9YC50cmltKClcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJldDtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dzRXJyb3JUeXBlcyA9ICdvaycgfFxuICAnZGVidWcnIHxcbiAgJ2luZm8nIHxcbiAgJ25vdGljZScgfFxuICAnd2FybicgfFxuICAnZXJyb3InIHxcbiAgJ2NyaXRpY2FsJyB8XG4gICdhbGVydCcgfFxuICAnZW1lcmcnO1xuXG5leHBvcnQgdHlwZSBNb25rZXlFY3hMb2dQYXJhbXMgPSB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgY29udGV4dD86IGFueTtcbiAgZXJyb3I/OiBFcnJvcjtcbiAgdHlwZT86IE1vbmtleUVjeExvZ3NFcnJvclR5cGVzO1xufVxuXG5leHBvcnQgY2xhc3MgTW9ua2V5RWN4TG9ncyB7XG4gIHN0YXRpYyBsb2cocGFyYW1zOiBNb25rZXlFY3hMb2dQYXJhbXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgeyB0eXBlLCBtZXNzYWdlLCBjb250ZXh0LCBlcnJvciB9ID0gcGFyYW1zO1xuICAgICAgZGF0YWRvZ0xvZ3MubG9nZ2VyW3R5cGUgfHwgJ2Vycm9yJ10obWVzc2FnZSwgY29udGV4dCwgZXJyb3IpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIG5vdCB0byBkb1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyVG9CYXNlNjQoYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHN0cmluZyB7XG4gIGxldCBiaW5hcnkgPSAnJztcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xuICB9XG4gIHJldHVybiB3aW5kb3cuYnRvYShiaW5hcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0VG9CdWZmZXIoYmFzZTY0OiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG4gIGNvbnN0IGJpbmFyeVN0cmluZyA9IHdpbmRvdy5hdG9iKGJhc2U2NCk7XG4gIGNvbnN0IGxlbiA9IGJpbmFyeVN0cmluZy5sZW5ndGg7XG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgIGJ5dGVzW2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gIH1cbiAgcmV0dXJuIGJ5dGVzLmJ1ZmZlcjtcbn1cbiJdfQ==
@@ -306,6 +306,10 @@ class MonkeyEcxUtils {
306
306
  MX: {
307
307
  CPF: CountryMasks.RFC1,
308
308
  CNPJ: CountryMasks.RFC2
309
+ },
310
+ US: {
311
+ CPF: CountryMasks.EIN,
312
+ CNPJ: CountryMasks.EIN
309
313
  }
310
314
  }[country.toUpperCase()]) === null || _a === void 0 ? void 0 : _a[type];
311
315
  }