Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

firebase-bolt

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firebase-bolt - npm Package Compare versions

Comparing version 0.4.2 to 0.5.0

lib/test/regexp-test.js

6

docs/changelog.txt

@@ -1,2 +0,4 @@

fixed - Invoke validation function for all String ancestors types.
feature - Handle command line arguments and help for firebase-bolt CLI.
changed - Support string.test(/regexp/) format (formerly required regexp in a quoted string).
feature - Added regexp test and samples.
feature - Allow quoted property names in type statements.
fixed - Parser failed when empty string used.

@@ -29,3 +29,3 @@ /*

var bolt = (typeof window !== 'undefined' && window.bolt) || require('./bolt');
var MAX_TEST_MS = 30000;
var MAX_TEST_MS = 60000;
function rulesSuite(suiteName, fnSuite) {

@@ -307,2 +307,2 @@ new RulesSuite(suiteName, fnSuite).run();

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXVsYXRvci50cyJdLCJuYW1lcyI6WyJydWxlc1N1aXRlIiwiUnVsZXNTdWl0ZSIsIm5leHQiLCJSdWxlc1Rlc3QiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsMENBQTBDO0FBQzFDLDBDQUEwQztBQUMxQywyQ0FBMkM7QUFDM0MsaURBQWlEO0FBRWpELElBQU8sT0FBTyxXQUFXLFNBQVMsQ0FBQyxDQUFDO0FBQ3BDLElBQU8sSUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDekIsSUFBTyxJQUFJLFdBQVcsaUJBQWlCLENBQUMsQ0FBQztBQUN6QyxJQUFPLElBQUksV0FBVyxRQUFRLENBQUMsQ0FBQztBQUNoQyxJQUFPLE1BQU0sV0FBVyxXQUFXLENBQUMsQ0FBQztBQUtyQyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRS9FLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztBQUV4QixvQkFBMkIsU0FBUyxFQUFFLE9BQU87SUFDM0NBLElBQUlBLFVBQVVBLENBQUNBLFNBQVNBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBO0FBQzNDQSxDQUFDQTtBQUZlLGtCQUFVLGFBRXpCLENBQUE7QUFFRCxvQkFBb0IsU0FBUyxFQUFFLE9BQU87SUFDcENDLElBQUlBLENBQUNBLFNBQVNBLEdBQUdBLFNBQVNBLENBQUNBO0lBQzNCQSxJQUFJQSxDQUFDQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQTtJQUN2QkEsSUFBSUEsQ0FBQ0EsS0FBS0EsR0FBR0EsRUFBRUEsQ0FBQ0E7SUFDaEJBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLEVBQUVBLENBQUNBO0lBQ2hCQSxJQUFJQSxDQUFDQSxLQUFLQSxH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QUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQUMsQ0FBQyIsImZpbGUiOiJzaW11bGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogRmlyZWJhc2UgUnVsZXMgdGVzdCBzaW11bGF0b3IuXG4gKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL25vZGUuZC50c1wiIC8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9jaGFpLmQudHNcIiAvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbW9jaGEuZC50c1wiIC8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9lczYtcHJvbWlzZS5kLnRzXCIgLz5cblxuaW1wb3J0IFByb21pc2UgPSByZXF1aXJlKCdwcm9taXNlJyk7XG5pbXBvcnQgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcbnZhciBhc3NlcnQgPSBjaGFpLmFzc2VydDtcbmltcG9ydCByZXN0ID0gcmVxdWlyZSgnLi9maXJlYmFzZS1yZXN0Jyk7XG5pbXBvcnQgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuaW1wb3J0IGZpbGVJTyA9IHJlcXVpcmUoJy4vZmlsZS1pbycpO1xuXG4vLyBCcm93c2VyaWZ5IGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL25vZGUtYnJvd3NlcmlmeS9pc3N1ZXMvMTE1MFxuaW50ZXJmYWNlIFdpbmRvdyB7IGJvbHQ6IGFueTsgfVxuZGVjbGFyZSB2YXIgd2luZG93OiBXaW5kb3c7XG52YXIgYm9sdCA9ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuYm9sdCkgfHwgcmVxdWlyZSgnLi9ib2x0Jyk7XG5cbnZhciBNQVhfVEVTVF9NUyA9IDMwMDAwO1xuXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNTdWl0ZShzdWl0ZU5hbWUsIGZuU3VpdGUpIHtcbiAgbmV3IFJ1bGVzU3VpdGUoc3VpdGVOYW1lLCBmblN1aXRlKS5ydW4oKTtcbn1cblxuZnVuY3Rpb24gUnVsZXNTdWl0ZShzdWl0ZU5hbWUsIGZuU3VpdGUpIHtcbiAgdGhpcy5zdWl0ZU5hbWUgPSBzdWl0ZU5hbWU7XG4gIHRoaXMuZm5TdWl0ZSA9IGZuU3VpdGU7XG4gIHRoaXMudXNlcnMgPSB7fTtcbiAgdGhpcy50ZXN0cyA9IFtdO1xuICB0aGlzLmRlYnVnID0gZmFsc2U7XG59XG5cbnV0aWwubWV0aG9kcyhSdWxlc1N1aXRlLCB7XG4gIHNldERlYnVnOiBmdW5jdGlvbihkZWJ1Zykge1xuICAgIGlmIChkZWJ1ZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWJ1ZyA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBydW46IGZ1bmN0aW9uKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIC8vIFJ1biBNb2NoYSBUZXN0IFN1aXRlIC0gc2VyaWFsaXplIHdpdGggYW55IG90aGVyIG1vY2hhIHRlc3Qgc3VpdGVzLlxuICAgIHN1aXRlKFwiRmlyZWJhc2UgUnVsZXMgU2ltdWxhdG9yOiBcIiArIHNlbGYuc3VpdGVOYW1lLCBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMudGltZW91dChNQVhfVEVTVF9NUyk7XG4gICAgICBzdWl0ZVNldHVwKGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcnVsZXNQYXRoID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkge1xuICAgICAgICAgIHNlbGYucnVsZXNQYXRoUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBkYXRhYmFzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHtcbiAgICAgICAgICBzZWxmLmRhdGFiYXNlUmVhZHkgPSByZXNvbHZlO1xuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgcnVsZXNKU09OID0gYm9sdC5nZW5lcmF0ZSh1dGlsLmdldFByb3AoZmlsZUlPLnJlYWRGaWxlKHJ1bGVzUGF0aCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCcpKTtcblxuICAgICAgICBzZWxmLnJlYWR5ID0gUHJvbWlzZS5hbGwoW3J1bGVzSlNPTiwgZGF0YWJhc2VdKVxuICAgICAgICAgIC50aGVuKHNlbGYub25SdWxlc1JlYWR5LmJpbmQoc2VsZikpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgaW5pdGlhbGl6YXRpb24gYW5kIGdldCB0ZXN0IGRlZmluaXRpb25zIChpbiBjbGllbnQgY29kZSkuXG4gICAgICAgIHNlbGYuZm5TdWl0ZShzZWxmLmdldEludGVyZmFjZSgpKTtcblxuICAgICAgICByZXR1cm4gc2VsZi5yZWFkeTtcbiAgICAgIH0pO1xuXG4gICAgICB0ZXN0KFwiSW5pdGlhbGl6YXRpb24uXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBwYXNzXG4gICAgICB9KTtcblxuICAgICAgdGVzdChcIlJ1bGVzIHRlc3QuXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VsZi5ydW5UZXN0cygpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLy8gSW50ZXJmYWNlIGZvciB0ZXN0IGZ1bmN0aW9uczpcbiAgLy8gICB0ZXN0LnJ1bGVzKHJ1bGVzUGF0aClcbiAgLy8gICB0ZXN0LmRhdGFiYXNlKGFwcE5hbWUsIGFwcFNlY3JldClcbiAgLy8gICB0ZXN0LnVpZCh1c2VybmFtZSlcbiAgLy8gICB0ZXN0KHRlc3ROYW1lLCB0ZXN0RnVuY3Rpb24pXG4gIC8vICAgdGVzdC5USU1FU1RBTVBcbiAgZ2V0SW50ZXJmYWNlOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdGVzdCA9IHRoaXMudGVzdC5iaW5kKHRoaXMpO1xuICAgIHRlc3QucnVsZXMgPSB0aGlzLnJ1bGVzLmJpbmQodGhpcyk7XG4gICAgdGVzdC5kYXRhYmFzZSA9IHRoaXMuZGF0YWJhc2UuYmluZCh0aGlzKTtcbiAgICB0ZXN0LnVpZCA9IHRoaXMudWlkLmJpbmQodGhpcyk7XG4gICAgdGVzdC5USU1FU1RBTVAgPSByZXN0LlRJTUVTVEFNUDtcbiAgICByZXR1cm4gdGVzdDtcbiAgfSxcblxuICAvLyBDYWxsZWQgd2hlbiBydWxlcyBhcmUgZ2VuZXJhdGVkIGFuZCB0ZXN0IGRhdGFiYXNlIGlzIGtub3duLlxuICAvLyBBcmc6IFtydWxlc0pTT04sIHRydWVdXG4gIG9uUnVsZXNSZWFkeTogZnVuY3Rpb24ocHJlcmVxKSB7XG4gICAgdGhpcy5ydWxlcyA9IHByZXJlcVswXTtcbiAgICByZXR1cm4gdGhpcy5hZG1pbkNsaWVudC5wdXQocmVzdC5SVUxFU19MT0NBVElPTiwgdGhpcy5ydWxlcyk7XG4gIH0sXG5cbiAgcnVuVGVzdHM6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBwID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXG4gICAgZnVuY3Rpb24gbmV4dChwcmV2LCB0ZXN0KSB7XG4gICAgICByZXR1cm4gcHJldi50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGVzdC5ydW4oKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50ZXN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IG5leHQocCwgdGhpcy50ZXN0c1tpXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHA7XG4gIH0sXG5cbiAgdGVzdDogZnVuY3Rpb24odGVzdE5hbWUsIGZuVGVzdCkge1xuICAgIHRoaXMudGVzdHMucHVzaChuZXcgUnVsZXNUZXN0KHRlc3ROYW1lLCB0aGlzLCBmblRlc3QpKTtcbiAgfSxcblxuICBydWxlczogZnVuY3Rpb24ocnVsZXNQYXRoKSB7XG4gICAgaWYgKHRoaXMucnVsZXNQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IGV4cGVjdCBhIHNpbmdsZSBjYWxsIHRvIHRoZSB0ZXN0LnJ1bGVzIGZ1bmN0aW9uLlwiKTtcbiAgICB9XG4gICAgdGhpcy5ydWxlc1BhdGggPSBydWxlc1BhdGg7XG4gICAgdGhpcy5ydWxlc1BhdGhSZXNvbHZlKHV0aWwuZW5zdXJlRXh0ZW5zaW9uKHJ1bGVzUGF0aCwgYm9sdC5GSUxFX0VYVEVOU0lPTikpO1xuICB9LFxuXG4gIGRhdGFiYXNlOiBmdW5jdGlvbihhcHBOYW1lLCBhcHBTZWNyZXQpIHtcbiAgICBpZiAodGhpcy5hZG1pbkNsaWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT25seSBleHBlY3QgYSBzaW5nbGUgY2FsbCB0byB0aGUgdGVzdC5kYXRhYmFzZSBmdW5jdGlvbi5cIik7XG4gICAgfVxuICAgIHRoaXMuYXBwTmFtZSA9IGFwcE5hbWU7XG4gICAgdGhpcy5hcHBTZWNyZXQgPSBhcHBTZWNyZXQ7XG4gICAgdGhpcy5hZG1pbkNsaWVudCA9IHRoaXMuZW5zdXJlVXNlcignYWRtaW4nKTtcbiAgICB0aGlzLmRhdGFiYXNlUmVhZHkoKTtcbiAgfSxcblxuICB1aWQ6IGZ1bmN0aW9uKHVzZXJuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlVXNlcih1c2VybmFtZSkudWlkO1xuICB9LFxuXG4gIGVuc3VyZVVzZXI6IGZ1bmN0aW9uKHVzZXJuYW1lKSB7XG4gICAgaWYgKCEodXNlcm5hbWUgaW4gdGhpcy51c2VycykpIHtcbiAgICAgIGlmICh1c2VybmFtZSA9PT0gJ2Fub24nKSB7XG4gICAgICAgIHRoaXMudXNlcnNbdXNlcm5hbWVdID0gbmV3IHJlc3QuQ2xpZW50KHRoaXMuYXBwTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgdG9rZW5JbmZvO1xuICAgICAgICB0b2tlbkluZm8gPSByZXN0LmdlbmVyYXRlVWlkQXV0aFRva2VuKHRoaXMuYXBwU2VjcmV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZGVidWc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZG1pbjogdXNlcm5hbWUgPT09ICdhZG1pbicgfSk7XG4gICAgICAgIHRoaXMudXNlcnNbdXNlcm5hbWVdID0gbmV3IHJlc3QuQ2xpZW50KHRoaXMuYXBwTmFtZSwgdG9rZW5JbmZvLnRva2VuLCB0b2tlbkluZm8udWlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51c2Vyc1t1c2VybmFtZV07XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBSdWxlc1Rlc3QodGVzdE5hbWUsIHN1aXRlLCBmblRlc3QpIHtcbiAgdGhpcy50ZXN0TmFtZSA9IHRlc3ROYW1lO1xuICB0aGlzLnN1aXRlID0gc3VpdGU7XG4gIHRoaXMuZm5UZXN0ID0gZm5UZXN0O1xuICB0aGlzLnN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5sYXN0RXJyb3IgPSB1bmRlZmluZWQ7XG4gIHRoaXMuc3RlcHMgPSBbXTtcbiAgdGhpcy5mYWlsZWQgPSBmYWxzZTtcblxuICAvLyBDdXJyZW50IHVzZXIgYW5kIHBhdGggKGZvciByZWFkL3dyaXRlKS5cbiAgdGhpcy5wYXRoID0gdW5kZWZpbmVkO1xuICB0aGlzLmF1dGggPSB1bmRlZmluZWQ7XG59XG5cbnV0aWwubWV0aG9kcyhSdWxlc1Rlc3QsIHtcbiAgcnVuOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmRlYnVnKGZhbHNlKTtcbiAgICB0aGlzLmFzKCdhZG1pbicpO1xuICAgIHRoaXMuYXQoJy8nKTtcbiAgICB0aGlzLndyaXRlKG51bGwpO1xuICAgIHRoaXMuc3VjY2VlZHMoXCJpbml0aWFsaXphdGlvblwiKTtcblxuICAgIHRoaXMuYXQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmFzKCdhbm9uJyk7XG5cbiAgICB0aGlzLmZuVGVzdCh0aGlzKTtcblxuICAgIHRoaXMuZGVidWcoZmFsc2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVF1ZXVlKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2coXCJGaW5pc2hlZFwiKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9nKFwiRmFpbGVkOiBcIiArIGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfSxcblxuICAvLyBRdWV1ZSBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBpbiBzZXF1ZW5jZSBhZnRlciBwcmV2aW91cyBzdGVwXG4gIC8vIGluIHRlc3QgaXMgKHN1Y2Nlc3NmdWxseSkgY29tcGxldGVkLlxuICBxdWV1ZTogZnVuY3Rpb24ob3AsIGFyZ3MsIGZuKSB7XG4gICAgaWYgKHRoaXMuZmFpbGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGFyZ3MgPSB1dGlsLmNvcHlBcnJheShhcmdzKS5tYXAoZnVuY3Rpb24oeCkge1xuICAgICAgcmV0dXJuIHV0aWwucHJldHR5SlNPTih4KTtcbiAgICB9KTtcbiAgICB2YXIgbGFiZWwgPSBvcCArICcoJyArIGFyZ3Muam9pbignLCAnKSArICcpJztcbiAgICB0aGlzLnN0ZXBzLnB1c2goe2xhYmVsOiBsYWJlbCwgZm46IGZufSk7XG4gIH0sXG5cbiAgZXhlY3V0ZVF1ZXVlOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB0aGlzLmxvZyhcIkV4ZWN1dGluZyAoXCIgKyB0aGlzLnN0ZXBzLmxlbmd0aCArIFwiIHN0ZXBzKVwiKTtcbiAgICB2YXIgcCA9IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblxuICAgIGZ1bmN0aW9uIG5leHQocHJldiwgc3RlcCkge1xuICAgICAgcmV0dXJuIHByZXYudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5sb2coc3RlcC5sYWJlbCk7XG4gICAgICAgIHJldHVybiBzdGVwLmZuKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHAgPSBuZXh0KHAsIHRoaXMuc3RlcHNbaV0pO1xuICAgIH1cblxuICAgIHJldHVybiBwO1xuICB9LFxuXG4gIGRlYnVnOiBmdW5jdGlvbihkZWJ1Zykge1xuICAgIHRoaXMuc3VpdGUuc2V0RGVidWcoZGVidWcpO1xuICAgIHRoaXMucXVldWUoJ2RlYnVnJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICB0aGlzLnN1aXRlLnNldERlYnVnKGRlYnVnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBhczogZnVuY3Rpb24odXNlcm5hbWUpIHtcbiAgICB2YXIgY2xpZW50ID0gdGhpcy5zdWl0ZS5lbnN1cmVVc2VyKHVzZXJuYW1lKTtcbiAgICB0aGlzLnF1ZXVlKCdhcycsIGFyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgYXQ6IGZ1bmN0aW9uKG9wUGF0aCkge1xuICAgIHRoaXMucXVldWUoJ2F0JywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICB0aGlzLnBhdGggPSBvcFBhdGg7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgd3JpdGU6IGZ1bmN0aW9uKG9iaikge1xuICAgIHRoaXMucXVldWUoJ3dyaXRlJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jbGllbnQucHV0KHRoaXMucGF0aCwgb2JqKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBwdXNoOiBmdW5jdGlvbihvYmopIHtcbiAgICB0aGlzLnF1ZXVlKCd3cml0ZScsIGFyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnBhdGg7XG4gICAgICBpZiAocGF0aC5zbGljZSgtMSlbMF0gIT09ICcvJykge1xuICAgICAgICBwYXRoICs9ICcvJztcbiAgICAgIH1cbiAgICAgIHBhdGggKz0gcmVzdC5nZW5lcmF0ZVB1c2hJRCgpO1xuICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LnB1dChwYXRoLCBvYmopXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXR1cyA9IHRydWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXR1cyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIHJlYWQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMucXVldWUoJ3JlYWQnLCBhcmd1bWVudHMsICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXQodGhpcy5wYXRoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBzdWNjZWVkczogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgIHRoaXMucXVldWUoJ3N1Y2NlZWRzJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICBhc3NlcnQodGhpcy5zdGF0dXMgPT09IHRydWUsXG4gICAgICAgICAgICAgdGhpcy5tZXNzYWdlRm9ybWF0KG1lc3NhZ2UgKyBcIiAoc2hvdWxkIGhhdmUgc3VjY2VlZClcXG5cIiArIHRoaXMubGFzdEVycm9yKSk7XG4gICAgICB0aGlzLmdvb2QobWVzc2FnZSk7XG4gICAgICB0aGlzLnN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBmYWlsczogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgIHRoaXMucXVldWUoJ2ZhaWxzJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICBhc3NlcnQodGhpcy5zdGF0dXMgPT09IGZhbHNlLFxuICAgICAgICAgICAgIHRoaXMubWVzc2FnZUZvcm1hdChtZXNzYWdlICsgXCIgKHNob3VsZCBoYXZlIGZhaWxlZClcIikpO1xuICAgICAgdGhpcy5nb29kKG1lc3NhZ2UpO1xuICAgICAgdGhpcy5zdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgZ29vZDogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgIHRoaXMubG9nKG1lc3NhZ2UgKyBcIiAoQ29ycmVjdClcIik7XG4gIH0sXG5cbiAgbG9nOiBmdW5jdGlvbihtZXNzYWdlKSB7XG4gICAgaWYgKHRoaXMuc3VpdGUuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMubWVzc2FnZUZvcm1hdChtZXNzYWdlKSk7XG4gICAgfVxuICB9LFxuXG4gIG1lc3NhZ2VGb3JtYXQ6IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zdWl0ZS5zdWl0ZU5hbWUgKyBcIi5cIiArIHRoaXMudGVzdE5hbWUgKyBcIiBcIiArIG1lc3NhZ2U7XG4gIH1cbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNpbXVsYXRvci50cyJdLCJuYW1lcyI6WyJydWxlc1N1aXRlIiwiUnVsZXNTdWl0ZSIsIm5leHQiLCJSdWxlc1Rlc3QiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsMENBQTBDO0FBQzFDLDBDQUEwQztBQUMxQywyQ0FBMkM7QUFDM0MsaURBQWlEO0FBRWpELElBQU8sT0FBTyxXQUFXLFNBQVMsQ0FBQyxDQUFDO0FBQ3BDLElBQU8sSUFBSSxXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQzlCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDekIsSUFBTyxJQUFJLFdBQVcsaUJBQWlCLENBQUMsQ0FBQztBQUN6QyxJQUFPLElBQUksV0FBVyxRQUFRLENBQUMsQ0FBQztBQUNoQyxJQUFPLE1BQU0sV0FBVyxXQUFXLENBQUMsQ0FBQztBQUtyQyxJQUFJLElBQUksR0FBRyxDQUFDLE9BQU8sTUFBTSxLQUFLLFdBQVcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBRS9FLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQztBQUV4QixvQkFBMkIsU0FBUyxFQUFFLE9BQU87SUFDM0NBLElBQUlBLFVBQVVBLENBQUNBLFNBQVNBLEVBQUVBLE9BQU9BLENBQUNBLENBQUNBLEdBQUdBLEVBQUVBLENBQUNBO0FBQzNDQSxDQUFDQTtBQUZlLGtCQUFVLGFBRXpCLENBQUE7QUFFRCxvQkFBb0IsU0FBUyxFQUFFLE9BQU87SUFDcENDLElBQUlBLENBQUNBLFNBQVNBLEdBQUdBLFNBQVNBLENBQUNBO0lBQzNCQSxJQUFJQSxDQUFDQSxPQUFPQSxHQUFHQSxPQUFPQSxDQUFDQTtJQUN2QkEsSUFBSUEsQ0FBQ0EsS0FBS0EsR0FBR0EsRUFBRUEsQ0FBQ0E7SUFDaEJBLElBQUlBLENBQUNBLEtBQUtBLEdBQUdBLEVBQUVBLENBQUNBO0lBQ2hCQSxJQUFJQSxDQUFDQSxLQUFLQSxH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QUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUM7SUFDcEUsQ0FBQztDQUNGLENBQUMsQ0FBQyIsImZpbGUiOiJzaW11bGF0b3IuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogRmlyZWJhc2UgUnVsZXMgdGVzdCBzaW11bGF0b3IuXG4gKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCJ0eXBpbmdzL25vZGUuZC50c1wiIC8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9jaGFpLmQudHNcIiAvPlxuLy8vIDxyZWZlcmVuY2UgcGF0aD1cInR5cGluZ3MvbW9jaGEuZC50c1wiIC8+XG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwidHlwaW5ncy9lczYtcHJvbWlzZS5kLnRzXCIgLz5cblxuaW1wb3J0IFByb21pc2UgPSByZXF1aXJlKCdwcm9taXNlJyk7XG5pbXBvcnQgY2hhaSA9IHJlcXVpcmUoJ2NoYWknKTtcbnZhciBhc3NlcnQgPSBjaGFpLmFzc2VydDtcbmltcG9ydCByZXN0ID0gcmVxdWlyZSgnLi9maXJlYmFzZS1yZXN0Jyk7XG5pbXBvcnQgdXRpbCA9IHJlcXVpcmUoJy4vdXRpbCcpO1xuaW1wb3J0IGZpbGVJTyA9IHJlcXVpcmUoJy4vZmlsZS1pbycpO1xuXG4vLyBCcm93c2VyaWZ5IGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL3N1YnN0YWNrL25vZGUtYnJvd3NlcmlmeS9pc3N1ZXMvMTE1MFxuaW50ZXJmYWNlIFdpbmRvdyB7IGJvbHQ6IGFueTsgfVxuZGVjbGFyZSB2YXIgd2luZG93OiBXaW5kb3c7XG52YXIgYm9sdCA9ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cuYm9sdCkgfHwgcmVxdWlyZSgnLi9ib2x0Jyk7XG5cbnZhciBNQVhfVEVTVF9NUyA9IDYwMDAwO1xuXG5leHBvcnQgZnVuY3Rpb24gcnVsZXNTdWl0ZShzdWl0ZU5hbWUsIGZuU3VpdGUpIHtcbiAgbmV3IFJ1bGVzU3VpdGUoc3VpdGVOYW1lLCBmblN1aXRlKS5ydW4oKTtcbn1cblxuZnVuY3Rpb24gUnVsZXNTdWl0ZShzdWl0ZU5hbWUsIGZuU3VpdGUpIHtcbiAgdGhpcy5zdWl0ZU5hbWUgPSBzdWl0ZU5hbWU7XG4gIHRoaXMuZm5TdWl0ZSA9IGZuU3VpdGU7XG4gIHRoaXMudXNlcnMgPSB7fTtcbiAgdGhpcy50ZXN0cyA9IFtdO1xuICB0aGlzLmRlYnVnID0gZmFsc2U7XG59XG5cbnV0aWwubWV0aG9kcyhSdWxlc1N1aXRlLCB7XG4gIHNldERlYnVnOiBmdW5jdGlvbihkZWJ1Zykge1xuICAgIGlmIChkZWJ1ZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWJ1ZyA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBydW46IGZ1bmN0aW9uKCkge1xuICAgIHZhciBzZWxmID0gdGhpcztcblxuICAgIC8vIFJ1biBNb2NoYSBUZXN0IFN1aXRlIC0gc2VyaWFsaXplIHdpdGggYW55IG90aGVyIG1vY2hhIHRlc3Qgc3VpdGVzLlxuICAgIHN1aXRlKFwiRmlyZWJhc2UgUnVsZXMgU2ltdWxhdG9yOiBcIiArIHNlbGYuc3VpdGVOYW1lLCBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMudGltZW91dChNQVhfVEVTVF9NUyk7XG4gICAgICBzdWl0ZVNldHVwKGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcnVsZXNQYXRoID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSkge1xuICAgICAgICAgIHNlbGYucnVsZXNQYXRoUmVzb2x2ZSA9IHJlc29sdmU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhciBkYXRhYmFzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUpIHtcbiAgICAgICAgICBzZWxmLmRhdGFiYXNlUmVhZHkgPSByZXNvbHZlO1xuICAgICAgICB9KTtcblxuICAgICAgICB2YXIgcnVsZXNKU09OID0gYm9sdC5nZW5lcmF0ZSh1dGlsLmdldFByb3AoZmlsZUlPLnJlYWRGaWxlKHJ1bGVzUGF0aCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCcpKTtcblxuICAgICAgICBzZWxmLnJlYWR5ID0gUHJvbWlzZS5hbGwoW3J1bGVzSlNPTiwgZGF0YWJhc2VdKVxuICAgICAgICAgIC50aGVuKHNlbGYub25SdWxlc1JlYWR5LmJpbmQoc2VsZikpO1xuXG4gICAgICAgIC8vIEV4ZWN1dGUgaW5pdGlhbGl6YXRpb24gYW5kIGdldCB0ZXN0IGRlZmluaXRpb25zIChpbiBjbGllbnQgY29kZSkuXG4gICAgICAgIHNlbGYuZm5TdWl0ZShzZWxmLmdldEludGVyZmFjZSgpKTtcblxuICAgICAgICByZXR1cm4gc2VsZi5yZWFkeTtcbiAgICAgIH0pO1xuXG4gICAgICB0ZXN0KFwiSW5pdGlhbGl6YXRpb24uXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAvLyBwYXNzXG4gICAgICB9KTtcblxuICAgICAgdGVzdChcIlJ1bGVzIHRlc3QuXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gc2VsZi5ydW5UZXN0cygpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0sXG5cbiAgLy8gSW50ZXJmYWNlIGZvciB0ZXN0IGZ1bmN0aW9uczpcbiAgLy8gICB0ZXN0LnJ1bGVzKHJ1bGVzUGF0aClcbiAgLy8gICB0ZXN0LmRhdGFiYXNlKGFwcE5hbWUsIGFwcFNlY3JldClcbiAgLy8gICB0ZXN0LnVpZCh1c2VybmFtZSlcbiAgLy8gICB0ZXN0KHRlc3ROYW1lLCB0ZXN0RnVuY3Rpb24pXG4gIC8vICAgdGVzdC5USU1FU1RBTVBcbiAgZ2V0SW50ZXJmYWNlOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgdGVzdCA9IHRoaXMudGVzdC5iaW5kKHRoaXMpO1xuICAgIHRlc3QucnVsZXMgPSB0aGlzLnJ1bGVzLmJpbmQodGhpcyk7XG4gICAgdGVzdC5kYXRhYmFzZSA9IHRoaXMuZGF0YWJhc2UuYmluZCh0aGlzKTtcbiAgICB0ZXN0LnVpZCA9IHRoaXMudWlkLmJpbmQodGhpcyk7XG4gICAgdGVzdC5USU1FU1RBTVAgPSByZXN0LlRJTUVTVEFNUDtcbiAgICByZXR1cm4gdGVzdDtcbiAgfSxcblxuICAvLyBDYWxsZWQgd2hlbiBydWxlcyBhcmUgZ2VuZXJhdGVkIGFuZCB0ZXN0IGRhdGFiYXNlIGlzIGtub3duLlxuICAvLyBBcmc6IFtydWxlc0pTT04sIHRydWVdXG4gIG9uUnVsZXNSZWFkeTogZnVuY3Rpb24ocHJlcmVxKSB7XG4gICAgdGhpcy5ydWxlcyA9IHByZXJlcVswXTtcbiAgICByZXR1cm4gdGhpcy5hZG1pbkNsaWVudC5wdXQocmVzdC5SVUxFU19MT0NBVElPTiwgdGhpcy5ydWxlcyk7XG4gIH0sXG5cbiAgcnVuVGVzdHM6IGZ1bmN0aW9uKCkge1xuICAgIHZhciBwID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXG4gICAgZnVuY3Rpb24gbmV4dChwcmV2LCB0ZXN0KSB7XG4gICAgICByZXR1cm4gcHJldi50aGVuKGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGVzdC5ydW4oKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy50ZXN0cy5sZW5ndGg7IGkrKykge1xuICAgICAgcCA9IG5leHQocCwgdGhpcy50ZXN0c1tpXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHA7XG4gIH0sXG5cbiAgdGVzdDogZnVuY3Rpb24odGVzdE5hbWUsIGZuVGVzdCkge1xuICAgIHRoaXMudGVzdHMucHVzaChuZXcgUnVsZXNUZXN0KHRlc3ROYW1lLCB0aGlzLCBmblRlc3QpKTtcbiAgfSxcblxuICBydWxlczogZnVuY3Rpb24ocnVsZXNQYXRoKSB7XG4gICAgaWYgKHRoaXMucnVsZXNQYXRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IGV4cGVjdCBhIHNpbmdsZSBjYWxsIHRvIHRoZSB0ZXN0LnJ1bGVzIGZ1bmN0aW9uLlwiKTtcbiAgICB9XG4gICAgdGhpcy5ydWxlc1BhdGggPSBydWxlc1BhdGg7XG4gICAgdGhpcy5ydWxlc1BhdGhSZXNvbHZlKHV0aWwuZW5zdXJlRXh0ZW5zaW9uKHJ1bGVzUGF0aCwgYm9sdC5GSUxFX0VYVEVOU0lPTikpO1xuICB9LFxuXG4gIGRhdGFiYXNlOiBmdW5jdGlvbihhcHBOYW1lLCBhcHBTZWNyZXQpIHtcbiAgICBpZiAodGhpcy5hZG1pbkNsaWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiT25seSBleHBlY3QgYSBzaW5nbGUgY2FsbCB0byB0aGUgdGVzdC5kYXRhYmFzZSBmdW5jdGlvbi5cIik7XG4gICAgfVxuICAgIHRoaXMuYXBwTmFtZSA9IGFwcE5hbWU7XG4gICAgdGhpcy5hcHBTZWNyZXQgPSBhcHBTZWNyZXQ7XG4gICAgdGhpcy5hZG1pbkNsaWVudCA9IHRoaXMuZW5zdXJlVXNlcignYWRtaW4nKTtcbiAgICB0aGlzLmRhdGFiYXNlUmVhZHkoKTtcbiAgfSxcblxuICB1aWQ6IGZ1bmN0aW9uKHVzZXJuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5zdXJlVXNlcih1c2VybmFtZSkudWlkO1xuICB9LFxuXG4gIGVuc3VyZVVzZXI6IGZ1bmN0aW9uKHVzZXJuYW1lKSB7XG4gICAgaWYgKCEodXNlcm5hbWUgaW4gdGhpcy51c2VycykpIHtcbiAgICAgIGlmICh1c2VybmFtZSA9PT0gJ2Fub24nKSB7XG4gICAgICAgIHRoaXMudXNlcnNbdXNlcm5hbWVdID0gbmV3IHJlc3QuQ2xpZW50KHRoaXMuYXBwTmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgdG9rZW5JbmZvO1xuICAgICAgICB0b2tlbkluZm8gPSByZXN0LmdlbmVyYXRlVWlkQXV0aFRva2VuKHRoaXMuYXBwU2VjcmV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZGVidWc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZG1pbjogdXNlcm5hbWUgPT09ICdhZG1pbicgfSk7XG4gICAgICAgIHRoaXMudXNlcnNbdXNlcm5hbWVdID0gbmV3IHJlc3QuQ2xpZW50KHRoaXMuYXBwTmFtZSwgdG9rZW5JbmZvLnRva2VuLCB0b2tlbkluZm8udWlkKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy51c2Vyc1t1c2VybmFtZV07XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBSdWxlc1Rlc3QodGVzdE5hbWUsIHN1aXRlLCBmblRlc3QpIHtcbiAgdGhpcy50ZXN0TmFtZSA9IHRlc3ROYW1lO1xuICB0aGlzLnN1aXRlID0gc3VpdGU7XG4gIHRoaXMuZm5UZXN0ID0gZm5UZXN0O1xuICB0aGlzLnN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgdGhpcy5sYXN0RXJyb3IgPSB1bmRlZmluZWQ7XG4gIHRoaXMuc3RlcHMgPSBbXTtcbiAgdGhpcy5mYWlsZWQgPSBmYWxzZTtcblxuICAvLyBDdXJyZW50IHVzZXIgYW5kIHBhdGggKGZvciByZWFkL3dyaXRlKS5cbiAgdGhpcy5wYXRoID0gdW5kZWZpbmVkO1xuICB0aGlzLmF1dGggPSB1bmRlZmluZWQ7XG59XG5cbnV0aWwubWV0aG9kcyhSdWxlc1Rlc3QsIHtcbiAgcnVuOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmRlYnVnKGZhbHNlKTtcbiAgICB0aGlzLmFzKCdhZG1pbicpO1xuICAgIHRoaXMuYXQoJy8nKTtcbiAgICB0aGlzLndyaXRlKG51bGwpO1xuICAgIHRoaXMuc3VjY2VlZHMoXCJpbml0aWFsaXphdGlvblwiKTtcblxuICAgIHRoaXMuYXQodW5kZWZpbmVkKTtcbiAgICB0aGlzLmFzKCdhbm9uJyk7XG5cbiAgICB0aGlzLmZuVGVzdCh0aGlzKTtcblxuICAgIHRoaXMuZGVidWcoZmFsc2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVF1ZXVlKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2coXCJGaW5pc2hlZFwiKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9nKFwiRmFpbGVkOiBcIiArIGVycm9yKTtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfSxcblxuICAvLyBRdWV1ZSBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBpbiBzZXF1ZW5jZSBhZnRlciBwcmV2aW91cyBzdGVwXG4gIC8vIGluIHRlc3QgaXMgKHN1Y2Nlc3NmdWxseSkgY29tcGxldGVkLlxuICBxdWV1ZTogZnVuY3Rpb24ob3AsIGFyZ3MsIGZuKSB7XG4gICAgaWYgKHRoaXMuZmFpbGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGFyZ3MgPSB1dGlsLmNvcHlBcnJheShhcmdzKS5tYXAoZnVuY3Rpb24oeCkge1xuICAgICAgcmV0dXJuIHV0aWwucHJldHR5SlNPTih4KTtcbiAgICB9KTtcbiAgICB2YXIgbGFiZWwgPSBvcCArICcoJyArIGFyZ3Muam9pbignLCAnKSArICcpJztcbiAgICB0aGlzLnN0ZXBzLnB1c2goe2xhYmVsOiBsYWJlbCwgZm46IGZufSk7XG4gIH0sXG5cbiAgZXhlY3V0ZVF1ZXVlOiBmdW5jdGlvbigpIHtcbiAgICB2YXIgc2VsZiA9IHRoaXM7XG5cbiAgICB0aGlzLmxvZyhcIkV4ZWN1dGluZyAoXCIgKyB0aGlzLnN0ZXBzLmxlbmd0aCArIFwiIHN0ZXBzKVwiKTtcbiAgICB2YXIgcCA9IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblxuICAgIGZ1bmN0aW9uIG5leHQocHJldiwgc3RlcCkge1xuICAgICAgcmV0dXJuIHByZXYudGhlbihmdW5jdGlvbigpIHtcbiAgICAgICAgc2VsZi5sb2coc3RlcC5sYWJlbCk7XG4gICAgICAgIHJldHVybiBzdGVwLmZuKCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuc3RlcHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHAgPSBuZXh0KHAsIHRoaXMuc3RlcHNbaV0pO1xuICAgIH1cblxuICAgIHJldHVybiBwO1xuICB9LFxuXG4gIGRlYnVnOiBmdW5jdGlvbihkZWJ1Zykge1xuICAgIHRoaXMuc3VpdGUuc2V0RGVidWcoZGVidWcpO1xuICAgIHRoaXMucXVldWUoJ2RlYnVnJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICB0aGlzLnN1aXRlLnNldERlYnVnKGRlYnVnKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBhczogZnVuY3Rpb24odXNlcm5hbWUpIHtcbiAgICB2YXIgY2xpZW50ID0gdGhpcy5zdWl0ZS5lbnN1cmVVc2VyKHVzZXJuYW1lKTtcbiAgICB0aGlzLnF1ZXVlKCdhcycsIGFyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgYXQ6IGZ1bmN0aW9uKG9wUGF0aCkge1xuICAgIHRoaXMucXVldWUoJ2F0JywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICB0aGlzLnBhdGggPSBvcFBhdGg7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgd3JpdGU6IGZ1bmN0aW9uKG9iaikge1xuICAgIHRoaXMucXVldWUoJ3dyaXRlJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jbGllbnQucHV0KHRoaXMucGF0aCwgb2JqKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBwdXNoOiBmdW5jdGlvbihvYmopIHtcbiAgICB0aGlzLnF1ZXVlKCd3cml0ZScsIGFyZ3VtZW50cywgKCkgPT4ge1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnBhdGg7XG4gICAgICBpZiAocGF0aC5zbGljZSgtMSlbMF0gIT09ICcvJykge1xuICAgICAgICBwYXRoICs9ICcvJztcbiAgICAgIH1cbiAgICAgIHBhdGggKz0gcmVzdC5nZW5lcmF0ZVB1c2hJRCgpO1xuICAgICAgcmV0dXJuIHRoaXMuY2xpZW50LnB1dChwYXRoLCBvYmopXG4gICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXR1cyA9IHRydWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLnN0YXR1cyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gZXJyb3I7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzO1xuICB9LFxuXG4gIHJlYWQ6IGZ1bmN0aW9uKCkge1xuICAgIHRoaXMucXVldWUoJ3JlYWQnLCBhcmd1bWVudHMsICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNsaWVudC5nZXQodGhpcy5wYXRoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSB0cnVlO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdGF0dXMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBzdWNjZWVkczogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgIHRoaXMucXVldWUoJ3N1Y2NlZWRzJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICBhc3NlcnQodGhpcy5zdGF0dXMgPT09IHRydWUsXG4gICAgICAgICAgICAgdGhpcy5tZXNzYWdlRm9ybWF0KG1lc3NhZ2UgKyBcIiAoc2hvdWxkIGhhdmUgc3VjY2VlZClcXG5cIiArIHRoaXMubGFzdEVycm9yKSk7XG4gICAgICB0aGlzLmdvb2QobWVzc2FnZSk7XG4gICAgICB0aGlzLnN0YXR1cyA9IHVuZGVmaW5lZDtcbiAgICB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfSxcblxuICBmYWlsczogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgIHRoaXMucXVldWUoJ2ZhaWxzJywgYXJndW1lbnRzLCAoKSA9PiB7XG4gICAgICBhc3NlcnQodGhpcy5zdGF0dXMgPT09IGZhbHNlLFxuICAgICAgICAgICAgIHRoaXMubWVzc2FnZUZvcm1hdChtZXNzYWdlICsgXCIgKHNob3VsZCBoYXZlIGZhaWxlZClcIikpO1xuICAgICAgdGhpcy5nb29kKG1lc3NhZ2UpO1xuICAgICAgdGhpcy5zdGF0dXMgPSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0sXG5cbiAgZ29vZDogZnVuY3Rpb24obWVzc2FnZSkge1xuICAgIHRoaXMubG9nKG1lc3NhZ2UgKyBcIiAoQ29ycmVjdClcIik7XG4gIH0sXG5cbiAgbG9nOiBmdW5jdGlvbihtZXNzYWdlKSB7XG4gICAgaWYgKHRoaXMuc3VpdGUuZGVidWcpIHtcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMubWVzc2FnZUZvcm1hdChtZXNzYWdlKSk7XG4gICAgfVxuICB9LFxuXG4gIG1lc3NhZ2VGb3JtYXQ6IGZ1bmN0aW9uKG1lc3NhZ2UpIHtcbiAgICByZXR1cm4gdGhpcy5zdWl0ZS5zdWl0ZU5hbWUgKyBcIi5cIiArIHRoaXMudGVzdE5hbWUgKyBcIiBcIiArIG1lc3NhZ2U7XG4gIH1cbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9

@@ -140,2 +140,5 @@ /*

["'\\u000d'", "'\\r'"],
["/pattern/"],
["/pattern/i"],
["/pat\\/tern/i"],
["a"],

@@ -209,2 +212,2 @@ ["a.b"],

//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzdC10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsSUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUN6QixJQUFPLE1BQU0sV0FBVyxlQUFlLENBQUMsQ0FBQztBQUV6QyxJQUFPLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztBQUMvQixJQUFJLElBQUksR0FBRyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNqRixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBRXZCLEtBQUssQ0FBQyw0QkFBNEIsRUFBRTtJQUNsQyxLQUFLLENBQUMscUNBQXFDLEVBQUU7UUFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDckIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNsQixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVmLElBQUksS0FBSyxHQUFHO1lBQ1YsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDWixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsRUFBRTtZQUN0QyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENB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QixDQUFFLE9BQU8sQ0FBRTtZQUNYLENBQUUsT0FBTyxDQUFFO1lBQ1gsQ0FBRSxRQUFRLENBQUU7WUFDWixDQUFFLFFBQVEsQ0FBRTtZQUNaLENBQUUsUUFBUSxDQUFFO1lBQ1osQ0FBRSxRQUFRLENBQUU7WUFDWixDQUFFLFNBQVMsRUFBRSxRQUFRLENBQUU7WUFDdkIsQ0FBRSxTQUFTLEVBQUUsUUFBUSxDQUFFO1lBQ3ZCLENBQUUsWUFBWSxDQUFFO1lBQ2hCLENBQUUsa0JBQWtCLENBQUU7WUFDdEIsQ0FBRSxrQkFBa0IsQ0FBRTtZQUN0QixDQUFFLGFBQWEsQ0FBRTtZQUNqQixDQUFFLGFBQWEsQ0FBRTtZQUNqQixDQUFFLGtCQUFrQixDQUFFO1lBQ3RCLENBQUUsV0FBVyxFQUFJO1lBQ2pCLENBQUUsZ0JBQWdCLENBQUU7U0FDckIsQ0FBQztRQUVGLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVMsSUFBSSxFQUFFLE1BQU07WUFDaEQsNEJBQTRCO1lBQzVCLE1BQU0sR0FBRyxNQUFNLElBQUksSUFBSSxDQUFDO1lBQ3hCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDMUQsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoiYXN0LXRlc3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCBjaGFpID0gcmVxdWlyZSgnY2hhaScpO1xudmFyIGFzc2VydCA9IGNoYWkuYXNzZXJ0O1xuaW1wb3J0IGhlbHBlciA9IHJlcXVpcmUoJy4vdGVzdC1oZWxwZXInKTtcblxuaW1wb3J0IGFzdCA9IHJlcXVpcmUoJy4uL2FzdCcpO1xudmFyIGJvbHQgPSAodHlwZW9mKHdpbmRvdykgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy5ib2x0KSB8fCByZXF1aXJlKCcuLi9ib2x0Jyk7XG52YXIgcGFyc2UgPSBib2x0LnBhcnNlO1xuXG5zdWl0ZShcIkFic3RyYWN0IFN5bnRheCBUcmVlIChBU1QpXCIsIGZ1bmN0aW9uKCkge1xuICBzdWl0ZShcIkxlZnQgQXNzb2NpYXRpdmUgT3BlcmF0b3JzIChBTkQgT1IpXCIsIGZ1bmN0aW9uKCkge1xuICAgIHZhciB0ID0gYXN0LmJvb2xlYW4odHJ1ZSk7XG4gICAgdmFyIGYgPSBhc3QuYm9vbGVhbihmYWxzZSk7XG4gICAgdmFyIHYgPSBhc3QudmFyaWFibGU7XG4gICAgdmFyIGFuZCA9IGFzdC5hbmQ7XG4gICAgdmFyIG9yID0gYXN0Lm9yO1xuICAgIHZhciBhID0gdignYScpO1xuICAgIHZhciBiID0gdignYicpO1xuICAgIHZhciBjID0gdignYycpO1xuICAgIHZhciBkID0gdignZCcpO1xuXG4gICAgdmFyIHRlc3RzID0gW1xuICAgICAgeyBkYXRhOiBbXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiB0LCBvcjogZn0gfSxcbiAgICAgIHsgZGF0YTogW3RdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IHQsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IGZ9IH0sXG4gICAgICB7IGRhdGE6IFtmLCB0XSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW3QsIGZdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbdCwgZiwgdF0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFtmLCB0LCBmXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2FdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGEsIG9yOiBhfSB9LFxuICAgICAgeyBkYXRhOiBbYSwgdF0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogYSwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFthLCBmXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogYX0gfSxcbiAgICAgIHsgZGF0YTogW3QsIGFdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGEsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbZiwgYV0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IGF9IH0sXG4gICAgICB7IGRhdGE6IFt0LCBhLCBmXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2YsIGEsIHRdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbYSwgZiwgYV0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IGFzdC5vcihhLCBhKX0gfSxcbiAgICAgIHsgZGF0YTogW2EsIHQsIGFdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGFuZChhLCBhKSwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFthbmQoYSwgYiksIGFuZChjLCBkKV0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogYW5kKGFuZChhbmQoYSwgYiksIGMpLCBkKSxcbiAgICAgICAgICAgICAgICAgb3I6IG9yKGFuZChhLCBiKSwgYW5kKGMsIGQpKX0gfSxcbiAgICAgIHsgZGF0YTogW29yKGEsIGIpLCBvcihjLCBkKV0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogYW5kKG9yKGEsIGIpLCBvcihjLCBkKSksXG4gICAgICAgICAgICAgICAgIG9yOiBvcihvcihvcihhLCBiKSwgYyksIGQpfSB9LFxuICAgIF07XG5cbiAgICBoZWxwZXIuZGF0YURyaXZlblRlc3QodGVzdHMsIGZ1bmN0aW9uKGRhdGEsIGV4cGVjdCkge1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChhc3QuYW5kQXJyYXkoZGF0YSksIGV4cGVjdC5hbmQsICdBTkQnKTtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwoYXN0Lm9yQXJyYXkoZGF0YSksIGV4cGVjdC5vciwgJ09SJyk7XG4gICAgfSwgaGVscGVyLmV4cEZvcm1hdCk7XG4gIH0pO1xuXG4gIHN1aXRlKFwiRmxhdHRlblwiLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgdiA9IGFzdC52YXJpYWJsZTtcbiAgICB2YXIgYW5kID0gYXN0LmFuZDtcbiAgICB2YXIgYSA9IHYoJ2EnKTtcbiAgICB2YXIgYiA9IHYoJ2InKTtcbiAgICB2YXIgYyA9IHYoJ2MnKTtcbiAgICB2YXIgZCA9IHYoJ2QnKTtcblxuICAgIHZhciB0ZXN0cyA9IFtcbiAgICAgIHsgZGF0YTogYSxcbiAgICAgICAgZXhwZWN0OiBbYV0gfSxcbiAgICAgIHsgZGF0YTogYW5kKGEsIGIpLFxuICAgICAgICBleHBlY3Q6IFthLCBiXSB9LFxuICAgICAgeyBkYXRhOiBhbmQoYSwgYiksXG4gICAgICAgIGV4cGVjdDogW2EsIGJdIH0sXG4gICAgICB7IGRhdGE6IGFuZChhbmQoYSwgYiksIGMpLFxuICAgICAgICBleHBlY3Q6IFthLCBiLCBjXSB9LFxuICAgICAgeyBkYXRhOiBhbmQoYSwgYW5kKGIsIGMpKSxcbiAgICAgICAgZXhwZWN0OiBbYSwgYiwgY10gfSxcbiAgICAgIHsgZGF0YTogYW5kKGFuZChhLCBiKSwgYW5kKGMsIGQpKSxcbiAgICAgICAgZXhwZWN0OiBbYSwgYiwgYywgZF0gfSxcbiAgICBdO1xuXG4gICAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICAgIHZhciByZXN1bHQgPSBhc3QuZmxhdHRlbignJiYnLCBkYXRhKTtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzdWx0LCBleHBlY3QpO1xuICAgIH0sIGhlbHBlci5leHBGb3JtYXQpO1xuICB9KTtcblxuICBzdWl0ZShcImlzSWRlbnRpZmllclN0cmluZ1wiLCBmdW5jdGlvbigpIHtcbiAgICBsZXQgdGVzdHMgPSBbXG4gICAgICBbYXN0LnN0cmluZygnaGknKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnSGknKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnYScpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdBJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ2hpVGhlcmUnKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnSDEyMycpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCckaWQnKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnYSRpZCcpLCBmYWxzZV0sXG4gICAgICBbYXN0LnN0cmluZygnYSBiJyksIGZhbHNlXSxcbiAgICAgIFthc3Quc3RyaW5nKCcwSDEyMycpLCBmYWxzZV0sXG4gICAgICBbYXN0LmJvb2xlYW4odHJ1ZSksIGZhbHNlXSxcbiAgICAgIFthc3QubnVtYmVyKDEyMyksIGZhbHNlXSxcbiAgICAgIFsnaGknLCBmYWxzZV0sXG4gICAgXTtcblxuICAgIGhlbHBlci5kYXRhRHJpdmVuVGVzdCh0ZXN0cywgZnVuY3Rpb24oZGF0YSwgZXhwZWN0KSB7XG4gICAgICB2YXIgcmVzdWx0ID0gYXN0LmlzSWRlbnRpZmllclN0cmluZ0V4cChkYXRhKTtcbiAgICAgIGFzc2VydC5lcXVhbChyZXN1bHQsIGV4cGVjdCk7XG4gICAgfSwgaGVscGVyLmV4cEZvcm1hdCk7XG4gIH0pO1xuXG4gIHN1aXRlKFwiRXhwcmVzc2lvbiBkZWNvZGluZy5cIiwgZnVuY3Rpb24oKSB7XG4gICAgdmFyIHRlc3RzID0gW1xuICAgICAgWyBcInRydWVcIiBdLFxuICAgICAgWyBcImZhbHNlXCIgXSxcbiAgICAgIFsgXCIxXCIgXSxcbiAgICAgIFsgXCIoMSlcIiwgJzEnIF0sXG4gICAgICBbIFwiMS4xXCIgXSxcbiAgICAgIFsgXCIrM1wiLCBcIjNcIl0sXG4gICAgICBbIFwiLTNcIiBdLFxuICAgICAgWyBcIjB4MlwiLCBcIjJcIiBdLFxuICAgICAgWyBcIlxcXCJzdHJpbmdcXFwiXCIsIFwiJ3N0cmluZydcIiBdLFxuICAgICAgWyBcIidzdHJpbmcnXCIgXSxcbiAgICAgIFsgXCInc3RcXFxcJ3JpbmcnXCJdLFxuICAgICAgWyBcIidzdFxcXFxyaW5nJ1wiIF0sXG4gICAgICBbIFwiJ1xcXFx1MDAwZCdcIiwgXCInXFxcXHInXCIgXSxcbiAgICAgIFsgXCJhXCIgXSxcbiAgICAgIFsgXCJhLmJcIiBdLFxuICAgICAgWyBcImEuYi5jXCIgXSxcblxuICAgICAgWyBcImFbJ2InXVwiLCAnYS5iJyBdLFxuICAgICAgWyBcImFbYl1cIiBdLFxuICAgICAgWyBcImFbYl1bY11cIiBdLFxuICAgICAgWyBcImEuYltjXVwiIF0sXG4gICAgICBbIFwiYVtiXS5jXCIgXSxcbiAgICAgIFsgXCIoYS5iKVtjXVwiLCBcImEuYltjXVwiIF0sXG4gICAgICBbIFwiKGEoYikpW2NdXCIsIFwiYShiKVtjXVwiIF0sXG5cbiAgICAgIFsgXCJhKClcIiBdLFxuICAgICAgWyBcImEoKSgpXCIgXSxcbiAgICAgIFsgXCJhLmIoKVwiIF0sXG4gICAgICBbIFwiYSgpLmJcIiBdLFxuICAgICAgWyBcImFbMF0oKVwiIF0sXG4gICAgICBbIFwiYSgpWzBdXCIgXSxcblxuICAgICAgWyBcIi1hXCIgXSxcbiAgICAgIFsgXCItLWFcIiBdLFxuICAgICAgWyBcIithXCIsIFwiYVwiXSxcbiAgICAgIFsgXCIrYSArYlwiLCBcImEgKyBiXCIgXSxcbiAgICAgIFsgXCItYSAtYlwiLCBcIi1hIC0gYlwiIF0sXG4gICAgICBbIFwiLWEgLS1iXCIsIFwiLWEgLSAtYlwiIF0sXG4gICAgICBbIFwiLWEgLS0tYlwiLCBcIi1hIC0gLS1iXCIgXSxcbiAgICAgIFsgXCIhYVwiIF0sXG4gICAgICBbIFwiISFhXCIgXSxcbiAgICAgIFsgXCIhK2FcIiwgJyFhJyBdLFxuICAgICAgWyBcIiEtYVwiIF0sXG4gICAgICBbIFwiLSFhXCIgXSxcbiAgICAgIFsgXCIyICogYVwiIF0sXG4gICAgICBbIFwiKDIgKiBhKVwiLCAnMiAqIGEnIF0sXG4gICAgICBbIFwiMiAvIGFcIiBdLFxuICAgICAgWyBcImEgJSAyXCIgXSxcbiAgICAgIFsgXCIxICsgMVwiIF0sXG4gICAgICBbIFwiYSAtIDFcIiBdLFxuICAgICAgWyBcImEgLSAtYlwiIF0sXG4gICAgICBbIFwiYSArIGIgKyBjXCIgXSxcbiAgICAgIFsgXCJhICsgKGIgKyBjKVwiIF0sXG4gICAgICBbIFwiKGEgKyBiKSArIGNcIiwgJ2EgKyBiICsgYycgXSxcbiAgICAgIFsgXCJhICsgYiAqIGNcIiBdLFxuICAgICAgWyBcIihhICsgYikgKiBjXCIgXSxcbiAgICAgIFsgXCJhIDwgN1wiIF0sXG4gICAgICBbIFwiYSA+IDdcIiBdLFxuICAgICAgWyBcImEgPD0gN1wiIF0sXG4gICAgICBbIFwiYSA+PSA3XCIgXSxcbiAgICAgIFsgXCJhID09IDNcIiBdLFxuICAgICAgWyBcImEgIT0gMFwiIF0sXG4gICAgICBbIFwiYSA9PT0gM1wiLCBcImEgPT0gM1wiIF0sXG4gICAgICBbIFwiYSAhPT0gMFwiLCBcImEgIT0gMFwiIF0sXG4gICAgICBbIFwiMyAqIGEgPT0gYlwiIF0sXG4gICAgICBbIFwiYSA9PSAxICYmIGIgPD0gMlwiIF0sXG4gICAgICBbIFwiYSA9PSAxIHx8IGIgPD0gMlwiIF0sXG4gICAgICBbIFwiYSAmJiBiICYmIGNcIiBdLFxuICAgICAgWyBcImEgfHwgYiB8fCBjXCIgXSxcbiAgICAgIFsgXCJhICYmIGIgfHwgYyAmJiBkXCIgXSxcbiAgICAgIFsgXCJhID8gYiA6IGNcIiwgIF0sXG4gICAgICBbIFwiYSB8fCBiID8gYyA6IGRcIiBdLFxuICAgIF07XG5cbiAgICBoZWxwZXIuZGF0YURyaXZlblRlc3QodGVzdHMsIGZ1bmN0aW9uKGRhdGEsIGV4cGVjdCkge1xuICAgICAgLy8gRGVjb2RlIHRvIHNlbGYgYnkgZGVmYXVsdFxuICAgICAgZXhwZWN0ID0gZXhwZWN0IHx8IGRhdGE7XG4gICAgICB2YXIgcmVzdWx0ID0gcGFyc2UoJ2Z1bmN0aW9uIGYoKSB7cmV0dXJuICcgKyBkYXRhICsgJzt9Jyk7XG4gICAgICB2YXIgZXhwID0gcmVzdWx0LmZ1bmN0aW9ucy5mLmJvZHk7XG4gICAgICB2YXIgZGVjb2RlID0gYm9sdC5kZWNvZGVFeHByZXNzaW9uKGV4cCk7XG4gICAgICBhc3NlcnQuZXF1YWwoZGVjb2RlLCBleHBlY3QpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzdC10ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsSUFBTyxJQUFJLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDOUIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUN6QixJQUFPLE1BQU0sV0FBVyxlQUFlLENBQUMsQ0FBQztBQUV6QyxJQUFPLEdBQUcsV0FBVyxRQUFRLENBQUMsQ0FBQztBQUMvQixJQUFJLElBQUksR0FBRyxDQUFDLE9BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNqRixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0FBRXZCLEtBQUssQ0FBQyw0QkFBNEIsRUFBRTtJQUNsQyxLQUFLLENBQUMscUNBQXFDLEVBQUU7UUFDM0MsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDckIsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNsQixJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVmLElBQUksS0FBSyxHQUFHO1lBQ1YsRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDVCxNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDWixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ1osTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDLEVBQUU7WUFDM0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDZixNQUFNLEVBQUUsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUMsRUFBRTtZQUMzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBQyxFQUFFO1lBQzNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2YsTUFBTSxFQUFFLEVBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsRUFBRTtZQUN0QyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNmLE1BQU0sRUFBRSxFQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENB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SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IGNoYWkgPSByZXF1aXJlKCdjaGFpJyk7XG52YXIgYXNzZXJ0ID0gY2hhaS5hc3NlcnQ7XG5pbXBvcnQgaGVscGVyID0gcmVxdWlyZSgnLi90ZXN0LWhlbHBlcicpO1xuXG5pbXBvcnQgYXN0ID0gcmVxdWlyZSgnLi4vYXN0Jyk7XG52YXIgYm9sdCA9ICh0eXBlb2Yod2luZG93KSAhPT0gJ3VuZGVmaW5lZCcgJiYgd2luZG93LmJvbHQpIHx8IHJlcXVpcmUoJy4uL2JvbHQnKTtcbnZhciBwYXJzZSA9IGJvbHQucGFyc2U7XG5cbnN1aXRlKFwiQWJzdHJhY3QgU3ludGF4IFRyZWUgKEFTVClcIiwgZnVuY3Rpb24oKSB7XG4gIHN1aXRlKFwiTGVmdCBBc3NvY2lhdGl2ZSBPcGVyYXRvcnMgKEFORCBPUilcIiwgZnVuY3Rpb24oKSB7XG4gICAgdmFyIHQgPSBhc3QuYm9vbGVhbih0cnVlKTtcbiAgICB2YXIgZiA9IGFzdC5ib29sZWFuKGZhbHNlKTtcbiAgICB2YXIgdiA9IGFzdC52YXJpYWJsZTtcbiAgICB2YXIgYW5kID0gYXN0LmFuZDtcbiAgICB2YXIgb3IgPSBhc3Qub3I7XG4gICAgdmFyIGEgPSB2KCdhJyk7XG4gICAgdmFyIGIgPSB2KCdiJyk7XG4gICAgdmFyIGMgPSB2KCdjJyk7XG4gICAgdmFyIGQgPSB2KCdkJyk7XG5cbiAgICB2YXIgdGVzdHMgPSBbXG4gICAgICB7IGRhdGE6IFtdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IHQsIG9yOiBmfSB9LFxuICAgICAgeyBkYXRhOiBbdF0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogdCwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFtmXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogZn0gfSxcbiAgICAgIHsgZGF0YTogW2YsIHRdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbdCwgZl0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFt0LCBmLCB0XSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2YsIHQsIGZdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbYV0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogYSwgb3I6IGF9IH0sXG4gICAgICB7IGRhdGE6IFthLCB0XSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2EsIGZdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiBhfSB9LFxuICAgICAgeyBkYXRhOiBbdCwgYV0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogYSwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFtmLCBhXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogYX0gfSxcbiAgICAgIHsgZGF0YTogW3QsIGEsIGZdLFxuICAgICAgICBleHBlY3Q6IHthbmQ6IGYsIG9yOiB0fSB9LFxuICAgICAgeyBkYXRhOiBbZiwgYSwgdF0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogZiwgb3I6IHR9IH0sXG4gICAgICB7IGRhdGE6IFthLCBmLCBhXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBmLCBvcjogYXN0Lm9yKGEsIGEpfSB9LFxuICAgICAgeyBkYXRhOiBbYSwgdCwgYV0sXG4gICAgICAgIGV4cGVjdDoge2FuZDogYW5kKGEsIGEpLCBvcjogdH0gfSxcbiAgICAgIHsgZGF0YTogW2FuZChhLCBiKSwgYW5kKGMsIGQpXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhbmQoYW5kKGFuZChhLCBiKSwgYyksIGQpLFxuICAgICAgICAgICAgICAgICBvcjogb3IoYW5kKGEsIGIpLCBhbmQoYywgZCkpfSB9LFxuICAgICAgeyBkYXRhOiBbb3IoYSwgYiksIG9yKGMsIGQpXSxcbiAgICAgICAgZXhwZWN0OiB7YW5kOiBhbmQob3IoYSwgYiksIG9yKGMsIGQpKSxcbiAgICAgICAgICAgICAgICAgb3I6IG9yKG9yKG9yKGEsIGIpLCBjKSwgZCl9IH0sXG4gICAgXTtcblxuICAgIGhlbHBlci5kYXRhRHJpdmVuVGVzdCh0ZXN0cywgZnVuY3Rpb24oZGF0YSwgZXhwZWN0KSB7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKGFzdC5hbmRBcnJheShkYXRhKSwgZXhwZWN0LmFuZCwgJ0FORCcpO1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChhc3Qub3JBcnJheShkYXRhKSwgZXhwZWN0Lm9yLCAnT1InKTtcbiAgICB9LCBoZWxwZXIuZXhwRm9ybWF0KTtcbiAgfSk7XG5cbiAgc3VpdGUoXCJGbGF0dGVuXCIsIGZ1bmN0aW9uKCkge1xuICAgIHZhciB2ID0gYXN0LnZhcmlhYmxlO1xuICAgIHZhciBhbmQgPSBhc3QuYW5kO1xuICAgIHZhciBhID0gdignYScpO1xuICAgIHZhciBiID0gdignYicpO1xuICAgIHZhciBjID0gdignYycpO1xuICAgIHZhciBkID0gdignZCcpO1xuXG4gICAgdmFyIHRlc3RzID0gW1xuICAgICAgeyBkYXRhOiBhLFxuICAgICAgICBleHBlY3Q6IFthXSB9LFxuICAgICAgeyBkYXRhOiBhbmQoYSwgYiksXG4gICAgICAgIGV4cGVjdDogW2EsIGJdIH0sXG4gICAgICB7IGRhdGE6IGFuZChhLCBiKSxcbiAgICAgICAgZXhwZWN0OiBbYSwgYl0gfSxcbiAgICAgIHsgZGF0YTogYW5kKGFuZChhLCBiKSwgYyksXG4gICAgICAgIGV4cGVjdDogW2EsIGIsIGNdIH0sXG4gICAgICB7IGRhdGE6IGFuZChhLCBhbmQoYiwgYykpLFxuICAgICAgICBleHBlY3Q6IFthLCBiLCBjXSB9LFxuICAgICAgeyBkYXRhOiBhbmQoYW5kKGEsIGIpLCBhbmQoYywgZCkpLFxuICAgICAgICBleHBlY3Q6IFthLCBiLCBjLCBkXSB9LFxuICAgIF07XG5cbiAgICBoZWxwZXIuZGF0YURyaXZlblRlc3QodGVzdHMsIGZ1bmN0aW9uKGRhdGEsIGV4cGVjdCkge1xuICAgICAgdmFyIHJlc3VsdCA9IGFzdC5mbGF0dGVuKCcmJicsIGRhdGEpO1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXN1bHQsIGV4cGVjdCk7XG4gICAgfSwgaGVscGVyLmV4cEZvcm1hdCk7XG4gIH0pO1xuXG4gIHN1aXRlKFwiaXNJZGVudGlmaWVyU3RyaW5nXCIsIGZ1bmN0aW9uKCkge1xuICAgIGxldCB0ZXN0cyA9IFtcbiAgICAgIFthc3Quc3RyaW5nKCdoaScpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdIaScpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdhJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJ0EnKSwgdHJ1ZV0sXG4gICAgICBbYXN0LnN0cmluZygnaGlUaGVyZScpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdIMTIzJyksIHRydWVdLFxuICAgICAgW2FzdC5zdHJpbmcoJyRpZCcpLCB0cnVlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdhJGlkJyksIGZhbHNlXSxcbiAgICAgIFthc3Quc3RyaW5nKCdhIGInKSwgZmFsc2VdLFxuICAgICAgW2FzdC5zdHJpbmcoJzBIMTIzJyksIGZhbHNlXSxcbiAgICAgIFthc3QuYm9vbGVhbih0cnVlKSwgZmFsc2VdLFxuICAgICAgW2FzdC5udW1iZXIoMTIzKSwgZmFsc2VdLFxuICAgICAgWydoaScsIGZhbHNlXSxcbiAgICBdO1xuXG4gICAgaGVscGVyLmRhdGFEcml2ZW5UZXN0KHRlc3RzLCBmdW5jdGlvbihkYXRhLCBleHBlY3QpIHtcbiAgICAgIHZhciByZXN1bHQgPSBhc3QuaXNJZGVudGlmaWVyU3RyaW5nRXhwKGRhdGEpO1xuICAgICAgYXNzZXJ0LmVxdWFsKHJlc3VsdCwgZXhwZWN0KTtcbiAgICB9LCBoZWxwZXIuZXhwRm9ybWF0KTtcbiAgfSk7XG5cbiAgc3VpdGUoXCJFeHByZXNzaW9uIGRlY29kaW5nLlwiLCBmdW5jdGlvbigpIHtcbiAgICB2YXIgdGVzdHMgPSBbXG4gICAgICBbIFwidHJ1ZVwiIF0sXG4gICAgICBbIFwiZmFsc2VcIiBdLFxuICAgICAgWyBcIjFcIiBdLFxuICAgICAgWyBcIigxKVwiLCAnMScgXSxcbiAgICAgIFsgXCIxLjFcIiBdLFxuICAgICAgWyBcIiszXCIsIFwiM1wiXSxcbiAgICAgIFsgXCItM1wiIF0sXG4gICAgICBbIFwiMHgyXCIsIFwiMlwiIF0sXG4gICAgICBbIFwiXFxcInN0cmluZ1xcXCJcIiwgXCInc3RyaW5nJ1wiIF0sXG4gICAgICBbIFwiJ3N0cmluZydcIiBdLFxuICAgICAgWyBcIidzdFxcXFwncmluZydcIl0sXG4gICAgICBbIFwiJ3N0XFxcXHJpbmcnXCIgXSxcbiAgICAgIFsgXCInXFxcXHUwMDBkJ1wiLCBcIidcXFxccidcIiBdLFxuICAgICAgWyBcIi9wYXR0ZXJuL1wiIF0sXG4gICAgICBbIFwiL3BhdHRlcm4vaVwiIF0sXG4gICAgICBbIFwiL3BhdFxcXFwvdGVybi9pXCIgXSxcbiAgICAgIFsgXCJhXCIgXSxcbiAgICAgIFsgXCJhLmJcIiBdLFxuICAgICAgWyBcImEuYi5jXCIgXSxcblxuICAgICAgWyBcImFbJ2InXVwiLCAnYS5iJyBdLFxuICAgICAgWyBcImFbYl1cIiBdLFxuICAgICAgWyBcImFbYl1bY11cIiBdLFxuICAgICAgWyBcImEuYltjXVwiIF0sXG4gICAgICBbIFwiYVtiXS5jXCIgXSxcbiAgICAgIFsgXCIoYS5iKVtjXVwiLCBcImEuYltjXVwiIF0sXG4gICAgICBbIFwiKGEoYikpW2NdXCIsIFwiYShiKVtjXVwiIF0sXG5cbiAgICAgIFsgXCJhKClcIiBdLFxuICAgICAgWyBcImEoKSgpXCIgXSxcbiAgICAgIFsgXCJhLmIoKVwiIF0sXG4gICAgICBbIFwiYSgpLmJcIiBdLFxuICAgICAgWyBcImFbMF0oKVwiIF0sXG4gICAgICBbIFwiYSgpWzBdXCIgXSxcblxuICAgICAgWyBcIi1hXCIgXSxcbiAgICAgIFsgXCItLWFcIiBdLFxuICAgICAgWyBcIithXCIsIFwiYVwiXSxcbiAgICAgIFsgXCIrYSArYlwiLCBcImEgKyBiXCIgXSxcbiAgICAgIFsgXCItYSAtYlwiLCBcIi1hIC0gYlwiIF0sXG4gICAgICBbIFwiLWEgLS1iXCIsIFwiLWEgLSAtYlwiIF0sXG4gICAgICBbIFwiLWEgLS0tYlwiLCBcIi1hIC0gLS1iXCIgXSxcbiAgICAgIFsgXCIhYVwiIF0sXG4gICAgICBbIFwiISFhXCIgXSxcbiAgICAgIFsgXCIhK2FcIiwgJyFhJyBdLFxuICAgICAgWyBcIiEtYVwiIF0sXG4gICAgICBbIFwiLSFhXCIgXSxcbiAgICAgIFsgXCIyICogYVwiIF0sXG4gICAgICBbIFwiKDIgKiBhKVwiLCAnMiAqIGEnIF0sXG4gICAgICBbIFwiMiAvIGFcIiBdLFxuICAgICAgWyBcImEgJSAyXCIgXSxcbiAgICAgIFsgXCIxICsgMVwiIF0sXG4gICAgICBbIFwiYSAtIDFcIiBdLFxuICAgICAgWyBcImEgLSAtYlwiIF0sXG4gICAgICBbIFwiYSArIGIgKyBjXCIgXSxcbiAgICAgIFsgXCJhICsgKGIgKyBjKVwiIF0sXG4gICAgICBbIFwiKGEgKyBiKSArIGNcIiwgJ2EgKyBiICsgYycgXSxcbiAgICAgIFsgXCJhICsgYiAqIGNcIiBdLFxuICAgICAgWyBcIihhICsgYikgKiBjXCIgXSxcbiAgICAgIFsgXCJhIDwgN1wiIF0sXG4gICAgICBbIFwiYSA+IDdcIiBdLFxuICAgICAgWyBcImEgPD0gN1wiIF0sXG4gICAgICBbIFwiYSA+PSA3XCIgXSxcbiAgICAgIFsgXCJhID09IDNcIiBdLFxuICAgICAgWyBcImEgIT0gMFwiIF0sXG4gICAgICBbIFwiYSA9PT0gM1wiLCBcImEgPT0gM1wiIF0sXG4gICAgICBbIFwiYSAhPT0gMFwiLCBcImEgIT0gMFwiIF0sXG4gICAgICBbIFwiMyAqIGEgPT0gYlwiIF0sXG4gICAgICBbIFwiYSA9PSAxICYmIGIgPD0gMlwiIF0sXG4gICAgICBbIFwiYSA9PSAxIHx8IGIgPD0gMlwiIF0sXG4gICAgICBbIFwiYSAmJiBiICYmIGNcIiBdLFxuICAgICAgWyBcImEgfHwgYiB8fCBjXCIgXSxcbiAgICAgIFsgXCJhICYmIGIgfHwgYyAmJiBkXCIgXSxcbiAgICAgIFsgXCJhID8gYiA6IGNcIiwgIF0sXG4gICAgICBbIFwiYSB8fCBiID8gYyA6IGRcIiBdLFxuICAgIF07XG5cbiAgICBoZWxwZXIuZGF0YURyaXZlblRlc3QodGVzdHMsIGZ1bmN0aW9uKGRhdGEsIGV4cGVjdCkge1xuICAgICAgLy8gRGVjb2RlIHRvIHNlbGYgYnkgZGVmYXVsdFxuICAgICAgZXhwZWN0ID0gZXhwZWN0IHx8IGRhdGE7XG4gICAgICB2YXIgcmVzdWx0ID0gcGFyc2UoJ2Z1bmN0aW9uIGYoKSB7cmV0dXJuICcgKyBkYXRhICsgJzt9Jyk7XG4gICAgICB2YXIgZXhwID0gcmVzdWx0LmZ1bmN0aW9ucy5mLmJvZHk7XG4gICAgICB2YXIgZGVjb2RlID0gYm9sdC5kZWNvZGVFeHByZXNzaW9uKGV4cCk7XG4gICAgICBhc3NlcnQuZXF1YWwoZGVjb2RlLCBleHBlY3QpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9
{
"name": "firebase-bolt",
"description": "Firebase Bolt Security and Modeling Language Compiler",
"version": "0.4.2",
"version": "0.5.0",
"author": {

@@ -6,0 +6,0 @@ "name": "Firebase",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc