🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@lacussoft/cpf-fmt

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@lacussoft/cpf-fmt - npm Package Compare versions

Comparing version
1.4.0
to
1.4.1
+1
-1
build/index.cjs

@@ -69,2 +69,2 @@ 'use strict';

module.exports = cpfFmt;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2Utb3B0aW9ucy50cyIsIi4uL3NyYy9jcGYtZm10LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZXJnZURlZXAgZnJvbSAnZGVlcG1lcmdlJztcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW1BdPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBkZWxpbWl0ZXJzOiB7XG4gICAgZGFzaDogc3RyaW5nO1xuICAgIGRvdDogc3RyaW5nO1xuICB9O1xuICBlc2NhcGU6IGJvb2xlYW47XG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgaGlkZGVuS2V5OiBzdHJpbmc7XG4gIGhpZGRlblJhbmdlOiB7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgfTtcbiAgb25GYWlsOiAodmFsdWU6IHN0cmluZywgZXJyb3I6IEVycm9yKSA9PiBPbkVyckZhbGxiYWNrO1xufVxuXG5leHBvcnQgdHlwZSBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IERlZXBQYXJ0aWFsPFxuICBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPlxuPjtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPHN0cmluZz4gPSB7XG4gIGRlbGltaXRlcnM6IHtcbiAgICBkb3Q6ICcuJyxcbiAgICBkYXNoOiAnLScsXG4gIH0sXG4gIGhpZGRlblJhbmdlOiB7XG4gICAgc3RhcnQ6IDMsXG4gICAgZW5kOiAxMCxcbiAgfSxcbiAgb25GYWlsOiAodmFsdWUpID0+IHZhbHVlLFxuICBoaWRkZW5LZXk6ICcqJyxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZXNjYXBlOiBmYWxzZSxcbn07XG5cbi8qKlxuICogTWVyZ2UgY3VzdG9tIG9wdGlvbnMgdG8gdGhlIGRlZmF1bHQgb25lcy5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VPcHRpb25zPE9uRXJyRmFsbGJhY2s+KFxuICBjdXN0b21PcHRpb25zOiBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IHt9LFxuKTogQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBjb25zdCBvcHRpb25zID0gbWVyZ2VEZWVwKFxuICAgIGRlZmF1bHRPcHRpb25zLFxuICAgIGN1c3RvbU9wdGlvbnMsXG4gICkgYXMgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz47XG5cbiAgaWYgKG9wdGlvbnMuaGlkZGVuKSB7XG4gICAgaWYgKFxuICAgICAgaXNOYU4ob3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCkgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID4gMTBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09wdGlvbiBcImhpZGRlblJhbmdlLnN0YXJ0XCIgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwLicpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGlzTmFOKG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kKSB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA+IDEwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPcHRpb24gXCJoaWRkZW5SYW5nZS5lbmRcIiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTAuJyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPiBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCkge1xuICAgICAgY29uc3QgYXV4ID0gb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPSBvcHRpb25zLmhpZGRlblJhbmdlLmVuZDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kID0gYXV4O1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5vbkZhaWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgb3B0aW9uIFwib25GYWlsXCIgbXVzdCBiZSBhIGNhbGxiYWNrIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lcmdlT3B0aW9ucztcbiIsImltcG9ydCB7IGVzY2FwZSBhcyBlc2NhcGVIVE1MIH0gZnJvbSAnaHRtbC1lc2NhcGVyJztcbmltcG9ydCBudW1Pbmx5IGZyb20gJ251bS1vbmx5JztcblxuaW1wb3J0IG1lcmdlT3B0aW9ucyBmcm9tICcuL21lcmdlLW9wdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBDcGZGb3JtYXR0aW5nT3B0aW9ucyB9IGZyb20gJy4vbWVyZ2Utb3B0aW9ucyc7XG5cbi8qKlxuICogVmFsaWRhdGUgYSBnaXZlbiBDUEYgY2hhciBzZXF1ZW5jZS5cbiAqL1xuZnVuY3Rpb24gY3BmRm10PE9uRXJyRmFsbGJhY2sgPSBzdHJpbmc+KFxuICBjcGZTdHJpbmc6IHN0cmluZyxcbiAgb3B0aW9ucz86IENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgQ1BGX0xFTkdUSCA9IDExO1xuICBjb25zdCBjcGZBcnJheSA9IG51bU9ubHkoY3BmU3RyaW5nKS5zcGxpdCgnJyk7XG4gIGNvbnN0IGN1c3RvbU9wdGlvbnMgPSBtZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgaWYgKGNwZkFycmF5Lmxlbmd0aCAhPT0gQ1BGX0xFTkdUSCkge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBQYXJhbWV0ZXIgXCIke2NwZlN0cmluZ31cIiBkb2VzIG5vdCBjb250YWluICR7Q1BGX0xFTkdUSH0gZGlnaXRzLmApO1xuXG4gICAgcmV0dXJuIGN1c3RvbU9wdGlvbnMub25GYWlsKGNwZlN0cmluZywgZXJyb3IpIGFzIHN0cmluZztcbiAgfVxuXG4gIGlmIChjdXN0b21PcHRpb25zLmhpZGRlbikge1xuICAgIGZvciAobGV0IGkgPSBjdXN0b21PcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0OyBpIDw9IGN1c3RvbU9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kOyBpKyspIHtcbiAgICAgIGNwZkFycmF5W2ldID0gY3VzdG9tT3B0aW9ucy5oaWRkZW5LZXk7XG4gICAgfVxuICB9XG5cbiAgY3BmQXJyYXkuc3BsaWNlKDksIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kYXNoKTtcbiAgY3BmQXJyYXkuc3BsaWNlKDYsIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kb3QpO1xuICBjcGZBcnJheS5zcGxpY2UoMywgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRvdCk7XG4gIGNvbnN0IGNwZlByZXR0eSA9IGNwZkFycmF5LmpvaW4oJycpO1xuXG4gIGlmIChjdXN0b21PcHRpb25zLmVzY2FwZSkge1xuICAgIHJldHVybiBlc2NhcGVIVE1MKGNwZlByZXR0eSk7XG4gIH1cblxuICByZXR1cm4gY3BmUHJldHR5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcGZGbXQ7XG4iXSwibmFtZXMiOlsiZXNjYXBlSFRNTCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBeUJBLE1BQU0sY0FBcUQsR0FBQTtBQUFBLEVBQ3pELFVBQVksRUFBQTtBQUFBLElBQ1YsR0FBSyxFQUFBLEdBQUE7QUFBQSxJQUNMLElBQU0sRUFBQTtBQUFBLEdBQ1I7QUFBQSxFQUNBLFdBQWEsRUFBQTtBQUFBLElBQ1gsS0FBTyxFQUFBLENBQUE7QUFBQSxJQUNQLEdBQUssRUFBQTtBQUFBLEdBQ1A7QUFBQSxFQUNBLE1BQUEsRUFBUSxDQUFDLEtBQVUsS0FBQSxLQUFBO0FBQUEsRUFDbkIsU0FBVyxFQUFBLEdBQUE7QUFBQSxFQUNYLE1BQVEsRUFBQSxLQUFBO0FBQUEsRUFDUixNQUFRLEVBQUE7QUFDVixDQUFBO0FBS0EsU0FBUyxZQUFBLENBQ1AsYUFBcUQsR0FBQSxFQUNWLEVBQUE7QUFDM0MsRUFBQSxNQUFNLE9BQVUsR0FBQSxTQUFBO0FBQUEsSUFDZCxjQUFBO0FBQUEsSUFDQTtBQUFBLEdBQ0Y7QUFFQSxFQUFBLElBQUksUUFBUSxNQUFRLEVBQUE7QUFDbEIsSUFBQSxJQUNFLEtBQU0sQ0FBQSxPQUFBLENBQVEsV0FBWSxDQUFBLEtBQUssQ0FDL0IsSUFBQSxPQUFBLENBQVEsV0FBWSxDQUFBLEtBQUEsR0FBUSxDQUM1QixJQUFBLE9BQUEsQ0FBUSxXQUFZLENBQUEsS0FBQSxHQUFRLEVBQzVCLEVBQUE7QUFDQSxNQUFNLE1BQUEsSUFBSSxVQUFVLCtEQUErRCxDQUFBO0FBQUE7QUFHckYsSUFBQSxJQUNFLEtBQU0sQ0FBQSxPQUFBLENBQVEsV0FBWSxDQUFBLEdBQUcsQ0FDN0IsSUFBQSxPQUFBLENBQVEsV0FBWSxDQUFBLEdBQUEsR0FBTSxDQUMxQixJQUFBLE9BQUEsQ0FBUSxXQUFZLENBQUEsR0FBQSxHQUFNLEVBQzFCLEVBQUE7QUFDQSxNQUFNLE1BQUEsSUFBSSxVQUFVLDZEQUE2RCxDQUFBO0FBQUE7QUFHbkYsSUFBQSxJQUFJLE9BQVEsQ0FBQSxXQUFBLENBQVksS0FBUSxHQUFBLE9BQUEsQ0FBUSxZQUFZLEdBQUssRUFBQTtBQUN2RCxNQUFNLE1BQUEsR0FBQSxHQUFNLFFBQVEsV0FBWSxDQUFBLEtBQUE7QUFDaEMsTUFBUSxPQUFBLENBQUEsV0FBQSxDQUFZLEtBQVEsR0FBQSxPQUFBLENBQVEsV0FBWSxDQUFBLEdBQUE7QUFDaEQsTUFBQSxPQUFBLENBQVEsWUFBWSxHQUFNLEdBQUEsR0FBQTtBQUFBO0FBQzVCO0FBR0YsRUFBSSxJQUFBLE9BQU8sT0FBUSxDQUFBLE1BQUEsS0FBVyxVQUFZLEVBQUE7QUFDeEMsSUFBTSxNQUFBLElBQUksVUFBVSxrREFBa0QsQ0FBQTtBQUFBO0FBR3hFLEVBQU8sT0FBQSxPQUFBO0FBQ1Q7O0FDdkVBLFNBQVMsTUFBQSxDQUNQLFdBQ0EsT0FDUSxFQUFBO0FBQ1IsRUFBQSxNQUFNLFVBQWEsR0FBQSxFQUFBO0FBQ25CLEVBQUEsTUFBTSxRQUFXLEdBQUEsT0FBQSxDQUFRLFNBQVMsQ0FBQSxDQUFFLE1BQU0sRUFBRSxDQUFBO0FBQzVDLEVBQU0sTUFBQSxhQUFBLEdBQWdCLGFBQWEsT0FBTyxDQUFBO0FBRTFDLEVBQUksSUFBQSxRQUFBLENBQVMsV0FBVyxVQUFZLEVBQUE7QUFDbEMsSUFBQSxNQUFNLFFBQVEsSUFBSSxLQUFBLENBQU0sY0FBYyxTQUFTLENBQUEsbUJBQUEsRUFBc0IsVUFBVSxDQUFVLFFBQUEsQ0FBQSxDQUFBO0FBRXpGLElBQU8sT0FBQSxhQUFBLENBQWMsTUFBTyxDQUFBLFNBQUEsRUFBVyxLQUFLLENBQUE7QUFBQTtBQUc5QyxFQUFBLElBQUksY0FBYyxNQUFRLEVBQUE7QUFDeEIsSUFBUyxLQUFBLElBQUEsQ0FBQSxHQUFJLGNBQWMsV0FBWSxDQUFBLEtBQUEsRUFBTyxLQUFLLGFBQWMsQ0FBQSxXQUFBLENBQVksS0FBSyxDQUFLLEVBQUEsRUFBQTtBQUNyRixNQUFTLFFBQUEsQ0FBQSxDQUFDLElBQUksYUFBYyxDQUFBLFNBQUE7QUFBQTtBQUM5QjtBQUdGLEVBQUEsUUFBQSxDQUFTLE1BQU8sQ0FBQSxDQUFBLEVBQUcsQ0FBRyxFQUFBLGFBQUEsQ0FBYyxXQUFXLElBQUksQ0FBQTtBQUNuRCxFQUFBLFFBQUEsQ0FBUyxNQUFPLENBQUEsQ0FBQSxFQUFHLENBQUcsRUFBQSxhQUFBLENBQWMsV0FBVyxHQUFHLENBQUE7QUFDbEQsRUFBQSxRQUFBLENBQVMsTUFBTyxDQUFBLENBQUEsRUFBRyxDQUFHLEVBQUEsYUFBQSxDQUFjLFdBQVcsR0FBRyxDQUFBO0FBQ2xELEVBQU0sTUFBQSxTQUFBLEdBQVksUUFBUyxDQUFBLElBQUEsQ0FBSyxFQUFFLENBQUE7QUFFbEMsRUFBQSxJQUFJLGNBQWMsTUFBUSxFQUFBO0FBQ3hCLElBQUEsT0FBT0EsbUJBQVcsU0FBUyxDQUFBO0FBQUE7QUFHN0IsRUFBTyxPQUFBLFNBQUE7QUFDVDs7OzsifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2Utb3B0aW9ucy50cyIsIi4uL3NyYy9jcGYtZm10LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZXJnZURlZXAgZnJvbSAnZGVlcG1lcmdlJztcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW1BdPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBkZWxpbWl0ZXJzOiB7XG4gICAgZGFzaDogc3RyaW5nO1xuICAgIGRvdDogc3RyaW5nO1xuICB9O1xuICBlc2NhcGU6IGJvb2xlYW47XG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgaGlkZGVuS2V5OiBzdHJpbmc7XG4gIGhpZGRlblJhbmdlOiB7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgfTtcbiAgb25GYWlsOiAodmFsdWU6IHN0cmluZywgZXJyb3I6IEVycm9yKSA9PiBPbkVyckZhbGxiYWNrO1xufVxuXG5leHBvcnQgdHlwZSBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IERlZXBQYXJ0aWFsPFxuICBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPlxuPjtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPHN0cmluZz4gPSB7XG4gIGRlbGltaXRlcnM6IHtcbiAgICBkb3Q6ICcuJyxcbiAgICBkYXNoOiAnLScsXG4gIH0sXG4gIGhpZGRlblJhbmdlOiB7XG4gICAgc3RhcnQ6IDMsXG4gICAgZW5kOiAxMCxcbiAgfSxcbiAgb25GYWlsOiAodmFsdWUpID0+IHZhbHVlLFxuICBoaWRkZW5LZXk6ICcqJyxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZXNjYXBlOiBmYWxzZSxcbn07XG5cbi8qKlxuICogTWVyZ2UgY3VzdG9tIG9wdGlvbnMgdG8gdGhlIGRlZmF1bHQgb25lcy5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VPcHRpb25zPE9uRXJyRmFsbGJhY2s+KFxuICBjdXN0b21PcHRpb25zOiBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IHt9LFxuKTogQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBjb25zdCBvcHRpb25zID0gbWVyZ2VEZWVwKFxuICAgIGRlZmF1bHRPcHRpb25zLFxuICAgIGN1c3RvbU9wdGlvbnMsXG4gICkgYXMgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz47XG5cbiAgaWYgKG9wdGlvbnMuaGlkZGVuKSB7XG4gICAgaWYgKFxuICAgICAgaXNOYU4ob3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCkgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID4gMTBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09wdGlvbiBcImhpZGRlblJhbmdlLnN0YXJ0XCIgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwLicpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGlzTmFOKG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kKSB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA+IDEwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPcHRpb24gXCJoaWRkZW5SYW5nZS5lbmRcIiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTAuJyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPiBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCkge1xuICAgICAgY29uc3QgYXV4ID0gb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPSBvcHRpb25zLmhpZGRlblJhbmdlLmVuZDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kID0gYXV4O1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5vbkZhaWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgb3B0aW9uIFwib25GYWlsXCIgbXVzdCBiZSBhIGNhbGxiYWNrIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lcmdlT3B0aW9ucztcbiIsImltcG9ydCB7IGVzY2FwZSBhcyBlc2NhcGVIVE1MIH0gZnJvbSAnaHRtbC1lc2NhcGVyJztcbmltcG9ydCBudW1Pbmx5IGZyb20gJ251bS1vbmx5JztcblxuaW1wb3J0IG1lcmdlT3B0aW9ucyBmcm9tICcuL21lcmdlLW9wdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBDcGZGb3JtYXR0aW5nT3B0aW9ucyB9IGZyb20gJy4vbWVyZ2Utb3B0aW9ucyc7XG5cbi8qKlxuICogRm9ybWF0IGEgZ2l2ZW4gQ1BGIGNoYXIgc2VxdWVuY2UuXG4gKi9cbmZ1bmN0aW9uIGNwZkZtdDxPbkVyckZhbGxiYWNrID0gc3RyaW5nPihcbiAgY3BmU3RyaW5nOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPixcbik6IHN0cmluZyB7XG4gIGNvbnN0IENQRl9MRU5HVEggPSAxMTtcbiAgY29uc3QgY3BmQXJyYXkgPSBudW1Pbmx5KGNwZlN0cmluZykuc3BsaXQoJycpO1xuICBjb25zdCBjdXN0b21PcHRpb25zID0gbWVyZ2VPcHRpb25zKG9wdGlvbnMpO1xuXG4gIGlmIChjcGZBcnJheS5sZW5ndGggIT09IENQRl9MRU5HVEgpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgUGFyYW1ldGVyIFwiJHtjcGZTdHJpbmd9XCIgZG9lcyBub3QgY29udGFpbiAke0NQRl9MRU5HVEh9IGRpZ2l0cy5gKTtcblxuICAgIHJldHVybiBjdXN0b21PcHRpb25zLm9uRmFpbChjcGZTdHJpbmcsIGVycm9yKSBhcyBzdHJpbmc7XG4gIH1cblxuICBpZiAoY3VzdG9tT3B0aW9ucy5oaWRkZW4pIHtcbiAgICBmb3IgKGxldCBpID0gY3VzdG9tT3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydDsgaSA8PSBjdXN0b21PcHRpb25zLmhpZGRlblJhbmdlLmVuZDsgaSsrKSB7XG4gICAgICBjcGZBcnJheVtpXSA9IGN1c3RvbU9wdGlvbnMuaGlkZGVuS2V5O1xuICAgIH1cbiAgfVxuXG4gIGNwZkFycmF5LnNwbGljZSg5LCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZGFzaCk7XG4gIGNwZkFycmF5LnNwbGljZSg2LCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZG90KTtcbiAgY3BmQXJyYXkuc3BsaWNlKDMsIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kb3QpO1xuICBjb25zdCBjcGZQcmV0dHkgPSBjcGZBcnJheS5qb2luKCcnKTtcblxuICBpZiAoY3VzdG9tT3B0aW9ucy5lc2NhcGUpIHtcbiAgICByZXR1cm4gZXNjYXBlSFRNTChjcGZQcmV0dHkpO1xuICB9XG5cbiAgcmV0dXJuIGNwZlByZXR0eTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3BmRm10O1xuIl0sIm5hbWVzIjpbImVzY2FwZUhUTUwiXSwibWFwcGluZ3MiOiI7Ozs7OztBQXlCQSxNQUFNLGNBQXFELEdBQUE7QUFBQSxFQUN6RCxVQUFZLEVBQUE7QUFBQSxJQUNWLEdBQUssRUFBQSxHQUFBO0FBQUEsSUFDTCxJQUFNLEVBQUE7QUFBQSxHQUNSO0FBQUEsRUFDQSxXQUFhLEVBQUE7QUFBQSxJQUNYLEtBQU8sRUFBQSxDQUFBO0FBQUEsSUFDUCxHQUFLLEVBQUE7QUFBQSxHQUNQO0FBQUEsRUFD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

@@ -21,3 +21,3 @@ type DeepPartial<T> = {

/**
* Validate a given CPF char sequence.
* Format a given CPF char sequence.
*/

@@ -24,0 +24,0 @@ declare function cpfFmt<OnErrFallback = string>(cpfString: string, options?: CpfFormattingOptions<OnErrFallback>): string;

@@ -67,2 +67,2 @@ import { escape } from 'html-escaper';

export { cpfFmt as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2Utb3B0aW9ucy50cyIsIi4uL3NyYy9jcGYtZm10LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZXJnZURlZXAgZnJvbSAnZGVlcG1lcmdlJztcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW1BdPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBkZWxpbWl0ZXJzOiB7XG4gICAgZGFzaDogc3RyaW5nO1xuICAgIGRvdDogc3RyaW5nO1xuICB9O1xuICBlc2NhcGU6IGJvb2xlYW47XG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgaGlkZGVuS2V5OiBzdHJpbmc7XG4gIGhpZGRlblJhbmdlOiB7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgfTtcbiAgb25GYWlsOiAodmFsdWU6IHN0cmluZywgZXJyb3I6IEVycm9yKSA9PiBPbkVyckZhbGxiYWNrO1xufVxuXG5leHBvcnQgdHlwZSBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IERlZXBQYXJ0aWFsPFxuICBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPlxuPjtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPHN0cmluZz4gPSB7XG4gIGRlbGltaXRlcnM6IHtcbiAgICBkb3Q6ICcuJyxcbiAgICBkYXNoOiAnLScsXG4gIH0sXG4gIGhpZGRlblJhbmdlOiB7XG4gICAgc3RhcnQ6IDMsXG4gICAgZW5kOiAxMCxcbiAgfSxcbiAgb25GYWlsOiAodmFsdWUpID0+IHZhbHVlLFxuICBoaWRkZW5LZXk6ICcqJyxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZXNjYXBlOiBmYWxzZSxcbn07XG5cbi8qKlxuICogTWVyZ2UgY3VzdG9tIG9wdGlvbnMgdG8gdGhlIGRlZmF1bHQgb25lcy5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VPcHRpb25zPE9uRXJyRmFsbGJhY2s+KFxuICBjdXN0b21PcHRpb25zOiBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IHt9LFxuKTogQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBjb25zdCBvcHRpb25zID0gbWVyZ2VEZWVwKFxuICAgIGRlZmF1bHRPcHRpb25zLFxuICAgIGN1c3RvbU9wdGlvbnMsXG4gICkgYXMgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz47XG5cbiAgaWYgKG9wdGlvbnMuaGlkZGVuKSB7XG4gICAgaWYgKFxuICAgICAgaXNOYU4ob3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCkgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID4gMTBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09wdGlvbiBcImhpZGRlblJhbmdlLnN0YXJ0XCIgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwLicpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGlzTmFOKG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kKSB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA+IDEwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPcHRpb24gXCJoaWRkZW5SYW5nZS5lbmRcIiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTAuJyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPiBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCkge1xuICAgICAgY29uc3QgYXV4ID0gb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPSBvcHRpb25zLmhpZGRlblJhbmdlLmVuZDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kID0gYXV4O1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5vbkZhaWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgb3B0aW9uIFwib25GYWlsXCIgbXVzdCBiZSBhIGNhbGxiYWNrIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lcmdlT3B0aW9ucztcbiIsImltcG9ydCB7IGVzY2FwZSBhcyBlc2NhcGVIVE1MIH0gZnJvbSAnaHRtbC1lc2NhcGVyJztcbmltcG9ydCBudW1Pbmx5IGZyb20gJ251bS1vbmx5JztcblxuaW1wb3J0IG1lcmdlT3B0aW9ucyBmcm9tICcuL21lcmdlLW9wdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBDcGZGb3JtYXR0aW5nT3B0aW9ucyB9IGZyb20gJy4vbWVyZ2Utb3B0aW9ucyc7XG5cbi8qKlxuICogVmFsaWRhdGUgYSBnaXZlbiBDUEYgY2hhciBzZXF1ZW5jZS5cbiAqL1xuZnVuY3Rpb24gY3BmRm10PE9uRXJyRmFsbGJhY2sgPSBzdHJpbmc+KFxuICBjcGZTdHJpbmc6IHN0cmluZyxcbiAgb3B0aW9ucz86IENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgQ1BGX0xFTkdUSCA9IDExO1xuICBjb25zdCBjcGZBcnJheSA9IG51bU9ubHkoY3BmU3RyaW5nKS5zcGxpdCgnJyk7XG4gIGNvbnN0IGN1c3RvbU9wdGlvbnMgPSBtZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgaWYgKGNwZkFycmF5Lmxlbmd0aCAhPT0gQ1BGX0xFTkdUSCkge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBQYXJhbWV0ZXIgXCIke2NwZlN0cmluZ31cIiBkb2VzIG5vdCBjb250YWluICR7Q1BGX0xFTkdUSH0gZGlnaXRzLmApO1xuXG4gICAgcmV0dXJuIGN1c3RvbU9wdGlvbnMub25GYWlsKGNwZlN0cmluZywgZXJyb3IpIGFzIHN0cmluZztcbiAgfVxuXG4gIGlmIChjdXN0b21PcHRpb25zLmhpZGRlbikge1xuICAgIGZvciAobGV0IGkgPSBjdXN0b21PcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0OyBpIDw9IGN1c3RvbU9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kOyBpKyspIHtcbiAgICAgIGNwZkFycmF5W2ldID0gY3VzdG9tT3B0aW9ucy5oaWRkZW5LZXk7XG4gICAgfVxuICB9XG5cbiAgY3BmQXJyYXkuc3BsaWNlKDksIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kYXNoKTtcbiAgY3BmQXJyYXkuc3BsaWNlKDYsIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kb3QpO1xuICBjcGZBcnJheS5zcGxpY2UoMywgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRvdCk7XG4gIGNvbnN0IGNwZlByZXR0eSA9IGNwZkFycmF5LmpvaW4oJycpO1xuXG4gIGlmIChjdXN0b21PcHRpb25zLmVzY2FwZSkge1xuICAgIHJldHVybiBlc2NhcGVIVE1MKGNwZlByZXR0eSk7XG4gIH1cblxuICByZXR1cm4gY3BmUHJldHR5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcGZGbXQ7XG4iXSwibmFtZXMiOlsiZXNjYXBlSFRNTCJdLCJtYXBwaW5ncyI6Ijs7OztBQXlCQSxNQUFNLGNBQXFELEdBQUE7QUFBQSxFQUN6RCxVQUFZLEVBQUE7QUFBQSxJQUNWLEdBQUssRUFBQSxHQUFBO0FBQUEsSUFDTCxJQUFNLEVBQUE7QUFBQSxHQUNSO0FBQUEsRUFDQSxXQUFhLEVBQUE7QUFBQSxJQUNYLEtBQU8sRUFBQSxDQUFBO0FBQUEsSUFDUCxHQUFLLEVBQUE7QUFBQSxHQUNQO0FBQUEsRUFD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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubWpzIiwic291cmNlcyI6WyIuLi9zcmMvbWVyZ2Utb3B0aW9ucy50cyIsIi4uL3NyYy9jcGYtZm10LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtZXJnZURlZXAgZnJvbSAnZGVlcG1lcmdlJztcblxudHlwZSBEZWVwUGFydGlhbDxUPiA9IHtcbiAgW1AgaW4ga2V5b2YgVF0/OiBEZWVwUGFydGlhbDxUW1BdPjtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBkZWxpbWl0ZXJzOiB7XG4gICAgZGFzaDogc3RyaW5nO1xuICAgIGRvdDogc3RyaW5nO1xuICB9O1xuICBlc2NhcGU6IGJvb2xlYW47XG4gIGhpZGRlbjogYm9vbGVhbjtcbiAgaGlkZGVuS2V5OiBzdHJpbmc7XG4gIGhpZGRlblJhbmdlOiB7XG4gICAgZW5kOiBudW1iZXI7XG4gICAgc3RhcnQ6IG51bWJlcjtcbiAgfTtcbiAgb25GYWlsOiAodmFsdWU6IHN0cmluZywgZXJyb3I6IEVycm9yKSA9PiBPbkVyckZhbGxiYWNrO1xufVxuXG5leHBvcnQgdHlwZSBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IERlZXBQYXJ0aWFsPFxuICBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPlxuPjtcblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPHN0cmluZz4gPSB7XG4gIGRlbGltaXRlcnM6IHtcbiAgICBkb3Q6ICcuJyxcbiAgICBkYXNoOiAnLScsXG4gIH0sXG4gIGhpZGRlblJhbmdlOiB7XG4gICAgc3RhcnQ6IDMsXG4gICAgZW5kOiAxMCxcbiAgfSxcbiAgb25GYWlsOiAodmFsdWUpID0+IHZhbHVlLFxuICBoaWRkZW5LZXk6ICcqJyxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZXNjYXBlOiBmYWxzZSxcbn07XG5cbi8qKlxuICogTWVyZ2UgY3VzdG9tIG9wdGlvbnMgdG8gdGhlIGRlZmF1bHQgb25lcy5cbiAqL1xuZnVuY3Rpb24gbWVyZ2VPcHRpb25zPE9uRXJyRmFsbGJhY2s+KFxuICBjdXN0b21PcHRpb25zOiBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiA9IHt9LFxuKTogQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4ge1xuICBjb25zdCBvcHRpb25zID0gbWVyZ2VEZWVwKFxuICAgIGRlZmF1bHRPcHRpb25zLFxuICAgIGN1c3RvbU9wdGlvbnMsXG4gICkgYXMgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz47XG5cbiAgaWYgKG9wdGlvbnMuaGlkZGVuKSB7XG4gICAgaWYgKFxuICAgICAgaXNOYU4ob3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCkgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID4gMTBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09wdGlvbiBcImhpZGRlblJhbmdlLnN0YXJ0XCIgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwLicpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIGlzTmFOKG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kKSB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPCAwIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA+IDEwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPcHRpb24gXCJoaWRkZW5SYW5nZS5lbmRcIiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTAuJyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPiBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCkge1xuICAgICAgY29uc3QgYXV4ID0gb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPSBvcHRpb25zLmhpZGRlblJhbmdlLmVuZDtcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kID0gYXV4O1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5vbkZhaWwgIT09ICdmdW5jdGlvbicpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgb3B0aW9uIFwib25GYWlsXCIgbXVzdCBiZSBhIGNhbGxiYWNrIGZ1bmN0aW9uLicpO1xuICB9XG5cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IG1lcmdlT3B0aW9ucztcbiIsImltcG9ydCB7IGVzY2FwZSBhcyBlc2NhcGVIVE1MIH0gZnJvbSAnaHRtbC1lc2NhcGVyJztcbmltcG9ydCBudW1Pbmx5IGZyb20gJ251bS1vbmx5JztcblxuaW1wb3J0IG1lcmdlT3B0aW9ucyBmcm9tICcuL21lcmdlLW9wdGlvbnMnO1xuaW1wb3J0IHR5cGUgeyBDcGZGb3JtYXR0aW5nT3B0aW9ucyB9IGZyb20gJy4vbWVyZ2Utb3B0aW9ucyc7XG5cbi8qKlxuICogRm9ybWF0IGEgZ2l2ZW4gQ1BGIGNoYXIgc2VxdWVuY2UuXG4gKi9cbmZ1bmN0aW9uIGNwZkZtdDxPbkVyckZhbGxiYWNrID0gc3RyaW5nPihcbiAgY3BmU3RyaW5nOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPixcbik6IHN0cmluZyB7XG4gIGNvbnN0IENQRl9MRU5HVEggPSAxMTtcbiAgY29uc3QgY3BmQXJyYXkgPSBudW1Pbmx5KGNwZlN0cmluZykuc3BsaXQoJycpO1xuICBjb25zdCBjdXN0b21PcHRpb25zID0gbWVyZ2VPcHRpb25zKG9wdGlvbnMpO1xuXG4gIGlmIChjcGZBcnJheS5sZW5ndGggIT09IENQRl9MRU5HVEgpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgUGFyYW1ldGVyIFwiJHtjcGZTdHJpbmd9XCIgZG9lcyBub3QgY29udGFpbiAke0NQRl9MRU5HVEh9IGRpZ2l0cy5gKTtcblxuICAgIHJldHVybiBjdXN0b21PcHRpb25zLm9uRmFpbChjcGZTdHJpbmcsIGVycm9yKSBhcyBzdHJpbmc7XG4gIH1cblxuICBpZiAoY3VzdG9tT3B0aW9ucy5oaWRkZW4pIHtcbiAgICBmb3IgKGxldCBpID0gY3VzdG9tT3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydDsgaSA8PSBjdXN0b21PcHRpb25zLmhpZGRlblJhbmdlLmVuZDsgaSsrKSB7XG4gICAgICBjcGZBcnJheVtpXSA9IGN1c3RvbU9wdGlvbnMuaGlkZGVuS2V5O1xuICAgIH1cbiAgfVxuXG4gIGNwZkFycmF5LnNwbGljZSg5LCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZGFzaCk7XG4gIGNwZkFycmF5LnNwbGljZSg2LCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZG90KTtcbiAgY3BmQXJyYXkuc3BsaWNlKDMsIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kb3QpO1xuICBjb25zdCBjcGZQcmV0dHkgPSBjcGZBcnJheS5qb2luKCcnKTtcblxuICBpZiAoY3VzdG9tT3B0aW9ucy5lc2NhcGUpIHtcbiAgICByZXR1cm4gZXNjYXBlSFRNTChjcGZQcmV0dHkpO1xuICB9XG5cbiAgcmV0dXJuIGNwZlByZXR0eTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3BmRm10O1xuIl0sIm5hbWVzIjpbImVzY2FwZUhUTUwiXSwibWFwcGluZ3MiOiI7Ozs7QUF5QkEsTUFBTSxjQUFxRCxHQUFBO0FBQUEsRUFDekQsVUFBWSxFQUFBO0FBQUEsSUFDVixHQUFLLEVBQUEsR0FBQTtBQUFBLElBQ0wsSUFBTSxFQUFBO0FBQUEsR0FDUjtBQUFBLEVBQ0EsV0FBYSxFQUFBO0FBQUEsSUFDWCxLQUFPLEVBQUEsQ0FBQTtBQUFBLElBQ1AsR0FBSyxFQUFBO0FBQUEsR0FDUDtBQUFBLEVBQ0Es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
# @lacussoft/cpf-fmt
## 1.4.1
### Patch Changes
- 23ca50d: Fixed documentation examples.
## 1.4.0

@@ -4,0 +10,0 @@

/**
* LacusSoft :: cpf-fmt v1.4.0
* LacusSoft :: cpf-fmt v1.4.1
*

@@ -240,3 +240,3 @@ * @author Julio L. Muller.

/**
* Validate a given CPF char sequence.
* Format a given CPF char sequence.
*/

@@ -269,2 +269,2 @@ function cpfFmt(cpfString, options) {

}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWZtdC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2h0bWwtZXNjYXBlci9lc20vaW5kZXguanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbnVtLW9ubHkvYnVpbGQvaW5kZXguY2pzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RlZXBtZXJnZS9kaXN0L2Nqcy5qcyIsIi4uL3NyYy9tZXJnZS1vcHRpb25zLnRzIiwiLi4vc3JjL2NwZi1mbXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTctcHJlc2VudCBieSBBbmRyZWEgR2lhbW1hcmNoaSAtIEBXZWJSZWZsZWN0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5jb25zdCB7cmVwbGFjZX0gPSAnJztcblxuLy8gZXNjYXBlXG5jb25zdCBlcyA9IC8mKD86YW1wfCMzOHxsdHwjNjB8Z3R8IzYyfGFwb3N8IzM5fHF1b3R8IzM0KTsvZztcbmNvbnN0IGNhID0gL1smPD4nXCJdL2c7XG5cbmNvbnN0IGVzY2EgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICBcIidcIjogJyYjMzk7JyxcbiAgJ1wiJzogJyZxdW90Oydcbn07XG5jb25zdCBwZSA9IG0gPT4gZXNjYVttXTtcblxuLyoqXG4gKiBTYWZlbHkgZXNjYXBlIEhUTUwgZW50aXRpZXMgc3VjaCBhcyBgJmAsIGA8YCwgYD5gLCBgXCJgLCBhbmQgYCdgLlxuICogQHBhcmFtIHtzdHJpbmd9IGVzIHRoZSBpbnB1dCB0byBzYWZlbHkgZXNjYXBlXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgZXNjYXBlZCBpbnB1dCwgYW5kIGl0ICoqdGhyb3dzKiogYW4gZXJyb3IgaWZcbiAqICB0aGUgaW5wdXQgdHlwZSBpcyB1bmV4cGVjdGVkLCBleGNlcHQgZm9yIGJvb2xlYW4gYW5kIG51bWJlcnMsXG4gKiAgY29udmVydGVkIGFzIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGVzY2FwZSA9IGVzID0+IHJlcGxhY2UuY2FsbChlcywgY2EsIHBlKTtcblxuXG4vLyB1bmVzY2FwZVxuY29uc3QgdW5lcyA9IHtcbiAgJyZhbXA7JzogJyYnLFxuICAnJiMzODsnOiAnJicsXG4gICcmbHQ7JzogJzwnLFxuICAnJiM2MDsnOiAnPCcsXG4gICcmZ3Q7JzogJz4nLFxuICAnJiM2MjsnOiAnPicsXG4gICcmYXBvczsnOiBcIidcIixcbiAgJyYjMzk7JzogXCInXCIsXG4gICcmcXVvdDsnOiAnXCInLFxuICAnJiMzNDsnOiAnXCInXG59O1xuY29uc3QgY2FwZSA9IG0gPT4gdW5lc1ttXTtcblxuLyoqXG4gKiBTYWZlbHkgdW5lc2NhcGUgcHJldmlvdXNseSBlc2NhcGVkIGVudGl0aWVzIHN1Y2ggYXMgYCZgLCBgPGAsIGA+YCwgYFwiYCxcbiAqIGFuZCBgJ2AuXG4gKiBAcGFyYW0ge3N0cmluZ30gdW4gYSBwcmV2aW91c2x5IGVzY2FwZWQgc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgdW5lc2NhcGVkIGlucHV0LCBhbmQgaXQgKip0aHJvd3MqKiBhbiBlcnJvciBpZlxuICogIHRoZSBpbnB1dCB0eXBlIGlzIHVuZXhwZWN0ZWQsIGV4Y2VwdCBmb3IgYm9vbGVhbiBhbmQgbnVtYmVycyxcbiAqICBjb252ZXJ0ZWQgYXMgc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgdW5lc2NhcGUgPSB1biA9PiByZXBsYWNlLmNhbGwodW4sIGVzLCBjYXBlKTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gbnVtT25seSh0YXJnZXQpIHtcbiAgcmV0dXJuIFN0cmluZyh0YXJnZXQpLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBudW1Pbmx5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVkycHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOXpjbU12Ym5WdExXOXViSGt1ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lablZ1WTNScGIyNGdiblZ0VDI1c2VTaDBZWEpuWlhRNklIVnVhMjV2ZDI0cE9pQnpkSEpwYm1jZ2UxeHVJQ0J5WlhSMWNtNGdVM1J5YVc1bktIUmhjbWRsZENrdWNtVndiR0ZqWlNndlhGeEVMMmNzSUNjbktUdGNibjFjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnYm5WdFQyNXNlVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3p0QlFVRkJMRk5CUVZNc1VVRkJVU3hOUVVGNVFpeEZRVUZCTzBGQlEzaERMRVZCUVVFc1QwRkJUeXhOUVVGUExFTkJRVUVzVFVGQlRTeERRVUZGTEVOQlFVRXNUMEZCUVN4RFFVRlJMRTlCUVU4c1JVRkJSU3hEUVVGQk8wRkJRM3BET3pzN095SjlcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGlzTWVyZ2VhYmxlT2JqZWN0ID0gZnVuY3Rpb24gaXNNZXJnZWFibGVPYmplY3QodmFsdWUpIHtcblx0cmV0dXJuIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSlcblx0XHQmJiAhaXNTcGVjaWFsKHZhbHVlKVxufTtcblxuZnVuY3Rpb24gaXNOb25OdWxsT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcbn1cblxuZnVuY3Rpb24gaXNTcGVjaWFsKHZhbHVlKSB7XG5cdHZhciBzdHJpbmdWYWx1ZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG5cblx0cmV0dXJuIHN0cmluZ1ZhbHVlID09PSAnW29iamVjdCBSZWdFeHBdJ1xuXHRcdHx8IHN0cmluZ1ZhbHVlID09PSAnW29iamVjdCBEYXRlXSdcblx0XHR8fCBpc1JlYWN0RWxlbWVudCh2YWx1ZSlcbn1cblxuLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL2I1YWM5NjNmYjc5MWQxMjk4ZTdmMzk2MjM2MzgzYmM5NTVmOTE2YzEvc3JjL2lzb21vcnBoaWMvY2xhc3NpYy9lbGVtZW50L1JlYWN0RWxlbWVudC5qcyNMMjEtTDI1XG52YXIgY2FuVXNlU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGNhblVzZVN5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcblxuZnVuY3Rpb24gaXNSZWFjdEVsZW1lbnQodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbn1cblxuZnVuY3Rpb24gZW1wdHlUYXJnZXQodmFsKSB7XG5cdHJldHVybiBBcnJheS5pc0FycmF5KHZhbCkgPyBbXSA6IHt9XG59XG5cbmZ1bmN0aW9uIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHZhbHVlLCBvcHRpb25zKSB7XG5cdHJldHVybiAob3B0aW9ucy5jbG9uZSAhPT0gZmFsc2UgJiYgb3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCh2YWx1ZSkpXG5cdFx0PyBkZWVwbWVyZ2UoZW1wdHlUYXJnZXQodmFsdWUpLCB2YWx1ZSwgb3B0aW9ucylcblx0XHQ6IHZhbHVlXG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRBcnJheU1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdHJldHVybiB0YXJnZXQuY29uY2F0KHNvdXJjZSkubWFwKGZ1bmN0aW9uKGVsZW1lbnQpIHtcblx0XHRyZXR1cm4gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQoZWxlbWVudCwgb3B0aW9ucylcblx0fSlcbn1cblxuZnVuY3Rpb24gZ2V0TWVyZ2VGdW5jdGlvbihrZXksIG9wdGlvbnMpIHtcblx0aWYgKCFvcHRpb25zLmN1c3RvbU1lcmdlKSB7XG5cdFx0cmV0dXJuIGRlZXBtZXJnZVxuXHR9XG5cdHZhciBjdXN0b21NZXJnZSA9IG9wdGlvbnMuY3VzdG9tTWVyZ2Uoa2V5KTtcblx0cmV0dXJuIHR5cGVvZiBjdXN0b21NZXJnZSA9PT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbU1lcmdlIDogZGVlcG1lcmdlXG59XG5cbmZ1bmN0aW9uIGdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSB7XG5cdHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzXG5cdFx0PyBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkuZmlsdGVyKGZ1bmN0aW9uKHN5bWJvbCkge1xuXHRcdFx0cmV0dXJuIE9iamVjdC5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHRhcmdldCwgc3ltYm9sKVxuXHRcdH0pXG5cdFx0OiBbXVxufVxuXG5mdW5jdGlvbiBnZXRLZXlzKHRhcmdldCkge1xuXHRyZXR1cm4gT2JqZWN0LmtleXModGFyZ2V0KS5jb25jYXQoZ2V0RW51bWVyYWJsZU93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKVxufVxuXG5mdW5jdGlvbiBwcm9wZXJ0eUlzT25PYmplY3Qob2JqZWN0LCBwcm9wZXJ0eSkge1xuXHR0cnkge1xuXHRcdHJldHVybiBwcm9wZXJ0eSBpbiBvYmplY3Rcblx0fSBjYXRjaChfKSB7XG5cdFx0cmV0dXJuIGZhbHNlXG5cdH1cbn1cblxuLy8gUHJvdGVjdHMgZnJvbSBwcm90b3R5cGUgcG9pc29uaW5nIGFuZCB1bmV4cGVjdGVkIG1lcmdpbmcgdXAgdGhlIHByb3RvdHlwZSBjaGFpbi5cbmZ1bmN0aW9uIHByb3BlcnR5SXNVbnNhZmUodGFyZ2V0LCBrZXkpIHtcblx0cmV0dXJuIHByb3BlcnR5SXNPbk9iamVjdCh0YXJnZXQsIGtleSkgLy8gUHJvcGVydGllcyBhcmUgc2FmZSB0byBtZXJnZSBpZiB0aGV5IGRvbid0IGV4aXN0IGluIHRoZSB0YXJnZXQgeWV0LFxuXHRcdCYmICEoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBrZXkpIC8vIHVuc2FmZSBpZiB0aGV5IGV4aXN0IHVwIHRoZSBwcm90b3R5cGUgY2hhaW4sXG5cdFx0XHQmJiBPYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0YXJnZXQsIGtleSkpIC8vIGFuZCBhbHNvIHVuc2FmZSBpZiB0aGV5J3JlIG5vbmVudW1lcmFibGUuXG59XG5cbmZ1bmN0aW9uIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdHZhciBkZXN0aW5hdGlvbiA9IHt9O1xuXHRpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCh0YXJnZXQpKSB7XG5cdFx0Z2V0S2V5cyh0YXJnZXQpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG5cdFx0XHRkZXN0aW5hdGlvbltrZXldID0gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQodGFyZ2V0W2tleV0sIG9wdGlvbnMpO1xuXHRcdH0pO1xuXHR9XG5cdGdldEtleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdGlmIChwcm9wZXJ0eUlzVW5zYWZlKHRhcmdldCwga2V5KSkge1xuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXG5cdFx0aWYgKHByb3BlcnR5SXNPbk9iamVjdCh0YXJnZXQsIGtleSkgJiYgb3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdChzb3VyY2Vba2V5XSkpIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBnZXRNZXJnZUZ1bmN0aW9uKGtleSwgb3B0aW9ucykodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldLCBvcHRpb25zKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHNvdXJjZVtrZXldLCBvcHRpb25zKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gZGVzdGluYXRpb25cbn1cblxuZnVuY3Rpb24gZGVlcG1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXHRvcHRpb25zLmFycmF5TWVyZ2UgPSBvcHRpb25zLmFycmF5TWVyZ2UgfHwgZGVmYXVsdEFycmF5TWVyZ2U7XG5cdG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QgPSBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0IHx8IGlzTWVyZ2VhYmxlT2JqZWN0O1xuXHQvLyBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCBpcyBhZGRlZCB0byBgb3B0aW9uc2Agc28gdGhhdCBjdXN0b20gYXJyYXlNZXJnZSgpXG5cdC8vIGltcGxlbWVudGF0aW9ucyBjYW4gdXNlIGl0LiBUaGUgY2FsbGVyIG1heSBub3QgcmVwbGFjZSBpdC5cblx0b3B0aW9ucy5jbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkO1xuXG5cdHZhciBzb3VyY2VJc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuXHR2YXIgdGFyZ2V0SXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGFyZ2V0KTtcblx0dmFyIHNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2ggPSBzb3VyY2VJc0FycmF5ID09PSB0YXJnZXRJc0FycmF5O1xuXG5cdGlmICghc291cmNlQW5kVGFyZ2V0VHlwZXNNYXRjaCkge1xuXHRcdHJldHVybiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSBpZiAoc291cmNlSXNBcnJheSkge1xuXHRcdHJldHVybiBvcHRpb25zLmFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9XG59XG5cbmRlZXBtZXJnZS5hbGwgPSBmdW5jdGlvbiBkZWVwbWVyZ2VBbGwoYXJyYXksIG9wdGlvbnMpIHtcblx0aWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5Jylcblx0fVxuXG5cdHJldHVybiBhcnJheS5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbmV4dCkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2UocHJldiwgbmV4dCwgb3B0aW9ucylcblx0fSwge30pXG59O1xuXG52YXIgZGVlcG1lcmdlXzEgPSBkZWVwbWVyZ2U7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVlcG1lcmdlXzE7XG4iLCJpbXBvcnQgbWVyZ2VEZWVwIGZyb20gJ2RlZXBtZXJnZSc7XG5cbnR5cGUgRGVlcFBhcnRpYWw8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtQXT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+IHtcbiAgZGVsaW1pdGVyczoge1xuICAgIGRhc2g6IHN0cmluZztcbiAgICBkb3Q6IHN0cmluZztcbiAgfTtcbiAgZXNjYXBlOiBib29sZWFuO1xuICBoaWRkZW46IGJvb2xlYW47XG4gIGhpZGRlbktleTogc3RyaW5nO1xuICBoaWRkZW5SYW5nZToge1xuICAgIGVuZDogbnVtYmVyO1xuICAgIHN0YXJ0OiBudW1iZXI7XG4gIH07XG4gIG9uRmFpbDogKHZhbHVlOiBzdHJpbmcsIGVycm9yOiBFcnJvcikgPT4gT25FcnJGYWxsYmFjaztcbn1cblxuZXhwb3J0IHR5cGUgQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4gPSBEZWVwUGFydGlhbDxcbiAgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz5cbj47XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxzdHJpbmc+ID0ge1xuICBkZWxpbWl0ZXJzOiB7XG4gICAgZG90OiAnLicsXG4gICAgZGFzaDogJy0nLFxuICB9LFxuICBoaWRkZW5SYW5nZToge1xuICAgIHN0YXJ0OiAzLFxuICAgIGVuZDogMTAsXG4gIH0sXG4gIG9uRmFpbDogKHZhbHVlKSA9PiB2YWx1ZSxcbiAgaGlkZGVuS2V5OiAnKicsXG4gIGhpZGRlbjogZmFsc2UsXG4gIGVzY2FwZTogZmFsc2UsXG59O1xuXG4vKipcbiAqIE1lcmdlIGN1c3RvbSBvcHRpb25zIHRvIHRoZSBkZWZhdWx0IG9uZXMuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlT3B0aW9uczxPbkVyckZhbGxiYWNrPihcbiAgY3VzdG9tT3B0aW9uczogQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4gPSB7fSxcbik6IEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IG1lcmdlRGVlcChcbiAgICBkZWZhdWx0T3B0aW9ucyxcbiAgICBjdXN0b21PcHRpb25zLFxuICApIGFzIEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+O1xuXG4gIGlmIChvcHRpb25zLmhpZGRlbikge1xuICAgIGlmIChcbiAgICAgIGlzTmFOKG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQpIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0IDwgMCB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA+IDEwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPcHRpb24gXCJoaWRkZW5SYW5nZS5zdGFydFwiIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMC4nKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBpc05hTihvcHRpb25zLmhpZGRlblJhbmdlLmVuZCkgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kIDwgMCB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPiAxMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3B0aW9uIFwiaGlkZGVuUmFuZ2UuZW5kXCIgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwLicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID4gb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQpIHtcbiAgICAgIGNvbnN0IGF1eCA9IG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQ7XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID0gb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQ7XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA9IGF1eDtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIG9wdGlvbnMub25GYWlsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIG9wdGlvbiBcIm9uRmFpbFwiIG11c3QgYmUgYSBjYWxsYmFjayBmdW5jdGlvbi4nKTtcbiAgfVxuXG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtZXJnZU9wdGlvbnM7XG4iLCJpbXBvcnQgeyBlc2NhcGUgYXMgZXNjYXBlSFRNTCB9IGZyb20gJ2h0bWwtZXNjYXBlcic7XG5pbXBvcnQgbnVtT25seSBmcm9tICdudW0tb25seSc7XG5cbmltcG9ydCBtZXJnZU9wdGlvbnMgZnJvbSAnLi9tZXJnZS1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgQ3BmRm9ybWF0dGluZ09wdGlvbnMgfSBmcm9tICcuL21lcmdlLW9wdGlvbnMnO1xuXG4vKipcbiAqIFZhbGlkYXRlIGEgZ2l2ZW4gQ1BGIGNoYXIgc2VxdWVuY2UuXG4gKi9cbmZ1bmN0aW9uIGNwZkZtdDxPbkVyckZhbGxiYWNrID0gc3RyaW5nPihcbiAgY3BmU3RyaW5nOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPixcbik6IHN0cmluZyB7XG4gIGNvbnN0IENQRl9MRU5HVEggPSAxMTtcbiAgY29uc3QgY3BmQXJyYXkgPSBudW1Pbmx5KGNwZlN0cmluZykuc3BsaXQoJycpO1xuICBjb25zdCBjdXN0b21PcHRpb25zID0gbWVyZ2VPcHRpb25zKG9wdGlvbnMpO1xuXG4gIGlmIChjcGZBcnJheS5sZW5ndGggIT09IENQRl9MRU5HVEgpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgUGFyYW1ldGVyIFwiJHtjcGZTdHJpbmd9XCIgZG9lcyBub3QgY29udGFpbiAke0NQRl9MRU5HVEh9IGRpZ2l0cy5gKTtcblxuICAgIHJldHVybiBjdXN0b21PcHRpb25zLm9uRmFpbChjcGZTdHJpbmcsIGVycm9yKSBhcyBzdHJpbmc7XG4gIH1cblxuICBpZiAoY3VzdG9tT3B0aW9ucy5oaWRkZW4pIHtcbiAgICBmb3IgKGxldCBpID0gY3VzdG9tT3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydDsgaSA8PSBjdXN0b21PcHRpb25zLmhpZGRlblJhbmdlLmVuZDsgaSsrKSB7XG4gICAgICBjcGZBcnJheVtpXSA9IGN1c3RvbU9wdGlvbnMuaGlkZGVuS2V5O1xuICAgIH1cbiAgfVxuXG4gIGNwZkFycmF5LnNwbGljZSg5LCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZGFzaCk7XG4gIGNwZkFycmF5LnNwbGljZSg2LCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZG90KTtcbiAgY3BmQXJyYXkuc3BsaWNlKDMsIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kb3QpO1xuICBjb25zdCBjcGZQcmV0dHkgPSBjcGZBcnJheS5qb2luKCcnKTtcblxuICBpZiAoY3VzdG9tT3B0aW9ucy5lc2NhcGUpIHtcbiAgICByZXR1cm4gZXNjYXBlSFRNTChjcGZQcmV0dHkpO1xuICB9XG5cbiAgcmV0dXJuIGNwZlByZXR0eTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY3BmRm10O1xuIl0sIm5hbWVzIjpbInJlcGxhY2UiLCJjYSIsImVzY2EiLCJwZSIsIm0iLCJlc2NhcGUiLCJlcyIsImNhbGwiLCJpc01lcmdlYWJsZU9iamVjdCIsInZhbHVlIiwiaXNOb25OdWxsT2JqZWN0IiwiaXNTcGVjaWFsIiwic3RyaW5nVmFsdWUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImlzUmVhY3RFbGVtZW50IiwiY2FuVXNlU3ltYm9sIiwiU3ltYm9sIiwiZm9yIiwiUkVBQ1RfRUxFTUVOVF9UWVBFIiwiJCR0eXBlb2YiLCJlbXB0eVRhcmdldCIsInZhbCIsIkFycmF5IiwiaXNBcnJheSIsImNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkIiwib3B0aW9ucyIsImNsb25lIiwiZGVlcG1lcmdlIiwiZGVmYXVsdEFycmF5TWVyZ2UiLCJ0YXJnZXQiLCJzb3VyY2UiLCJjb25jYXQiLCJtYXAiLCJlbGVtZW50IiwiZ2V0TWVyZ2VGdW5jdGlvbiIsImtleSIsImN1c3RvbU1lcmdlIiwiZ2V0RW51bWVyYWJsZU93blByb3BlcnR5U3ltYm9scyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsInN5bWJvbCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiZ2V0S2V5cyIsImtleXMiLCJwcm9wZXJ0eUlzT25PYmplY3QiLCJvYmplY3QiLCJwcm9wZXJ0eSIsIl8iLCJwcm9wZXJ0eUlzVW5zYWZlIiwiaGFzT3duUHJvcGVydHkiLCJtZXJnZU9iamVjdCIsImRlc3RpbmF0aW9uIiwiZm9yRWFjaCIsImFycmF5TWVyZ2UiLCJzb3VyY2VJc0FycmF5IiwidGFyZ2V0SXNBcnJheSIsInNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2giLCJhbGwiLCJkZWVwbWVyZ2VBbGwiLCJhcnJheSIsIkVycm9yIiwicmVkdWNlIiwicHJldiIsIm5leHQiLCJkZWVwbWVyZ2VfMSIsImNqcyIsImRlZmF1bHRPcHRpb25zIiwiZGVsaW1pdGVycyIsImRvdCIsImRhc2giLCJoaWRkZW5SYW5nZSIsInN0YXJ0IiwiZW5kIiwib25GYWlsIiwiaGlkZGVuS2V5IiwiaGlkZGVuIiwibWVyZ2VPcHRpb25zIiwiY3VzdG9tT3B0aW9ucyIsIm1lcmdlRGVlcCIsImlzTmFOIiwiVHlwZUVycm9yIiwiYXV4IiwiY3BmRm10IiwiY3BmU3RyaW5nIiwiQ1BGX0xFTkdUSCIsImNwZkFycmF5IiwibnVtT25seSIsInNwbGl0IiwibGVuZ3RoIiwiZXJyb3IiLCJpIiwic3BsaWNlIiwiY3BmUHJldHR5Iiwiam9pbiIsImVzY2FwZUhUTUwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7RUFBQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0VBRUEsTUFBTTtFQUFDQSxFQUFBQTtFQUFPLENBQUMsR0FBRyxFQUFFO0VBSXBCLE1BQU1DLEVBQUUsR0FBRyxVQUFVO0VBRXJCLE1BQU1DLElBQUksR0FBRztFQUNYLEVBQUEsR0FBRyxFQUFFLE9BQU87RUFDWixFQUFBLEdBQUcsRUFBRSxNQUFNO0VBQ1gsRUFBQSxHQUFHLEVBQUUsTUFBTTtFQUNYLEVBQUEsR0FBRyxFQUFFLE9BQU87RUFDWixFQUFBLEdBQUcsRUFBRTtFQUNQLENBQUM7RUFDRCxNQUFNQyxFQUFFLEdBQUdDLENBQUMsSUFBSUYsSUFBSSxDQUFDRSxDQUFDLENBQUM7O0VBRXZCO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ08sTUFBTUMsTUFBTSxHQUFHQyxFQUFFLElBQUlOLE9BQU8sQ0FBQ08sSUFBSSxDQUFDRCxFQUFFLEVBQUVMLEVBQUUsRUFBRUUsRUFBRSxDQUFDOzs7Ozs7Ozs7Ozs7O0dDMUNwRCxTQUFTLE9BQU8sQ0FBQyxNQUFNLEVBQUU7S0FDdkIsT0FBTyxNQUFNLENBQUMsTUFBTSxD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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWZtdC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2h0bWwtZXNjYXBlci9lc20vaW5kZXguanMiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbnVtLW9ubHkvYnVpbGQvaW5kZXguY2pzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2RlZXBtZXJnZS9kaXN0L2Nqcy5qcyIsIi4uL3NyYy9tZXJnZS1vcHRpb25zLnRzIiwiLi4vc3JjL2NwZi1mbXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTctcHJlc2VudCBieSBBbmRyZWEgR2lhbW1hcmNoaSAtIEBXZWJSZWZsZWN0aW9uXG4gKlxuICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4gKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuICpcbiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbiAqXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4gKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbiAqIFRIRSBTT0ZUV0FSRS5cbiAqL1xuXG5jb25zdCB7cmVwbGFjZX0gPSAnJztcblxuLy8gZXNjYXBlXG5jb25zdCBlcyA9IC8mKD86YW1wfCMzOHxsdHwjNjB8Z3R8IzYyfGFwb3N8IzM5fHF1b3R8IzM0KTsvZztcbmNvbnN0IGNhID0gL1smPD4nXCJdL2c7XG5cbmNvbnN0IGVzY2EgPSB7XG4gICcmJzogJyZhbXA7JyxcbiAgJzwnOiAnJmx0OycsXG4gICc+JzogJyZndDsnLFxuICBcIidcIjogJyYjMzk7JyxcbiAgJ1wiJzogJyZxdW90Oydcbn07XG5jb25zdCBwZSA9IG0gPT4gZXNjYVttXTtcblxuLyoqXG4gKiBTYWZlbHkgZXNjYXBlIEhUTUwgZW50aXRpZXMgc3VjaCBhcyBgJmAsIGA8YCwgYD5gLCBgXCJgLCBhbmQgYCdgLlxuICogQHBhcmFtIHtzdHJpbmd9IGVzIHRoZSBpbnB1dCB0byBzYWZlbHkgZXNjYXBlXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgZXNjYXBlZCBpbnB1dCwgYW5kIGl0ICoqdGhyb3dzKiogYW4gZXJyb3IgaWZcbiAqICB0aGUgaW5wdXQgdHlwZSBpcyB1bmV4cGVjdGVkLCBleGNlcHQgZm9yIGJvb2xlYW4gYW5kIG51bWJlcnMsXG4gKiAgY29udmVydGVkIGFzIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IGVzY2FwZSA9IGVzID0+IHJlcGxhY2UuY2FsbChlcywgY2EsIHBlKTtcblxuXG4vLyB1bmVzY2FwZVxuY29uc3QgdW5lcyA9IHtcbiAgJyZhbXA7JzogJyYnLFxuICAnJiMzODsnOiAnJicsXG4gICcmbHQ7JzogJzwnLFxuICAnJiM2MDsnOiAnPCcsXG4gICcmZ3Q7JzogJz4nLFxuICAnJiM2MjsnOiAnPicsXG4gICcmYXBvczsnOiBcIidcIixcbiAgJyYjMzk7JzogXCInXCIsXG4gICcmcXVvdDsnOiAnXCInLFxuICAnJiMzNDsnOiAnXCInXG59O1xuY29uc3QgY2FwZSA9IG0gPT4gdW5lc1ttXTtcblxuLyoqXG4gKiBTYWZlbHkgdW5lc2NhcGUgcHJldmlvdXNseSBlc2NhcGVkIGVudGl0aWVzIHN1Y2ggYXMgYCZgLCBgPGAsIGA+YCwgYFwiYCxcbiAqIGFuZCBgJ2AuXG4gKiBAcGFyYW0ge3N0cmluZ30gdW4gYSBwcmV2aW91c2x5IGVzY2FwZWQgc3RyaW5nXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgdW5lc2NhcGVkIGlucHV0LCBhbmQgaXQgKip0aHJvd3MqKiBhbiBlcnJvciBpZlxuICogIHRoZSBpbnB1dCB0eXBlIGlzIHVuZXhwZWN0ZWQsIGV4Y2VwdCBmb3IgYm9vbGVhbiBhbmQgbnVtYmVycyxcbiAqICBjb252ZXJ0ZWQgYXMgc3RyaW5nLlxuICovXG5leHBvcnQgY29uc3QgdW5lc2NhcGUgPSB1biA9PiByZXBsYWNlLmNhbGwodW4sIGVzLCBjYXBlKTtcbiIsIid1c2Ugc3RyaWN0JztcblxuZnVuY3Rpb24gbnVtT25seSh0YXJnZXQpIHtcbiAgcmV0dXJuIFN0cmluZyh0YXJnZXQpLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBudW1Pbmx5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lhVzVrWlhndVkycHpJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOXpjbU12Ym5WdExXOXViSGt1ZEhNaVhTd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lablZ1WTNScGIyNGdiblZ0VDI1c2VTaDBZWEpuWlhRNklIVnVhMjV2ZDI0cE9pQnpkSEpwYm1jZ2UxeHVJQ0J5WlhSMWNtNGdVM1J5YVc1bktIUmhjbWRsZENrdWNtVndiR0ZqWlNndlhGeEVMMmNzSUNjbktUdGNibjFjYmx4dVpYaHdiM0owSUdSbFptRjFiSFFnYm5WdFQyNXNlVHRjYmlKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pT3p0QlFVRkJMRk5CUVZNc1VVRkJVU3hOUVVGNVFpeEZRVUZCTzBGQlEzaERMRVZCUVVFc1QwRkJUeXhOUVVGUExFTkJRVUVzVFVGQlRTeERRVUZGTEVOQlFVRXNUMEZCUVN4RFFVRlJMRTlCUVU4c1JVRkJSU3hEUVVGQk8wRkJRM3BET3pzN095SjlcbiIsIid1c2Ugc3RyaWN0JztcblxudmFyIGlzTWVyZ2VhYmxlT2JqZWN0ID0gZnVuY3Rpb24gaXNNZXJnZWFibGVPYmplY3QodmFsdWUpIHtcblx0cmV0dXJuIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSlcblx0XHQmJiAhaXNTcGVjaWFsKHZhbHVlKVxufTtcblxuZnVuY3Rpb24gaXNOb25OdWxsT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCdcbn1cblxuZnVuY3Rpb24gaXNTcGVjaWFsKHZhbHVlKSB7XG5cdHZhciBzdHJpbmdWYWx1ZSA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG5cblx0cmV0dXJuIHN0cmluZ1ZhbHVlID09PSAnW29iamVjdCBSZWdFeHBdJ1xuXHRcdHx8IHN0cmluZ1ZhbHVlID09PSAnW29iamVjdCBEYXRlXSdcblx0XHR8fCBpc1JlYWN0RWxlbWVudCh2YWx1ZSlcbn1cblxuLy8gc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9ibG9iL2I1YWM5NjNmYjc5MWQxMjk4ZTdmMzk2MjM2MzgzYmM5NTVmOTE2YzEvc3JjL2lzb21vcnBoaWMvY2xhc3NpYy9lbGVtZW50L1JlYWN0RWxlbWVudC5qcyNMMjEtTDI1XG52YXIgY2FuVXNlU3ltYm9sID0gdHlwZW9mIFN5bWJvbCA9PT0gJ2Z1bmN0aW9uJyAmJiBTeW1ib2wuZm9yO1xudmFyIFJFQUNUX0VMRU1FTlRfVFlQRSA9IGNhblVzZVN5bWJvbCA/IFN5bWJvbC5mb3IoJ3JlYWN0LmVsZW1lbnQnKSA6IDB4ZWFjNztcblxuZnVuY3Rpb24gaXNSZWFjdEVsZW1lbnQodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEVcbn1cblxuZnVuY3Rpb24gZW1wdHlUYXJnZXQodmFsKSB7XG5cdHJldHVybiBBcnJheS5pc0FycmF5KHZhbCkgPyBbXSA6IHt9XG59XG5cbmZ1bmN0aW9uIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHZhbHVlLCBvcHRpb25zKSB7XG5cdHJldHVybiAob3B0aW9ucy5jbG9uZSAhPT0gZmFsc2UgJiYgb3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCh2YWx1ZSkpXG5cdFx0PyBkZWVwbWVyZ2UoZW1wdHlUYXJnZXQodmFsdWUpLCB2YWx1ZSwgb3B0aW9ucylcblx0XHQ6IHZhbHVlXG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRBcnJheU1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdHJldHVybiB0YXJnZXQuY29uY2F0KHNvdXJjZSkubWFwKGZ1bmN0aW9uKGVsZW1lbnQpIHtcblx0XHRyZXR1cm4gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQoZWxlbWVudCwgb3B0aW9ucylcblx0fSlcbn1cblxuZnVuY3Rpb24gZ2V0TWVyZ2VGdW5jdGlvbihrZXksIG9wdGlvbnMpIHtcblx0aWYgKCFvcHRpb25zLmN1c3RvbU1lcmdlKSB7XG5cdFx0cmV0dXJuIGRlZXBtZXJnZVxuXHR9XG5cdHZhciBjdXN0b21NZXJnZSA9IG9wdGlvbnMuY3VzdG9tTWVyZ2Uoa2V5KTtcblx0cmV0dXJuIHR5cGVvZiBjdXN0b21NZXJnZSA9PT0gJ2Z1bmN0aW9uJyA/IGN1c3RvbU1lcmdlIDogZGVlcG1lcmdlXG59XG5cbmZ1bmN0aW9uIGdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSB7XG5cdHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzXG5cdFx0PyBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkuZmlsdGVyKGZ1bmN0aW9uKHN5bWJvbCkge1xuXHRcdFx0cmV0dXJuIE9iamVjdC5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHRhcmdldCwgc3ltYm9sKVxuXHRcdH0pXG5cdFx0OiBbXVxufVxuXG5mdW5jdGlvbiBnZXRLZXlzKHRhcmdldCkge1xuXHRyZXR1cm4gT2JqZWN0LmtleXModGFyZ2V0KS5jb25jYXQoZ2V0RW51bWVyYWJsZU93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpKVxufVxuXG5mdW5jdGlvbiBwcm9wZXJ0eUlzT25PYmplY3Qob2JqZWN0LCBwcm9wZXJ0eSkge1xuXHR0cnkge1xuXHRcdHJldHVybiBwcm9wZXJ0eSBpbiBvYmplY3Rcblx0fSBjYXRjaChfKSB7XG5cdFx0cmV0dXJuIGZhbHNlXG5cdH1cbn1cblxuLy8gUHJvdGVjdHMgZnJvbSBwcm90b3R5cGUgcG9pc29uaW5nIGFuZCB1bmV4cGVjdGVkIG1lcmdpbmcgdXAgdGhlIHByb3RvdHlwZSBjaGFpbi5cbmZ1bmN0aW9uIHByb3BlcnR5SXNVbnNhZmUodGFyZ2V0LCBrZXkpIHtcblx0cmV0dXJuIHByb3BlcnR5SXNPbk9iamVjdCh0YXJnZXQsIGtleSkgLy8gUHJvcGVydGllcyBhcmUgc2FmZSB0byBtZXJnZSBpZiB0aGV5IGRvbid0IGV4aXN0IGluIHRoZSB0YXJnZXQgeWV0LFxuXHRcdCYmICEoT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwodGFyZ2V0LCBrZXkpIC8vIHVuc2FmZSBpZiB0aGV5IGV4aXN0IHVwIHRoZSBwcm90b3R5cGUgY2hhaW4sXG5cdFx0XHQmJiBPYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0YXJnZXQsIGtleSkpIC8vIGFuZCBhbHNvIHVuc2FmZSBpZiB0aGV5J3JlIG5vbmVudW1lcmFibGUuXG59XG5cbmZ1bmN0aW9uIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdHZhciBkZXN0aW5hdGlvbiA9IHt9O1xuXHRpZiAob3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCh0YXJnZXQpKSB7XG5cdFx0Z2V0S2V5cyh0YXJnZXQpLmZvckVhY2goZnVuY3Rpb24oa2V5KSB7XG5cdFx0XHRkZXN0aW5hdGlvbltrZXldID0gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQodGFyZ2V0W2tleV0sIG9wdGlvbnMpO1xuXHRcdH0pO1xuXHR9XG5cdGdldEtleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdGlmIChwcm9wZXJ0eUlzVW5zYWZlKHRhcmdldCwga2V5KSkge1xuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXG5cdFx0aWYgKHByb3BlcnR5SXNPbk9iamVjdCh0YXJnZXQsIGtleSkgJiYgb3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdChzb3VyY2Vba2V5XSkpIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBnZXRNZXJnZUZ1bmN0aW9uKGtleSwgb3B0aW9ucykodGFyZ2V0W2tleV0sIHNvdXJjZVtrZXldLCBvcHRpb25zKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHNvdXJjZVtrZXldLCBvcHRpb25zKTtcblx0XHR9XG5cdH0pO1xuXHRyZXR1cm4gZGVzdGluYXRpb25cbn1cblxuZnVuY3Rpb24gZGVlcG1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKSB7XG5cdG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuXHRvcHRpb25zLmFycmF5TWVyZ2UgPSBvcHRpb25zLmFycmF5TWVyZ2UgfHwgZGVmYXVsdEFycmF5TWVyZ2U7XG5cdG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QgPSBvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0IHx8IGlzTWVyZ2VhYmxlT2JqZWN0O1xuXHQvLyBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCBpcyBhZGRlZCB0byBgb3B0aW9uc2Agc28gdGhhdCBjdXN0b20gYXJyYXlNZXJnZSgpXG5cdC8vIGltcGxlbWVudGF0aW9ucyBjYW4gdXNlIGl0LiBUaGUgY2FsbGVyIG1heSBub3QgcmVwbGFjZSBpdC5cblx0b3B0aW9ucy5jbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkO1xuXG5cdHZhciBzb3VyY2VJc0FycmF5ID0gQXJyYXkuaXNBcnJheShzb3VyY2UpO1xuXHR2YXIgdGFyZ2V0SXNBcnJheSA9IEFycmF5LmlzQXJyYXkodGFyZ2V0KTtcblx0dmFyIHNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2ggPSBzb3VyY2VJc0FycmF5ID09PSB0YXJnZXRJc0FycmF5O1xuXG5cdGlmICghc291cmNlQW5kVGFyZ2V0VHlwZXNNYXRjaCkge1xuXHRcdHJldHVybiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSBpZiAoc291cmNlSXNBcnJheSkge1xuXHRcdHJldHVybiBvcHRpb25zLmFycmF5TWVyZ2UodGFyZ2V0LCBzb3VyY2UsIG9wdGlvbnMpXG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIG1lcmdlT2JqZWN0KHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9XG59XG5cbmRlZXBtZXJnZS5hbGwgPSBmdW5jdGlvbiBkZWVwbWVyZ2VBbGwoYXJyYXksIG9wdGlvbnMpIHtcblx0aWYgKCFBcnJheS5pc0FycmF5KGFycmF5KSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIGFuIGFycmF5Jylcblx0fVxuXG5cdHJldHVybiBhcnJheS5yZWR1Y2UoZnVuY3Rpb24ocHJldiwgbmV4dCkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2UocHJldiwgbmV4dCwgb3B0aW9ucylcblx0fSwge30pXG59O1xuXG52YXIgZGVlcG1lcmdlXzEgPSBkZWVwbWVyZ2U7XG5cbm1vZHVsZS5leHBvcnRzID0gZGVlcG1lcmdlXzE7XG4iLCJpbXBvcnQgbWVyZ2VEZWVwIGZyb20gJ2RlZXBtZXJnZSc7XG5cbnR5cGUgRGVlcFBhcnRpYWw8VD4gPSB7XG4gIFtQIGluIGtleW9mIFRdPzogRGVlcFBhcnRpYWw8VFtQXT47XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+IHtcbiAgZGVsaW1pdGVyczoge1xuICAgIGRhc2g6IHN0cmluZztcbiAgICBkb3Q6IHN0cmluZztcbiAgfTtcbiAgZXNjYXBlOiBib29sZWFuO1xuICBoaWRkZW46IGJvb2xlYW47XG4gIGhpZGRlbktleTogc3RyaW5nO1xuICBoaWRkZW5SYW5nZToge1xuICAgIGVuZDogbnVtYmVyO1xuICAgIHN0YXJ0OiBudW1iZXI7XG4gIH07XG4gIG9uRmFpbDogKHZhbHVlOiBzdHJpbmcsIGVycm9yOiBFcnJvcikgPT4gT25FcnJGYWxsYmFjaztcbn1cblxuZXhwb3J0IHR5cGUgQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4gPSBEZWVwUGFydGlhbDxcbiAgQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz5cbj47XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxzdHJpbmc+ID0ge1xuICBkZWxpbWl0ZXJzOiB7XG4gICAgZG90OiAnLicsXG4gICAgZGFzaDogJy0nLFxuICB9LFxuICBoaWRkZW5SYW5nZToge1xuICAgIHN0YXJ0OiAzLFxuICAgIGVuZDogMTAsXG4gIH0sXG4gIG9uRmFpbDogKHZhbHVlKSA9PiB2YWx1ZSxcbiAgaGlkZGVuS2V5OiAnKicsXG4gIGhpZGRlbjogZmFsc2UsXG4gIGVzY2FwZTogZmFsc2UsXG59O1xuXG4vKipcbiAqIE1lcmdlIGN1c3RvbSBvcHRpb25zIHRvIHRoZSBkZWZhdWx0IG9uZXMuXG4gKi9cbmZ1bmN0aW9uIG1lcmdlT3B0aW9uczxPbkVyckZhbGxiYWNrPihcbiAgY3VzdG9tT3B0aW9uczogQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4gPSB7fSxcbik6IEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IG1lcmdlRGVlcChcbiAgICBkZWZhdWx0T3B0aW9ucyxcbiAgICBjdXN0b21PcHRpb25zLFxuICApIGFzIEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+O1xuXG4gIGlmIChvcHRpb25zLmhpZGRlbikge1xuICAgIGlmIChcbiAgICAgIGlzTmFOKG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQpIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0IDwgMCB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA+IDEwXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdPcHRpb24gXCJoaWRkZW5SYW5nZS5zdGFydFwiIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMC4nKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBpc05hTihvcHRpb25zLmhpZGRlblJhbmdlLmVuZCkgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kIDwgMCB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPiAxMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3B0aW9uIFwiaGlkZGVuUmFuZ2UuZW5kXCIgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwLicpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID4gb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQpIHtcbiAgICAgIGNvbnN0IGF1eCA9IG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQ7XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0ID0gb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQ7XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA9IGF1eDtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIG9wdGlvbnMub25GYWlsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlIG9wdGlvbiBcIm9uRmFpbFwiIG11c3QgYmUgYSBjYWxsYmFjayBmdW5jdGlvbi4nKTtcbiAgfVxuXG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5leHBvcnQgZGVmYXVsdCBtZXJnZU9wdGlvbnM7XG4iLCJpbXBvcnQgeyBlc2NhcGUgYXMgZXNjYXBlSFRNTCB9IGZyb20gJ2h0bWwtZXNjYXBlcic7XG5pbXBvcnQgbnVtT25seSBmcm9tICdudW0tb25seSc7XG5cbmltcG9ydCBtZXJnZU9wdGlvbnMgZnJvbSAnLi9tZXJnZS1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgQ3BmRm9ybWF0dGluZ09wdGlvbnMgfSBmcm9tICcuL21lcmdlLW9wdGlvbnMnO1xuXG4vKipcbiAqIEZvcm1hdCBhIGdpdmVuIENQRiBjaGFyIHNlcXVlbmNlLlxuICovXG5mdW5jdGlvbiBjcGZGbXQ8T25FcnJGYWxsYmFjayA9IHN0cmluZz4oXG4gIGNwZlN0cmluZzogc3RyaW5nLFxuICBvcHRpb25zPzogQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4sXG4pOiBzdHJpbmcge1xuICBjb25zdCBDUEZfTEVOR1RIID0gMTE7XG4gIGNvbnN0IGNwZkFycmF5ID0gbnVtT25seShjcGZTdHJpbmcpLnNwbGl0KCcnKTtcbiAgY29uc3QgY3VzdG9tT3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhvcHRpb25zKTtcblxuICBpZiAoY3BmQXJyYXkubGVuZ3RoICE9PSBDUEZfTEVOR1RIKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYFBhcmFtZXRlciBcIiR7Y3BmU3RyaW5nfVwiIGRvZXMgbm90IGNvbnRhaW4gJHtDUEZfTEVOR1RIfSBkaWdpdHMuYCk7XG5cbiAgICByZXR1cm4gY3VzdG9tT3B0aW9ucy5vbkZhaWwoY3BmU3RyaW5nLCBlcnJvcikgYXMgc3RyaW5nO1xuICB9XG5cbiAgaWYgKGN1c3RvbU9wdGlvbnMuaGlkZGVuKSB7XG4gICAgZm9yIChsZXQgaSA9IGN1c3RvbU9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQ7IGkgPD0gY3VzdG9tT3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQ7IGkrKykge1xuICAgICAgY3BmQXJyYXlbaV0gPSBjdXN0b21PcHRpb25zLmhpZGRlbktleTtcbiAgICB9XG4gIH1cblxuICBjcGZBcnJheS5zcGxpY2UoOSwgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRhc2gpO1xuICBjcGZBcnJheS5zcGxpY2UoNiwgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRvdCk7XG4gIGNwZkFycmF5LnNwbGljZSgzLCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZG90KTtcbiAgY29uc3QgY3BmUHJldHR5ID0gY3BmQXJyYXkuam9pbignJyk7XG5cbiAgaWYgKGN1c3RvbU9wdGlvbnMuZXNjYXBlKSB7XG4gICAgcmV0dXJuIGVzY2FwZUhUTUwoY3BmUHJldHR5KTtcbiAgfVxuXG4gIHJldHVybiBjcGZQcmV0dHk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNwZkZtdDtcbiJdLCJuYW1lcyI6WyJyZXBsYWNlIiwiY2EiLCJlc2NhIiwicGUiLCJtIiwiZXNjYXBlIiwiZXMiLCJjYWxsIiwiaXNNZXJnZWFibGVPYmplY3QiLCJ2YWx1ZSIsImlzTm9uTnVsbE9iamVjdCIsImlzU3BlY2lhbCIsInN0cmluZ1ZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJpc1JlYWN0RWxlbWVudCIsImNhblVzZVN5bWJvbCIsIlN5bWJvbCIsImZvciIsIlJFQUNUX0VMRU1FTlRfVFlQRSIsIiQkdHlwZW9mIiwiZW1wdHlUYXJnZXQiLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCIsIm9wdGlvbnMiLCJjbG9uZSIsImRlZXBtZXJnZSIsImRlZmF1bHRBcnJheU1lcmdlIiwidGFyZ2V0Iiwic291cmNlIiwiY29uY2F0IiwibWFwIiwiZWxlbWVudCIsImdldE1lcmdlRnVuY3Rpb24iLCJrZXkiLCJjdXN0b21NZXJnZSIsImdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJzeW1ib2wiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImdldEtleXMiLCJrZXlzIiwicHJvcGVydHlJc09uT2JqZWN0Iiwib2JqZWN0IiwicHJvcGVydHkiLCJfIiwicHJvcGVydHlJc1Vuc2FmZSIsImhhc093blByb3BlcnR5IiwibWVyZ2VPYmplY3QiLCJkZXN0aW5hdGlvbiIsImZvckVhY2giLCJhcnJheU1lcmdlIiwic291cmNlSXNBcnJheSIsInRhcmdldElzQXJyYXkiLCJzb3VyY2VBbmRUYXJnZXRUeXBlc01hdGNoIiwiYWxsIiwiZGVlcG1lcmdlQWxsIiwiYXJyYXkiLCJFcnJvciIsInJlZHVjZSIsInByZXYiLCJuZXh0IiwiZGVlcG1lcmdlXzEiLCJjanMiLCJkZWZhdWx0T3B0aW9ucyIsImRlbGltaXRlcnMiLCJkb3QiLCJkYXNoIiwiaGlkZGVuUmFuZ2UiLCJzdGFydCIsImVuZCIsIm9uRmFpbCIsImhpZGRlbktleSIsImhpZGRlbiIsIm1lcmdlT3B0aW9ucyIsImN1c3RvbU9wdGlvbnMiLCJtZXJnZURlZXAiLCJpc05hTiIsIlR5cGVFcnJvciIsImF1eCIsImNwZkZtdCIsImNwZlN0cmluZyIsIkNQRl9MRU5HVEgiLCJjcGZBcnJheSIsIm51bU9ubHkiLCJzcGxpdCIsImxlbmd0aCIsImVycm9yIiwiaSIsInNwbGljZSIsImNwZlByZXR0eSIsImpvaW4iLCJlc2NhcGVIVE1MIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0VBQUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztFQUVBLE1BQU07RUFBQ0EsRUFBQUE7RUFBTyxDQUFDLEdBQUcsRUFBRTtFQUlwQixNQUFNQyxFQUFFLEdBQUcsVUFBVTtFQUVyQixNQUFNQyxJQUFJLEdBQUc7RUFDWCxFQUFBLEdBQUcsRUFBRSxPQUFPO0VBQ1osRUFBQSxHQUFHLEVBQUUsTUFBTTtFQUNYLEVBQUEsR0FBRyxFQUFFLE1BQU07RUFDWCxFQUFBLEdBQUcsRUFBRSxPQUFPO0VBQ1osRUFBQSxHQUFHLEVBQUU7RUFDUCxDQUFDO0VBQ0QsTUFBTUMsRUFBRSxHQUFHQyxDQUFDLElBQUlGLElBQUksQ0FBQ0UsQ0FBQyxDQUFDOztFQUV2QjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNPLE1BQU1DLE1BQU0sR0FBR0MsRUFBRSxJQUFJTixPQUFPLENBQUNPLElBQUksQ0FBQ0QsRUFBRSxFQUFFTCxFQUFFLEVBQUVFLEVBQUUsQ0FBQzs7Ozs7Ozs7Ozs7OztHQzFDcEQsU0FBUyxPQUFPLENBQUMsTUFBTSxFQUFFO0tBQ3ZCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FB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
/**
* LacusSoft :: cpf-fmt v1.4.0
* LacusSoft :: cpf-fmt v1.4.1
*

@@ -8,2 +8,2 @@ * @author Julio L. Muller.

!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).cpfFmt=n()}(this,(function(){"use strict";const{replace:e}="",n=/[&<>'"]/g,r={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},t=e=>r[e];function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var a,o;var c,d,u=i(o?a:(o=1,a=function(e){return String(e).replace(/\D/g,"")}));var f=i(function(){if(d)return c;d=1;var e=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var r=Object.prototype.toString.call(e);return"[object RegExp]"===r||"[object Date]"===r||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,n){return!1!==n.clone&&n.isMergeableObject(e)?u((r=e,Array.isArray(r)?[]:{}),e,n):e;var r}function t(e,n,t){return e.concat(n).map((function(e){return r(e,t)}))}function i(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(n){return Object.propertyIsEnumerable.call(e,n)})):[]}(e))}function a(e,n){try{return n in e}catch(e){return!1}}function o(e,n,t){var o={};return t.isMergeableObject(e)&&i(e).forEach((function(n){o[n]=r(e[n],t)})),i(n).forEach((function(i){(function(e,n){return a(e,n)&&!(Object.hasOwnProperty.call(e,n)&&Object.propertyIsEnumerable.call(e,n))})(e,i)||(a(e,i)&&t.isMergeableObject(n[i])?o[i]=function(e,n){if(!n.customMerge)return u;var r=n.customMerge(e);return"function"==typeof r?r:u}(i,t)(e[i],n[i],t):o[i]=r(n[i],t))})),o}function u(n,i,a){(a=a||{}).arrayMerge=a.arrayMerge||t,a.isMergeableObject=a.isMergeableObject||e,a.cloneUnlessOtherwiseSpecified=r;var c=Array.isArray(i);return c===Array.isArray(n)?c?a.arrayMerge(n,i,a):o(n,i,a):r(i,a)}return u.all=function(e,n){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return u(e,r,n)}),{})},c=u}()),s={delimiters:{dot:".",dash:"-"},hiddenRange:{start:3,end:10},onFail:function(e){return e},hiddenKey:"*",hidden:!1,escape:!1};return function(r,i){var a=u(r).split(""),o=function(e){void 0===e&&(e={});var n=f(s,e);if(n.hidden){if(isNaN(n.hiddenRange.start)||n.hiddenRange.start<0||n.hiddenRange.start>10)throw new TypeError('Option "hiddenRange.start" must be a number between 0 and 10.');if(isNaN(n.hiddenRange.end)||n.hiddenRange.end<0||n.hiddenRange.end>10)throw new TypeError('Option "hiddenRange.end" must be a number between 0 and 10.');if(n.hiddenRange.start>n.hiddenRange.end){var r=n.hiddenRange.start;n.hiddenRange.start=n.hiddenRange.end,n.hiddenRange.end=r}}if("function"!=typeof n.onFail)throw new TypeError('The option "onFail" must be a callback function.');return n}(i);if(11!==a.length){var c=new Error('Parameter "'.concat(r,'" does not contain ').concat(11," digits."));return o.onFail(r,c)}if(o.hidden)for(var d=o.hiddenRange.start;d<=o.hiddenRange.end;d++)a[d]=o.hiddenKey;a.splice(9,0,o.delimiters.dash),a.splice(6,0,o.delimiters.dot),a.splice(3,0,o.delimiters.dot);var l,p=a.join("");return o.escape?(l=p,e.call(l,n,t)):p}}));
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWZtdC5taW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9odG1sLWVzY2FwZXIvZXNtL2luZGV4LmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL251bS1vbmx5L2J1aWxkL2luZGV4LmNqcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9janMuanMiLCIuLi9zcmMvbWVyZ2Utb3B0aW9ucy50cyIsIi4uL3NyYy9jcGYtZm10LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChDKSAyMDE3LXByZXNlbnQgYnkgQW5kcmVhIEdpYW1tYXJjaGkgLSBAV2ViUmVmbGVjdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuY29uc3Qge3JlcGxhY2V9ID0gJyc7XG5cbi8vIGVzY2FwZVxuY29uc3QgZXMgPSAvJig/OmFtcHwjMzh8bHR8IzYwfGd0fCM2MnxhcG9zfCMzOXxxdW90fCMzNCk7L2c7XG5jb25zdCBjYSA9IC9bJjw+J1wiXS9nO1xuXG5jb25zdCBlc2NhID0ge1xuICAnJic6ICcmYW1wOycsXG4gICc8JzogJyZsdDsnLFxuICAnPic6ICcmZ3Q7JyxcbiAgXCInXCI6ICcmIzM5OycsXG4gICdcIic6ICcmcXVvdDsnXG59O1xuY29uc3QgcGUgPSBtID0+IGVzY2FbbV07XG5cbi8qKlxuICogU2FmZWx5IGVzY2FwZSBIVE1MIGVudGl0aWVzIHN1Y2ggYXMgYCZgLCBgPGAsIGA+YCwgYFwiYCwgYW5kIGAnYC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBlcyB0aGUgaW5wdXQgdG8gc2FmZWx5IGVzY2FwZVxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGVzY2FwZWQgaW5wdXQsIGFuZCBpdCAqKnRocm93cyoqIGFuIGVycm9yIGlmXG4gKiAgdGhlIGlucHV0IHR5cGUgaXMgdW5leHBlY3RlZCwgZXhjZXB0IGZvciBib29sZWFuIGFuZCBudW1iZXJzLFxuICogIGNvbnZlcnRlZCBhcyBzdHJpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBlc2NhcGUgPSBlcyA9PiByZXBsYWNlLmNhbGwoZXMsIGNhLCBwZSk7XG5cblxuLy8gdW5lc2NhcGVcbmNvbnN0IHVuZXMgPSB7XG4gICcmYW1wOyc6ICcmJyxcbiAgJyYjMzg7JzogJyYnLFxuICAnJmx0Oyc6ICc8JyxcbiAgJyYjNjA7JzogJzwnLFxuICAnJmd0Oyc6ICc+JyxcbiAgJyYjNjI7JzogJz4nLFxuICAnJmFwb3M7JzogXCInXCIsXG4gICcmIzM5Oyc6IFwiJ1wiLFxuICAnJnF1b3Q7JzogJ1wiJyxcbiAgJyYjMzQ7JzogJ1wiJ1xufTtcbmNvbnN0IGNhcGUgPSBtID0+IHVuZXNbbV07XG5cbi8qKlxuICogU2FmZWx5IHVuZXNjYXBlIHByZXZpb3VzbHkgZXNjYXBlZCBlbnRpdGllcyBzdWNoIGFzIGAmYCwgYDxgLCBgPmAsIGBcImAsXG4gKiBhbmQgYCdgLlxuICogQHBhcmFtIHtzdHJpbmd9IHVuIGEgcHJldmlvdXNseSBlc2NhcGVkIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gdGhlIHVuZXNjYXBlZCBpbnB1dCwgYW5kIGl0ICoqdGhyb3dzKiogYW4gZXJyb3IgaWZcbiAqICB0aGUgaW5wdXQgdHlwZSBpcyB1bmV4cGVjdGVkLCBleGNlcHQgZm9yIGJvb2xlYW4gYW5kIG51bWJlcnMsXG4gKiAgY29udmVydGVkIGFzIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuZXNjYXBlID0gdW4gPT4gcmVwbGFjZS5jYWxsKHVuLCBlcywgY2FwZSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIG51bU9ubHkodGFyZ2V0KSB7XG4gIHJldHVybiBTdHJpbmcodGFyZ2V0KS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbnVtT25seTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VZMnB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTl6Y21NdmJuVnRMVzl1YkhrdWRITWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpWm5WdVkzUnBiMjRnYm5WdFQyNXNlU2gwWVhKblpYUTZJSFZ1YTI1dmQyNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnVTNSeWFXNW5LSFJoY21kbGRDa3VjbVZ3YkdGalpTZ3ZYRnhFTDJjc0lDY25LVHRjYm4xY2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ2JuVnRUMjVzZVR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96dEJRVUZCTEZOQlFWTXNVVUZCVVN4TlFVRjVRaXhGUVVGQk8wRkJRM2hETEVWQlFVRXNUMEZCVHl4TlFVRlBMRU5CUVVFc1RVRkJUU3hEUVVGRkxFTkJRVUVzVDBGQlFTeERRVUZSTEU5QlFVOHNSVUZCUlN4RFFVRkJPMEZCUTNwRE96czdPeUo5XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpc01lcmdlYWJsZU9iamVjdCA9IGZ1bmN0aW9uIGlzTWVyZ2VhYmxlT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiBpc05vbk51bGxPYmplY3QodmFsdWUpXG5cdFx0JiYgIWlzU3BlY2lhbCh2YWx1ZSlcbn07XG5cbmZ1bmN0aW9uIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSkge1xuXHRyZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzU3BlY2lhbCh2YWx1ZSkge1xuXHR2YXIgc3RyaW5nVmFsdWUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuXG5cdHJldHVybiBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcblx0XHR8fCBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgRGF0ZV0nXG5cdFx0fHwgaXNSZWFjdEVsZW1lbnQodmFsdWUpXG59XG5cbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iNWFjOTYzZmI3OTFkMTI5OGU3ZjM5NjIzNjM4M2JjOTU1ZjkxNmMxL3NyYy9pc29tb3JwaGljL2NsYXNzaWMvZWxlbWVudC9SZWFjdEVsZW1lbnQuanMjTDIxLUwyNVxudmFyIGNhblVzZVN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcjtcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBjYW5Vc2VTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgOiAweGVhYzc7XG5cbmZ1bmN0aW9uIGlzUmVhY3RFbGVtZW50KHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG59XG5cbmZ1bmN0aW9uIGVtcHR5VGFyZ2V0KHZhbCkge1xuXHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fVxufVxuXG5mdW5jdGlvbiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCh2YWx1ZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gKG9wdGlvbnMuY2xvbmUgIT09IGZhbHNlICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodmFsdWUpKVxuXHRcdD8gZGVlcG1lcmdlKGVtcHR5VGFyZ2V0KHZhbHVlKSwgdmFsdWUsIG9wdGlvbnMpXG5cdFx0OiB2YWx1ZVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0QXJyYXlNZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gdGFyZ2V0LmNvbmNhdChzb3VyY2UpLm1hcChmdW5jdGlvbihlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGVsZW1lbnQsIG9wdGlvbnMpXG5cdH0pXG59XG5cbmZ1bmN0aW9uIGdldE1lcmdlRnVuY3Rpb24oa2V5LCBvcHRpb25zKSB7XG5cdGlmICghb3B0aW9ucy5jdXN0b21NZXJnZSkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2Vcblx0fVxuXHR2YXIgY3VzdG9tTWVyZ2UgPSBvcHRpb25zLmN1c3RvbU1lcmdlKGtleSk7XG5cdHJldHVybiB0eXBlb2YgY3VzdG9tTWVyZ2UgPT09ICdmdW5jdGlvbicgPyBjdXN0b21NZXJnZSA6IGRlZXBtZXJnZVxufVxuXG5mdW5jdGlvbiBnZXRFbnVtZXJhYmxlT3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkge1xuXHRyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc1xuXHRcdD8gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpLmZpbHRlcihmdW5jdGlvbihzeW1ib2wpIHtcblx0XHRcdHJldHVybiBPYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0YXJnZXQsIHN5bWJvbClcblx0XHR9KVxuXHRcdDogW11cbn1cblxuZnVuY3Rpb24gZ2V0S2V5cyh0YXJnZXQpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHRhcmdldCkuY29uY2F0KGdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSlcbn1cblxuZnVuY3Rpb24gcHJvcGVydHlJc09uT2JqZWN0KG9iamVjdCwgcHJvcGVydHkpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gcHJvcGVydHkgaW4gb2JqZWN0XG5cdH0gY2F0Y2goXykge1xuXHRcdHJldHVybiBmYWxzZVxuXHR9XG59XG5cbi8vIFByb3RlY3RzIGZyb20gcHJvdG90eXBlIHBvaXNvbmluZyBhbmQgdW5leHBlY3RlZCBtZXJnaW5nIHVwIHRoZSBwcm90b3R5cGUgY2hhaW4uXG5mdW5jdGlvbiBwcm9wZXJ0eUlzVW5zYWZlKHRhcmdldCwga2V5KSB7XG5cdHJldHVybiBwcm9wZXJ0eUlzT25PYmplY3QodGFyZ2V0LCBrZXkpIC8vIFByb3BlcnRpZXMgYXJlIHNhZmUgdG8gbWVyZ2UgaWYgdGhleSBkb24ndCBleGlzdCBpbiB0aGUgdGFyZ2V0IHlldCxcblx0XHQmJiAhKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwga2V5KSAvLyB1bnNhZmUgaWYgdGhleSBleGlzdCB1cCB0aGUgcHJvdG90eXBlIGNoYWluLFxuXHRcdFx0JiYgT2JqZWN0LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodGFyZ2V0LCBrZXkpKSAvLyBhbmQgYWxzbyB1bnNhZmUgaWYgdGhleSdyZSBub25lbnVtZXJhYmxlLlxufVxuXG5mdW5jdGlvbiBtZXJnZU9iamVjdCh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHR2YXIgZGVzdGluYXRpb24gPSB7fTtcblx0aWYgKG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodGFyZ2V0KSkge1xuXHRcdGdldEtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHRhcmdldFtrZXldLCBvcHRpb25zKTtcblx0XHR9KTtcblx0fVxuXHRnZXRLZXlzKHNvdXJjZSkuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcblx0XHRpZiAocHJvcGVydHlJc1Vuc2FmZSh0YXJnZXQsIGtleSkpIHtcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGlmIChwcm9wZXJ0eUlzT25PYmplY3QodGFyZ2V0LCBrZXkpICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3Qoc291cmNlW2tleV0pKSB7XG5cdFx0XHRkZXN0aW5hdGlvbltrZXldID0gZ2V0TWVyZ2VGdW5jdGlvbihrZXksIG9wdGlvbnMpKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGRlc3RpbmF0aW9uXG59XG5cbmZ1bmN0aW9uIGRlZXBtZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblx0b3B0aW9ucy5hcnJheU1lcmdlID0gb3B0aW9ucy5hcnJheU1lcmdlIHx8IGRlZmF1bHRBcnJheU1lcmdlO1xuXHRvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0ID0gb3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCB8fCBpc01lcmdlYWJsZU9iamVjdDtcblx0Ly8gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQgaXMgYWRkZWQgdG8gYG9wdGlvbnNgIHNvIHRoYXQgY3VzdG9tIGFycmF5TWVyZ2UoKVxuXHQvLyBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSBpdC4gVGhlIGNhbGxlciBtYXkgbm90IHJlcGxhY2UgaXQuXG5cdG9wdGlvbnMuY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQgPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZDtcblxuXHR2YXIgc291cmNlSXNBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKTtcblx0dmFyIHRhcmdldElzQXJyYXkgPSBBcnJheS5pc0FycmF5KHRhcmdldCk7XG5cdHZhciBzb3VyY2VBbmRUYXJnZXRUeXBlc01hdGNoID0gc291cmNlSXNBcnJheSA9PT0gdGFyZ2V0SXNBcnJheTtcblxuXHRpZiAoIXNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2gpIHtcblx0XHRyZXR1cm4gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQoc291cmNlLCBvcHRpb25zKVxuXHR9IGVsc2UgaWYgKHNvdXJjZUlzQXJyYXkpIHtcblx0XHRyZXR1cm4gb3B0aW9ucy5hcnJheU1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBtZXJnZU9iamVjdCh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucylcblx0fVxufVxuXG5kZWVwbWVyZ2UuYWxsID0gZnVuY3Rpb24gZGVlcG1lcmdlQWxsKGFycmF5LCBvcHRpb25zKSB7XG5cdGlmICghQXJyYXkuaXNBcnJheShhcnJheSkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2ZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheScpXG5cdH1cblxuXHRyZXR1cm4gYXJyYXkucmVkdWNlKGZ1bmN0aW9uKHByZXYsIG5leHQpIHtcblx0XHRyZXR1cm4gZGVlcG1lcmdlKHByZXYsIG5leHQsIG9wdGlvbnMpXG5cdH0sIHt9KVxufTtcblxudmFyIGRlZXBtZXJnZV8xID0gZGVlcG1lcmdlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlZXBtZXJnZV8xO1xuIiwiaW1wb3J0IG1lcmdlRGVlcCBmcm9tICdkZWVwbWVyZ2UnO1xuXG50eXBlIERlZXBQYXJ0aWFsPFQ+ID0ge1xuICBbUCBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbUF0+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiB7XG4gIGRlbGltaXRlcnM6IHtcbiAgICBkYXNoOiBzdHJpbmc7XG4gICAgZG90OiBzdHJpbmc7XG4gIH07XG4gIGVzY2FwZTogYm9vbGVhbjtcbiAgaGlkZGVuOiBib29sZWFuO1xuICBoaWRkZW5LZXk6IHN0cmluZztcbiAgaGlkZGVuUmFuZ2U6IHtcbiAgICBlbmQ6IG51bWJlcjtcbiAgICBzdGFydDogbnVtYmVyO1xuICB9O1xuICBvbkZhaWw6ICh2YWx1ZTogc3RyaW5nLCBlcnJvcjogRXJyb3IpID0+IE9uRXJyRmFsbGJhY2s7XG59XG5cbmV4cG9ydCB0eXBlIENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+ID0gRGVlcFBhcnRpYWw8XG4gIEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+XG4+O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8c3RyaW5nPiA9IHtcbiAgZGVsaW1pdGVyczoge1xuICAgIGRvdDogJy4nLFxuICAgIGRhc2g6ICctJyxcbiAgfSxcbiAgaGlkZGVuUmFuZ2U6IHtcbiAgICBzdGFydDogMyxcbiAgICBlbmQ6IDEwLFxuICB9LFxuICBvbkZhaWw6ICh2YWx1ZSkgPT4gdmFsdWUsXG4gIGhpZGRlbktleTogJyonLFxuICBoaWRkZW46IGZhbHNlLFxuICBlc2NhcGU6IGZhbHNlLFxufTtcblxuLyoqXG4gKiBNZXJnZSBjdXN0b20gb3B0aW9ucyB0byB0aGUgZGVmYXVsdCBvbmVzLlxuICovXG5mdW5jdGlvbiBtZXJnZU9wdGlvbnM8T25FcnJGYWxsYmFjaz4oXG4gIGN1c3RvbU9wdGlvbnM6IENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+ID0ge30sXG4pOiBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBtZXJnZURlZXAoXG4gICAgZGVmYXVsdE9wdGlvbnMsXG4gICAgY3VzdG9tT3B0aW9ucyxcbiAgKSBhcyBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPjtcblxuICBpZiAob3B0aW9ucy5oaWRkZW4pIHtcbiAgICBpZiAoXG4gICAgICBpc05hTihvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0KSB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA8IDAgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPiAxMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3B0aW9uIFwiaGlkZGVuUmFuZ2Uuc3RhcnRcIiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTAuJyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaXNOYU4ob3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQpIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA8IDAgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kID4gMTBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09wdGlvbiBcImhpZGRlblJhbmdlLmVuZFwiIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMC4nKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA+IG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kKSB7XG4gICAgICBjb25zdCBhdXggPSBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0O1xuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA9IG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kO1xuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPSBhdXg7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLm9uRmFpbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBvcHRpb24gXCJvbkZhaWxcIiBtdXN0IGJlIGEgY2FsbGJhY2sgZnVuY3Rpb24uJyk7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWVyZ2VPcHRpb25zO1xuIiwiaW1wb3J0IHsgZXNjYXBlIGFzIGVzY2FwZUhUTUwgfSBmcm9tICdodG1sLWVzY2FwZXInO1xuaW1wb3J0IG51bU9ubHkgZnJvbSAnbnVtLW9ubHknO1xuXG5pbXBvcnQgbWVyZ2VPcHRpb25zIGZyb20gJy4vbWVyZ2Utb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IENwZkZvcm1hdHRpbmdPcHRpb25zIH0gZnJvbSAnLi9tZXJnZS1vcHRpb25zJztcblxuLyoqXG4gKiBWYWxpZGF0ZSBhIGdpdmVuIENQRiBjaGFyIHNlcXVlbmNlLlxuICovXG5mdW5jdGlvbiBjcGZGbXQ8T25FcnJGYWxsYmFjayA9IHN0cmluZz4oXG4gIGNwZlN0cmluZzogc3RyaW5nLFxuICBvcHRpb25zPzogQ3BmRm9ybWF0dGluZ09wdGlvbnM8T25FcnJGYWxsYmFjaz4sXG4pOiBzdHJpbmcge1xuICBjb25zdCBDUEZfTEVOR1RIID0gMTE7XG4gIGNvbnN0IGNwZkFycmF5ID0gbnVtT25seShjcGZTdHJpbmcpLnNwbGl0KCcnKTtcbiAgY29uc3QgY3VzdG9tT3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhvcHRpb25zKTtcblxuICBpZiAoY3BmQXJyYXkubGVuZ3RoICE9PSBDUEZfTEVOR1RIKSB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoYFBhcmFtZXRlciBcIiR7Y3BmU3RyaW5nfVwiIGRvZXMgbm90IGNvbnRhaW4gJHtDUEZfTEVOR1RIfSBkaWdpdHMuYCk7XG5cbiAgICByZXR1cm4gY3VzdG9tT3B0aW9ucy5vbkZhaWwoY3BmU3RyaW5nLCBlcnJvcikgYXMgc3RyaW5nO1xuICB9XG5cbiAgaWYgKGN1c3RvbU9wdGlvbnMuaGlkZGVuKSB7XG4gICAgZm9yIChsZXQgaSA9IGN1c3RvbU9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQ7IGkgPD0gY3VzdG9tT3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQ7IGkrKykge1xuICAgICAgY3BmQXJyYXlbaV0gPSBjdXN0b21PcHRpb25zLmhpZGRlbktleTtcbiAgICB9XG4gIH1cblxuICBjcGZBcnJheS5zcGxpY2UoOSwgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRhc2gpO1xuICBjcGZBcnJheS5zcGxpY2UoNiwgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRvdCk7XG4gIGNwZkFycmF5LnNwbGljZSgzLCAwLCBjdXN0b21PcHRpb25zLmRlbGltaXRlcnMuZG90KTtcbiAgY29uc3QgY3BmUHJldHR5ID0gY3BmQXJyYXkuam9pbignJyk7XG5cbiAgaWYgKGN1c3RvbU9wdGlvbnMuZXNjYXBlKSB7XG4gICAgcmV0dXJuIGVzY2FwZUhUTUwoY3BmUHJldHR5KTtcbiAgfVxuXG4gIHJldHVybiBjcGZQcmV0dHk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNwZkZtdDtcbiJdLCJuYW1lcyI6WyJyZXBsYWNlIiwiY2EiLCJlc2NhIiwicGUiLCJtIiwiYnVpbGQiLCJ0YXJnZXQiLCJTdHJpbmciLCJpc01lcmdlYWJsZU9iamVjdCIsInZhbHVlIiwiaXNOb25OdWxsT2JqZWN0Iiwic3RyaW5nVmFsdWUiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCIkJHR5cGVvZiIsIlJFQUNUX0VMRU1FTlRfVFlQRSIsImlzUmVhY3RFbGVtZW50IiwiaXNTcGVjaWFsIiwiU3ltYm9sIiwiZm9yIiwiY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQiLCJvcHRpb25zIiwiY2xvbmUiLCJkZWVwbWVyZ2UiLCJ2YWwiLCJBcnJheSIsImlzQXJyYXkiLCJkZWZhdWx0QXJyYXlNZXJnZSIsInNvdXJjZSIsImNvbmNhdCIsIm1hcCIsImVsZW1lbnQiLCJnZXRLZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsInN5bWJvbCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiZ2V0RW51bWVyYWJsZU93blByb3BlcnR5U3ltYm9scyIsInByb3BlcnR5SXNPbk9iamVjdCIsIm9iamVjdCIsInByb3BlcnR5IiwiXyIsIm1lcmdlT2JqZWN0IiwiZGVzdGluYXRpb24iLCJmb3JFYWNoIiwia2V5IiwiaGFzT3duUHJvcGVydHkiLCJwcm9wZXJ0eUlzVW5zYWZlIiwiY3VzdG9tTWVyZ2UiLCJnZXRNZXJnZUZ1bmN0aW9uIiwiYXJyYXlNZXJnZSIsInNvdXJjZUlzQXJyYXkiLCJhbGwiLCJhcnJheSIsIkVycm9yIiwicmVkdWNlIiwicHJldiIsIm5leHQiLCJjanMiLCJkZWZhdWx0T3B0aW9ucyIsImRlbGltaXRlcnMiLCJkb3QiLCJkYXNoIiwiaGlkZGVuUmFuZ2UiLCJzdGFydCIsImVuZCIsIm9uRmFpbCIsImhpZGRlbktleSIsImhpZGRlbiIsImVzY2FwZSIsImNwZlN0cmluZyIsImNwZkFycmF5IiwibnVtT25seSIsInNwbGl0IiwiY3VzdG9tT3B0aW9ucyIsIm1lcmdlRGVlcCIsImlzTmFOIiwiVHlwZUVycm9yIiwiYXV4IiwibWVyZ2VPcHRpb25zIiwibGVuZ3RoIiwiZXJyb3IiLCJpIiwic3BsaWNlIiwiZXMiLCJjcGZQcmV0dHkiLCJqb2luIl0sIm1hcHBpbmdzIjoiOzs7Ozs7dU9Bc0JBLE1BQU1BLFFBQUNBLEdBQVcsR0FJWkMsRUFBSyxXQUVMQyxFQUFPLENBQ1gsSUFBSyxRQUNMLElBQUssT0FDTCxJQUFLLE9BQ0wsSUFBSyxRQUNMLElBQUssVUFFREMsRUFBS0MsR0FBS0YsRUFBS0Usb0lDN0JyQkMsRUFKQSxTQUFpQkMsR0FDZixPQUFPQyxPQUFPRCxHQUFRTixRQUFRLE1BQU8sR0FDdkMseUNDRkEsSUFBSVEsRUFBb0IsU0FBMkJDLEdBQ2xELE9BSUQsU0FBeUJBLEdBQ3hCLFFBQVNBLEdBQTBCLGlCQUFWQSxDQUMxQixDQU5RQyxDQUFnQkQsS0FReEIsU0FBbUJBLEdBQ2xCLElBQUlFLEVBQWNDLE9BQU9DLFVBQVVDLFNBQVNDLEtBQUtOLEdBRWpELE1BQXVCLG9CQUFoQkUsR0FDYSxrQkFBaEJBLEdBUUwsU0FBd0JGLEdBQ3ZCLE9BQU9BLEVBQU1PLFdBQWFDLENBQzNCLENBVEtDLENBQWVULEVBQ3BCLENBYk1VLENBQVVWLEVBQ2YsRUFnQkdRLEVBRGlDLG1CQUFYRyxRQUF5QkEsT0FBT0MsSUFDbEJELE9BQU9DLElBQUksaUJBQW1CLE1BVXRFLFNBQVNDLEVBQThCYixFQUFPYyxHQUM3QyxPQUEwQixJQUFsQkEsRUFBUUMsT0FBbUJELEVBQVFmLGtCQUFrQkMsR0FDMURnQixHQU5pQkMsRUFNS2pCLEVBTGxCa0IsTUFBTUMsUUFBUUYsR0FBTyxHQUFLLENBQUEsR0FLQWpCLEVBQU9jLEdBQ3JDZCxFQVBKLElBQXFCaUIsQ0FRckIsQ0FFQSxTQUFTRyxFQUFrQnZCLEVBQVF3QixFQUFRUCxHQUMxQyxPQUFP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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWZtdC5taW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9odG1sLWVzY2FwZXIvZXNtL2luZGV4LmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL251bS1vbmx5L2J1aWxkL2luZGV4LmNqcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9janMuanMiLCIuLi9zcmMvbWVyZ2Utb3B0aW9ucy50cyIsIi4uL3NyYy9jcGYtZm10LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChDKSAyMDE3LXByZXNlbnQgYnkgQW5kcmVhIEdpYW1tYXJjaGkgLSBAV2ViUmVmbGVjdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuY29uc3Qge3JlcGxhY2V9ID0gJyc7XG5cbi8vIGVzY2FwZVxuY29uc3QgZXMgPSAvJig/OmFtcHwjMzh8bHR8IzYwfGd0fCM2MnxhcG9zfCMzOXxxdW90fCMzNCk7L2c7XG5jb25zdCBjYSA9IC9bJjw+J1wiXS9nO1xuXG5jb25zdCBlc2NhID0ge1xuICAnJic6ICcmYW1wOycsXG4gICc8JzogJyZsdDsnLFxuICAnPic6ICcmZ3Q7JyxcbiAgXCInXCI6ICcmIzM5OycsXG4gICdcIic6ICcmcXVvdDsnXG59O1xuY29uc3QgcGUgPSBtID0+IGVzY2FbbV07XG5cbi8qKlxuICogU2FmZWx5IGVzY2FwZSBIVE1MIGVudGl0aWVzIHN1Y2ggYXMgYCZgLCBgPGAsIGA+YCwgYFwiYCwgYW5kIGAnYC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBlcyB0aGUgaW5wdXQgdG8gc2FmZWx5IGVzY2FwZVxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGVzY2FwZWQgaW5wdXQsIGFuZCBpdCAqKnRocm93cyoqIGFuIGVycm9yIGlmXG4gKiAgdGhlIGlucHV0IHR5cGUgaXMgdW5leHBlY3RlZCwgZXhjZXB0IGZvciBib29sZWFuIGFuZCBudW1iZXJzLFxuICogIGNvbnZlcnRlZCBhcyBzdHJpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBlc2NhcGUgPSBlcyA9PiByZXBsYWNlLmNhbGwoZXMsIGNhLCBwZSk7XG5cblxuLy8gdW5lc2NhcGVcbmNvbnN0IHVuZXMgPSB7XG4gICcmYW1wOyc6ICcmJyxcbiAgJyYjMzg7JzogJyYnLFxuICAnJmx0Oyc6ICc8JyxcbiAgJyYjNjA7JzogJzwnLFxuICAnJmd0Oyc6ICc+JyxcbiAgJyYjNjI7JzogJz4nLFxuICAnJmFwb3M7JzogXCInXCIsXG4gICcmIzM5Oyc6IFwiJ1wiLFxuICAnJnF1b3Q7JzogJ1wiJyxcbiAgJyYjMzQ7JzogJ1wiJ1xufTtcbmNvbnN0IGNhcGUgPSBtID0+IHVuZXNbbV07XG5cbi8qKlxuICogU2FmZWx5IHVuZXNjYXBlIHByZXZpb3VzbHkgZXNjYXBlZCBlbnRpdGllcyBzdWNoIGFzIGAmYCwgYDxgLCBgPmAsIGBcImAsXG4gKiBhbmQgYCdgLlxuICogQHBhcmFtIHtzdHJpbmd9IHVuIGEgcHJldmlvdXNseSBlc2NhcGVkIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gdGhlIHVuZXNjYXBlZCBpbnB1dCwgYW5kIGl0ICoqdGhyb3dzKiogYW4gZXJyb3IgaWZcbiAqICB0aGUgaW5wdXQgdHlwZSBpcyB1bmV4cGVjdGVkLCBleGNlcHQgZm9yIGJvb2xlYW4gYW5kIG51bWJlcnMsXG4gKiAgY29udmVydGVkIGFzIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuZXNjYXBlID0gdW4gPT4gcmVwbGFjZS5jYWxsKHVuLCBlcywgY2FwZSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIG51bU9ubHkodGFyZ2V0KSB7XG4gIHJldHVybiBTdHJpbmcodGFyZ2V0KS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbnVtT25seTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VZMnB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTl6Y21NdmJuVnRMVzl1YkhrdWRITWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpWm5WdVkzUnBiMjRnYm5WdFQyNXNlU2gwWVhKblpYUTZJSFZ1YTI1dmQyNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnVTNSeWFXNW5LSFJoY21kbGRDa3VjbVZ3YkdGalpTZ3ZYRnhFTDJjc0lDY25LVHRjYm4xY2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ2JuVnRUMjVzZVR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96dEJRVUZCTEZOQlFWTXNVVUZCVVN4TlFVRjVRaXhGUVVGQk8wRkJRM2hETEVWQlFVRXNUMEZCVHl4TlFVRlBMRU5CUVVFc1RVRkJUU3hEUVVGRkxFTkJRVUVzVDBGQlFTeERRVUZSTEU5QlFVOHNSVUZCUlN4RFFVRkJPMEZCUTNwRE96czdPeUo5XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpc01lcmdlYWJsZU9iamVjdCA9IGZ1bmN0aW9uIGlzTWVyZ2VhYmxlT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiBpc05vbk51bGxPYmplY3QodmFsdWUpXG5cdFx0JiYgIWlzU3BlY2lhbCh2YWx1ZSlcbn07XG5cbmZ1bmN0aW9uIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSkge1xuXHRyZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzU3BlY2lhbCh2YWx1ZSkge1xuXHR2YXIgc3RyaW5nVmFsdWUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuXG5cdHJldHVybiBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcblx0XHR8fCBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgRGF0ZV0nXG5cdFx0fHwgaXNSZWFjdEVsZW1lbnQodmFsdWUpXG59XG5cbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iNWFjOTYzZmI3OTFkMTI5OGU3ZjM5NjIzNjM4M2JjOTU1ZjkxNmMxL3NyYy9pc29tb3JwaGljL2NsYXNzaWMvZWxlbWVudC9SZWFjdEVsZW1lbnQuanMjTDIxLUwyNVxudmFyIGNhblVzZVN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcjtcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBjYW5Vc2VTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgOiAweGVhYzc7XG5cbmZ1bmN0aW9uIGlzUmVhY3RFbGVtZW50KHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG59XG5cbmZ1bmN0aW9uIGVtcHR5VGFyZ2V0KHZhbCkge1xuXHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fVxufVxuXG5mdW5jdGlvbiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCh2YWx1ZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gKG9wdGlvbnMuY2xvbmUgIT09IGZhbHNlICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodmFsdWUpKVxuXHRcdD8gZGVlcG1lcmdlKGVtcHR5VGFyZ2V0KHZhbHVlKSwgdmFsdWUsIG9wdGlvbnMpXG5cdFx0OiB2YWx1ZVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0QXJyYXlNZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gdGFyZ2V0LmNvbmNhdChzb3VyY2UpLm1hcChmdW5jdGlvbihlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGVsZW1lbnQsIG9wdGlvbnMpXG5cdH0pXG59XG5cbmZ1bmN0aW9uIGdldE1lcmdlRnVuY3Rpb24oa2V5LCBvcHRpb25zKSB7XG5cdGlmICghb3B0aW9ucy5jdXN0b21NZXJnZSkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2Vcblx0fVxuXHR2YXIgY3VzdG9tTWVyZ2UgPSBvcHRpb25zLmN1c3RvbU1lcmdlKGtleSk7XG5cdHJldHVybiB0eXBlb2YgY3VzdG9tTWVyZ2UgPT09ICdmdW5jdGlvbicgPyBjdXN0b21NZXJnZSA6IGRlZXBtZXJnZVxufVxuXG5mdW5jdGlvbiBnZXRFbnVtZXJhYmxlT3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkge1xuXHRyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc1xuXHRcdD8gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpLmZpbHRlcihmdW5jdGlvbihzeW1ib2wpIHtcblx0XHRcdHJldHVybiBPYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0YXJnZXQsIHN5bWJvbClcblx0XHR9KVxuXHRcdDogW11cbn1cblxuZnVuY3Rpb24gZ2V0S2V5cyh0YXJnZXQpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHRhcmdldCkuY29uY2F0KGdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSlcbn1cblxuZnVuY3Rpb24gcHJvcGVydHlJc09uT2JqZWN0KG9iamVjdCwgcHJvcGVydHkpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gcHJvcGVydHkgaW4gb2JqZWN0XG5cdH0gY2F0Y2goXykge1xuXHRcdHJldHVybiBmYWxzZVxuXHR9XG59XG5cbi8vIFByb3RlY3RzIGZyb20gcHJvdG90eXBlIHBvaXNvbmluZyBhbmQgdW5leHBlY3RlZCBtZXJnaW5nIHVwIHRoZSBwcm90b3R5cGUgY2hhaW4uXG5mdW5jdGlvbiBwcm9wZXJ0eUlzVW5zYWZlKHRhcmdldCwga2V5KSB7XG5cdHJldHVybiBwcm9wZXJ0eUlzT25PYmplY3QodGFyZ2V0LCBrZXkpIC8vIFByb3BlcnRpZXMgYXJlIHNhZmUgdG8gbWVyZ2UgaWYgdGhleSBkb24ndCBleGlzdCBpbiB0aGUgdGFyZ2V0IHlldCxcblx0XHQmJiAhKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwga2V5KSAvLyB1bnNhZmUgaWYgdGhleSBleGlzdCB1cCB0aGUgcHJvdG90eXBlIGNoYWluLFxuXHRcdFx0JiYgT2JqZWN0LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodGFyZ2V0LCBrZXkpKSAvLyBhbmQgYWxzbyB1bnNhZmUgaWYgdGhleSdyZSBub25lbnVtZXJhYmxlLlxufVxuXG5mdW5jdGlvbiBtZXJnZU9iamVjdCh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHR2YXIgZGVzdGluYXRpb24gPSB7fTtcblx0aWYgKG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodGFyZ2V0KSkge1xuXHRcdGdldEtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHRhcmdldFtrZXldLCBvcHRpb25zKTtcblx0XHR9KTtcblx0fVxuXHRnZXRLZXlzKHNvdXJjZSkuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcblx0XHRpZiAocHJvcGVydHlJc1Vuc2FmZSh0YXJnZXQsIGtleSkpIHtcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGlmIChwcm9wZXJ0eUlzT25PYmplY3QodGFyZ2V0LCBrZXkpICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3Qoc291cmNlW2tleV0pKSB7XG5cdFx0XHRkZXN0aW5hdGlvbltrZXldID0gZ2V0TWVyZ2VGdW5jdGlvbihrZXksIG9wdGlvbnMpKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGRlc3RpbmF0aW9uXG59XG5cbmZ1bmN0aW9uIGRlZXBtZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblx0b3B0aW9ucy5hcnJheU1lcmdlID0gb3B0aW9ucy5hcnJheU1lcmdlIHx8IGRlZmF1bHRBcnJheU1lcmdlO1xuXHRvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0ID0gb3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCB8fCBpc01lcmdlYWJsZU9iamVjdDtcblx0Ly8gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQgaXMgYWRkZWQgdG8gYG9wdGlvbnNgIHNvIHRoYXQgY3VzdG9tIGFycmF5TWVyZ2UoKVxuXHQvLyBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSBpdC4gVGhlIGNhbGxlciBtYXkgbm90IHJlcGxhY2UgaXQuXG5cdG9wdGlvbnMuY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQgPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZDtcblxuXHR2YXIgc291cmNlSXNBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKTtcblx0dmFyIHRhcmdldElzQXJyYXkgPSBBcnJheS5pc0FycmF5KHRhcmdldCk7XG5cdHZhciBzb3VyY2VBbmRUYXJnZXRUeXBlc01hdGNoID0gc291cmNlSXNBcnJheSA9PT0gdGFyZ2V0SXNBcnJheTtcblxuXHRpZiAoIXNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2gpIHtcblx0XHRyZXR1cm4gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQoc291cmNlLCBvcHRpb25zKVxuXHR9IGVsc2UgaWYgKHNvdXJjZUlzQXJyYXkpIHtcblx0XHRyZXR1cm4gb3B0aW9ucy5hcnJheU1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBtZXJnZU9iamVjdCh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucylcblx0fVxufVxuXG5kZWVwbWVyZ2UuYWxsID0gZnVuY3Rpb24gZGVlcG1lcmdlQWxsKGFycmF5LCBvcHRpb25zKSB7XG5cdGlmICghQXJyYXkuaXNBcnJheShhcnJheSkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2ZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheScpXG5cdH1cblxuXHRyZXR1cm4gYXJyYXkucmVkdWNlKGZ1bmN0aW9uKHByZXYsIG5leHQpIHtcblx0XHRyZXR1cm4gZGVlcG1lcmdlKHByZXYsIG5leHQsIG9wdGlvbnMpXG5cdH0sIHt9KVxufTtcblxudmFyIGRlZXBtZXJnZV8xID0gZGVlcG1lcmdlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlZXBtZXJnZV8xO1xuIiwiaW1wb3J0IG1lcmdlRGVlcCBmcm9tICdkZWVwbWVyZ2UnO1xuXG50eXBlIERlZXBQYXJ0aWFsPFQ+ID0ge1xuICBbUCBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbUF0+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiB7XG4gIGRlbGltaXRlcnM6IHtcbiAgICBkYXNoOiBzdHJpbmc7XG4gICAgZG90OiBzdHJpbmc7XG4gIH07XG4gIGVzY2FwZTogYm9vbGVhbjtcbiAgaGlkZGVuOiBib29sZWFuO1xuICBoaWRkZW5LZXk6IHN0cmluZztcbiAgaGlkZGVuUmFuZ2U6IHtcbiAgICBlbmQ6IG51bWJlcjtcbiAgICBzdGFydDogbnVtYmVyO1xuICB9O1xuICBvbkZhaWw6ICh2YWx1ZTogc3RyaW5nLCBlcnJvcjogRXJyb3IpID0+IE9uRXJyRmFsbGJhY2s7XG59XG5cbmV4cG9ydCB0eXBlIENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+ID0gRGVlcFBhcnRpYWw8XG4gIEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+XG4+O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8c3RyaW5nPiA9IHtcbiAgZGVsaW1pdGVyczoge1xuICAgIGRvdDogJy4nLFxuICAgIGRhc2g6ICctJyxcbiAgfSxcbiAgaGlkZGVuUmFuZ2U6IHtcbiAgICBzdGFydDogMyxcbiAgICBlbmQ6IDEwLFxuICB9LFxuICBvbkZhaWw6ICh2YWx1ZSkgPT4gdmFsdWUsXG4gIGhpZGRlbktleTogJyonLFxuICBoaWRkZW46IGZhbHNlLFxuICBlc2NhcGU6IGZhbHNlLFxufTtcblxuLyoqXG4gKiBNZXJnZSBjdXN0b20gb3B0aW9ucyB0byB0aGUgZGVmYXVsdCBvbmVzLlxuICovXG5mdW5jdGlvbiBtZXJnZU9wdGlvbnM8T25FcnJGYWxsYmFjaz4oXG4gIGN1c3RvbU9wdGlvbnM6IENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+ID0ge30sXG4pOiBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBtZXJnZURlZXAoXG4gICAgZGVmYXVsdE9wdGlvbnMsXG4gICAgY3VzdG9tT3B0aW9ucyxcbiAgKSBhcyBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPjtcblxuICBpZiAob3B0aW9ucy5oaWRkZW4pIHtcbiAgICBpZiAoXG4gICAgICBpc05hTihvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0KSB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA8IDAgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPiAxMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3B0aW9uIFwiaGlkZGVuUmFuZ2Uuc3RhcnRcIiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTAuJyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaXNOYU4ob3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQpIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA8IDAgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kID4gMTBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09wdGlvbiBcImhpZGRlblJhbmdlLmVuZFwiIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMC4nKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA+IG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kKSB7XG4gICAgICBjb25zdCBhdXggPSBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0O1xuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA9IG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kO1xuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPSBhdXg7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLm9uRmFpbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBvcHRpb24gXCJvbkZhaWxcIiBtdXN0IGJlIGEgY2FsbGJhY2sgZnVuY3Rpb24uJyk7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWVyZ2VPcHRpb25zO1xuIiwiaW1wb3J0IHsgZXNjYXBlIGFzIGVzY2FwZUhUTUwgfSBmcm9tICdodG1sLWVzY2FwZXInO1xuaW1wb3J0IG51bU9ubHkgZnJvbSAnbnVtLW9ubHknO1xuXG5pbXBvcnQgbWVyZ2VPcHRpb25zIGZyb20gJy4vbWVyZ2Utb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IENwZkZvcm1hdHRpbmdPcHRpb25zIH0gZnJvbSAnLi9tZXJnZS1vcHRpb25zJztcblxuLyoqXG4gKiBGb3JtYXQgYSBnaXZlbiBDUEYgY2hhciBzZXF1ZW5jZS5cbiAqL1xuZnVuY3Rpb24gY3BmRm10PE9uRXJyRmFsbGJhY2sgPSBzdHJpbmc+KFxuICBjcGZTdHJpbmc6IHN0cmluZyxcbiAgb3B0aW9ucz86IENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgQ1BGX0xFTkdUSCA9IDExO1xuICBjb25zdCBjcGZBcnJheSA9IG51bU9ubHkoY3BmU3RyaW5nKS5zcGxpdCgnJyk7XG4gIGNvbnN0IGN1c3RvbU9wdGlvbnMgPSBtZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgaWYgKGNwZkFycmF5Lmxlbmd0aCAhPT0gQ1BGX0xFTkdUSCkge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBQYXJhbWV0ZXIgXCIke2NwZlN0cmluZ31cIiBkb2VzIG5vdCBjb250YWluICR7Q1BGX0xFTkdUSH0gZGlnaXRzLmApO1xuXG4gICAgcmV0dXJuIGN1c3RvbU9wdGlvbnMub25GYWlsKGNwZlN0cmluZywgZXJyb3IpIGFzIHN0cmluZztcbiAgfVxuXG4gIGlmIChjdXN0b21PcHRpb25zLmhpZGRlbikge1xuICAgIGZvciAobGV0IGkgPSBjdXN0b21PcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0OyBpIDw9IGN1c3RvbU9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kOyBpKyspIHtcbiAgICAgIGNwZkFycmF5W2ldID0gY3VzdG9tT3B0aW9ucy5oaWRkZW5LZXk7XG4gICAgfVxuICB9XG5cbiAgY3BmQXJyYXkuc3BsaWNlKDksIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kYXNoKTtcbiAgY3BmQXJyYXkuc3BsaWNlKDYsIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kb3QpO1xuICBjcGZBcnJheS5zcGxpY2UoMywgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRvdCk7XG4gIGNvbnN0IGNwZlByZXR0eSA9IGNwZkFycmF5LmpvaW4oJycpO1xuXG4gIGlmIChjdXN0b21PcHRpb25zLmVzY2FwZSkge1xuICAgIHJldHVybiBlc2NhcGVIVE1MKGNwZlByZXR0eSk7XG4gIH1cblxuICByZXR1cm4gY3BmUHJldHR5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcGZGbXQ7XG4iXSwibmFtZXMiOlsicmVwbGFjZSIsImNhIiwiZXNjYSIsInBlIiwibSIsImJ1aWxkIiwidGFyZ2V0IiwiU3RyaW5nIiwiaXNNZXJnZWFibGVPYmplY3QiLCJ2YWx1ZSIsImlzTm9uTnVsbE9iamVjdCIsInN0cmluZ1ZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiJCR0eXBlb2YiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJpc1JlYWN0RWxlbWVudCIsImlzU3BlY2lhbCIsIlN5bWJvbCIsImZvciIsImNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkIiwib3B0aW9ucyIsImNsb25lIiwiZGVlcG1lcmdlIiwidmFsIiwiQXJyYXkiLCJpc0FycmF5IiwiZGVmYXVsdEFycmF5TWVyZ2UiLCJzb3VyY2UiLCJjb25jYXQiLCJtYXAiLCJlbGVtZW50IiwiZ2V0S2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJzeW1ib2wiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzT25PYmplY3QiLCJvYmplY3QiLCJwcm9wZXJ0eSIsIl8iLCJtZXJnZU9iamVjdCIsImRlc3RpbmF0aW9uIiwiZm9yRWFjaCIsImtleSIsImhhc093blByb3BlcnR5IiwicHJvcGVydHlJc1Vuc2FmZSIsImN1c3RvbU1lcmdlIiwiZ2V0TWVyZ2VGdW5jdGlvbiIsImFycmF5TWVyZ2UiLCJzb3VyY2VJc0FycmF5IiwiYWxsIiwiYXJyYXkiLCJFcnJvciIsInJlZHVjZSIsInByZXYiLCJuZXh0IiwiY2pzIiwiZGVmYXVsdE9wdGlvbnMiLCJkZWxpbWl0ZXJzIiwiZG90IiwiZGFzaCIsImhpZGRlblJhbmdlIiwic3RhcnQiLCJlbmQiLCJvbkZhaWwiLCJoaWRkZW5LZXkiLCJoaWRkZW4iLCJlc2NhcGUiLCJjcGZTdHJpbmciLCJjcGZBcnJheSIsIm51bU9ubHkiLCJzcGxpdCIsImN1c3RvbU9wdGlvbnMiLCJtZXJnZURlZXAiLCJpc05hTiIsIlR5cGVFcnJvciIsImF1eCIsIm1lcmdlT3B0aW9ucyIsImxlbmd0aCIsImVycm9yIiwiaSIsInNwbGljZSIsImVzIiwiY3BmUHJldHR5Iiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O3VPQXNCQSxNQUFNQSxRQUFDQSxHQUFXLEdBSVpDLEVBQUssV0FFTEMsRUFBTyxDQUNYLElBQUssUUFDTCxJQUFLLE9BQ0wsSUFBSyxPQUNMLElBQUssUUFDTCxJQUFLLFVBRURDLEVBQUtDLEdBQUtGLEVBQUtFLG9JQzdCckJDLEVBSkEsU0FBaUJDLEdBQ2YsT0FBT0MsT0FBT0QsR0FBUU4sUUFBUSxNQUFPLEdBQ3ZDLHlDQ0ZBLElBQUlRLEVBQW9CLFNBQTJCQyxHQUNsRCxPQUlELFNBQXlCQSxHQUN4QixRQUFTQSxHQUEwQixpQkFBVkEsQ0FDMUIsQ0FOUUMsQ0FBZ0JELEtBUXhCLFNBQW1CQSxHQUNsQixJQUFJRSxFQUFjQyxPQUFPQyxVQUFVQyxTQUFTQyxLQUFLTixHQUVqRCxNQUF1QixvQkFBaEJFLEdBQ2Esa0JBQWhCQSxHQVFMLFNBQXdCRixHQUN2QixPQUFPQSxFQUFNTyxXQUFhQyxDQUMzQixDQVRLQyxDQUFlVCxFQUNwQixDQWJNVSxDQUFVVixFQUNmLEVBZ0JHUSxFQURpQyxtQkFBWEcsUUFBeUJBLE9BQU9DLElBQ2xCRCxPQUFPQyxJQUFJLGlCQUFtQixNQVV0RSxTQUFTQyxFQUE4QmIsRUFBT2MsR0FDN0MsT0FBMEIsSUFBbEJBLEVBQVFDLE9BQW1CRCxFQUFRZixrQkFBa0JDLEdBQzFEZ0IsR0FOaUJDLEVBTUtqQixFQUxsQmtCLE1BQU1DLFFBQVFGLEdBQU8sR0FBSyxDQUFBLEdBS0FqQixFQUFPYyxHQUNyQ2QsRUFQSixJQUFxQmlCLENBUXJCLENBRUEsU0FBU0csRUFBa0J2QixFQUFRd0IsRUFBUVAsR0FDMUMsT0FBT2pC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
{
"name": "@lacussoft/cpf-fmt",
"version": "1.4.0",
"version": "1.4.1",
"description": "Utility function to format CPF (Brazilian ID document).",

@@ -5,0 +5,0 @@ "license": "MIT",

@@ -21,3 +21,7 @@ # LacusSoft :: cpf-fmt

```bash
$ npm install @lacussoft/cpf-fmt
# using NPM
$ npm install --save @lacussoft/cpf-fmt
# using Bun
$ bun add @lacussoft/cpf-fmt
```

@@ -24,0 +28,0 @@